From fafd82c149c6c1c4bfd4cc2b8bafa30fc87caacb Mon Sep 17 00:00:00 2001 From: thepaperpilot Date: Wed, 17 May 2023 13:24:04 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20thepaper?= =?UTF-8?q?pilot/Planar-Pioneers@f20feee19282808194247ff2ce4ad4087c78f277?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/{gameLoop.12e84b5c.js => gameLoop.f63e9d55.js} | 2 +- assets/{index.094540b5.js => index.ffd22707.js} | 4 ++-- index.html | 2 +- sw.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename assets/{gameLoop.12e84b5c.js => gameLoop.f63e9d55.js} (92%) rename assets/{index.094540b5.js => index.ffd22707.js} (98%) diff --git a/assets/gameLoop.12e84b5c.js b/assets/gameLoop.f63e9d55.js similarity index 92% rename from assets/gameLoop.12e84b5c.js rename to assets/gameLoop.f63e9d55.js index efd9230..c6ce573 100644 --- a/assets/gameLoop.12e84b5c.js +++ b/assets/gameLoop.f63e9d55.js @@ -1 +1 @@ -import{_ as d,s as p,p as e,a as o,l as T,D as l,b as m,g as u}from"./index.094540b5.js";import"./vue.c16a309b.js";import{b2 as c}from"./@vue.6b211d3c.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.dccec454.js";import"./vue-next-select.ded54c4a.js";import"./vuedraggable.1879de79.js";import"./amator.1e5a40c8.js";import"./bezier-easing.a990b400.js";import"./sortablejs.a0f68e5e.js";import"./vue-textarea-autosize.35804eaf.js";import"./vue-panzoom.8ce6f9b1.js";import"./panzoom.30c56ba6.js";import"./wheel.f2ae740f.js";import"./ngraph.events.083734c6.js";import"./vue-toastification.9c2dad53.js";let n=null,f=null;function a(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const r=i;if(o.lastTenTicks.push(r),o.lastTenTicks.length>10&&(o.lastTenTicks=o.lastTenTicks.slice(1)),!((f==null?void 0:f.value)&&!e.keepGoing)&&!o.hasNaN&&(i=Math.max(i,0),e.devSpeed!==0)){if(T.value=!1,e.offlineTime!=null){if(l.gt(e.offlineTime,m.offlineLimit*3600)&&(e.offlineTime=m.offlineLimit*3600),l.gt(e.offlineTime,0)&&e.devSpeed!==0){const s=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-s,i+=s}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||l.lt(e.offlineTime,0))&&(e.offlineTime=null)}i=Math.min(i,m.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),!l.eq(i,0)&&(e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308),u.emit("update",i,r),p.unthrottled?(requestAnimationFrame(a),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(a,50)))}}async function A(){f=(await d(()=>import("./index.094540b5.js").then(function(t){return t.c}),["assets/index.094540b5.js","assets/index.bebdc1b9.css","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"])).hasWon,c(f,t=>{t&&u.emit("gameWon")}),p.unthrottled?requestAnimationFrame(a):n=setInterval(a,50)}export{A as startGameLoop}; +import{_ as d,s as p,p as e,a as o,l as T,D as l,b as m,g as u}from"./index.ffd22707.js";import"./vue.c16a309b.js";import{b2 as c}from"./@vue.6b211d3c.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.dccec454.js";import"./vue-next-select.ded54c4a.js";import"./vuedraggable.1879de79.js";import"./amator.1e5a40c8.js";import"./bezier-easing.a990b400.js";import"./sortablejs.a0f68e5e.js";import"./vue-textarea-autosize.35804eaf.js";import"./vue-panzoom.8ce6f9b1.js";import"./panzoom.30c56ba6.js";import"./wheel.f2ae740f.js";import"./ngraph.events.083734c6.js";import"./vue-toastification.9c2dad53.js";let n=null,f=null;function a(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const r=i;if(o.lastTenTicks.push(r),o.lastTenTicks.length>10&&(o.lastTenTicks=o.lastTenTicks.slice(1)),!((f==null?void 0:f.value)&&!e.keepGoing)&&!o.hasNaN&&(i=Math.max(i,0),e.devSpeed!==0)){if(T.value=!1,e.offlineTime!=null){if(l.gt(e.offlineTime,m.offlineLimit*3600)&&(e.offlineTime=m.offlineLimit*3600),l.gt(e.offlineTime,0)&&e.devSpeed!==0){const s=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-s,i+=s}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||l.lt(e.offlineTime,0))&&(e.offlineTime=null)}i=Math.min(i,m.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),!l.eq(i,0)&&(e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308),u.emit("update",i,r),p.unthrottled?(requestAnimationFrame(a),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(a,50)))}}async function A(){f=(await d(()=>import("./index.ffd22707.js").then(function(t){return t.c}),["assets/index.ffd22707.js","assets/index.bebdc1b9.css","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"])).hasWon,c(f,t=>{t&&u.emit("gameWon")}),p.unthrottled?requestAnimationFrame(a):n=setInterval(a,50)}export{A as startGameLoop}; diff --git a/assets/index.094540b5.js b/assets/index.ffd22707.js similarity index 98% rename from assets/index.094540b5.js rename to assets/index.ffd22707.js index 5725355..1c61f63 100644 --- a/assets/index.094540b5.js +++ b/assets/index.ffd22707.js @@ -1,7 +1,7 @@ /* empty css */import"./vue.c16a309b.js";import{q as an,C as s,ab as X,_ as N,az as Jn,aF as M,a1 as T,a2 as k,J as ee,O as ne,aK as xt,a0 as L,I as Be,a8 as _,aI as on,aG as ln,l as qe,u as Vr,t as G,b2 as ht,aL as Ft,G as Ne,aD as wi,w as bt,b3 as Dt,a9 as d,ap as sa,as as Wt,aH as sr,A as Te,$ as re,b7 as Y,b9 as Br,ar as Ot,bv as $n,bt as oa,bc as Gn,T as la,j as ua,bw as qt,ay as ca,aM as _t,aO as Je,z as Ht,bo as da,bs as pa,bd as ii,am as dr,H as fa,bx as ga,bf as ma}from"./@vue.6b211d3c.js";import{c as _i}from"./nanoevents.1080beb7.js";import{L as tn}from"./lz-string.dccec454.js";import{Y as va}from"./vue-next-select.ded54c4a.js";import{D as ha}from"./vuedraggable.1879de79.js";import{p as ba}from"./vue-textarea-autosize.35804eaf.js";import{P as ya}from"./vue-panzoom.8ce6f9b1.js";import{s as wa,u as hr}from"./vue-toastification.9c2dad53.js";import"./amator.1e5a40c8.js";import"./bezier-easing.a990b400.js";import"./sortablejs.a0f68e5e.js";import"./panzoom.30c56ba6.js";import"./wheel.f2ae740f.js";import"./ngraph.events.083734c6.js";const _a=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const u of a.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&r(u)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerpolicy&&(a.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?a.credentials="include":i.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}};_a();const Na="modulepreload",ai={},Ca="./",Un=function(t,n){return!n||n.length===0?t():Promise.all(n.map(r=>{if(r=`${Ca}${r}`,r in ai)return;ai[r]=!0;const i=r.endsWith(".css"),a=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${r}"]${a}`))return;const u=document.createElement("link");if(u.rel=i?"stylesheet":Na,i||(u.as="script",u.crossOrigin=""),u.href=r,document.head.appendChild(u),i)return new Promise((l,c)=>{u.addEventListener("load",l),u.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${r}`)))})})).then(()=>t())},ka="./projInfo-schema.json",Ma="Planar Pioneers",Sa="A game about controlling and exploiting planes!",Ia="planar-pioneers",xa="thepaperpilot",$a="",Da="",Ta="0.0",Pa="Initial Commit",Aa=!1,Ra=!1,Ea=2,Fa=!0,Oa=null,qa="",Va=["main"],Ba=3600,La=0,ja=!0,za="base64";var he={$schema:ka,title:Ma,description:Sa,id:Ia,author:xa,discordName:$a,discordLink:Da,versionNumber:Ta,versionTitle:Pa,allowGoBack:Aa,defaultShowSmall:Ra,defaultDecimalsShown:Ea,useHeader:Fa,banner:Oa,logo:qa,initialTabs:Va,maxTickLength:Ba,offlineLimit:La,enablePausing:ja,exportEncoding:za};const Ga=an({id:"",devSpeed:null,name:"",tabs:[],time:-1,autosave:!0,offlineProd:!0,offlineTime:null,timePlayed:0,keepGoing:!1,modID:"",modVersion:"",layers:{}});var Z=window.player=Ga;function Ni(e){return JSON.stringify(e,(t,n)=>s(n))}var ve=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n};const Ci=e=>(on("data-v-1b5356cf"),e=e(),ln(),e),Ua={class:"error"},Wa={class:"error-title"},Ha={class:"error-details",style:{"margin-top":"-10px"}},Ya={key:0},Za={class:"instructions"},Xa=["href"],Ja=Ci(()=>k("br",null,null,-1)),Ka={key:0,style:{"margin-top":"20px"}},Qa=Ci(()=>k("h3",null,"Other errors",-1)),es=[Qa],ts={class:"error-details"},ns={key:0,style:{"margin-top":"10px"}},rs={key:1,style:{"margin-top":"10px"}},is=X({__name:"Error",props:{errors:null},setup(e){const t=e,n=N(()=>t.errors[0]),r=N(()=>t.errors.map(a=>a.stack==null?[]:a.stack.split(` `))),i=N(()=>t.errors.map(a=>a.cause==null?[]:(typeof a.cause=="string"?a.cause:JSON.stringify(a.cause)).split(` `)));return Jn(()=>{Z.autosave=!1,Z.devSpeed=0}),(a,u)=>(M(),T("div",Ua,[k("h1",Wa,ee(s(n).name)+": "+ee(s(n).message),1),k("div",Ha,[s(n).cause?(M(),T("div",Ya,[(M(!0),T(ne,null,xt(s(i)[0],l=>(M(),T("div",{key:l},ee(l),1))),128))])):L("",!0),s(n).stack?(M(),T("div",{key:1,style:Be(s(n).cause?"margin-top: 10px":"")},[(M(!0),T(ne,null,xt(s(r)[0],l=>(M(),T("div",{key:l},ee(l),1))),128))],4)):L("",!0)]),k("div",Za,[_(" Check the console for more details, and consider sharing it with the developers on "),k("a",{href:s(he).discordLink||"https://discord.gg/yJ4fjnjU54",class:"discord-link"},"discord",8,Xa),_("!"),Ja,e.errors.length>1?(M(),T("div",Ka,es)):L("",!0),(M(!0),T(ne,null,xt(e.errors.slice(1),(l,c)=>(M(),T("div",{key:c,style:{"margin-top":"20px"}},[k("details",ts,[k("summary",null,ee(l.name)+": "+ee(l.message),1),l.cause?(M(),T("div",ns,[(M(!0),T(ne,null,xt(s(i)[c+1],p=>(M(),T("div",{key:p},ee(p),1))),128))])):L("",!0),l.stack?(M(),T("div",rs,[(M(!0),T(ne,null,xt(s(r)[c+1],p=>(M(),T("div",{key:p},ee(p),1))),128))])):L("",!0)])]))),128))])]))}});var ki=ve(is,[["__scopeId","data-v-1b5356cf"]]);class as{constructor(t){this.map=new Map,this.first=void 0,this.last=void 0,this.maxSize=t}get size(){return this.map.size}get(t){const n=this.map.get(t);if(n!==void 0)return n!==this.first&&(n===this.last?(this.last=n.prev,this.last.next=void 0):(n.prev.next=n.next,n.next.prev=n.prev),n.next=this.first,this.first.prev=n,this.first=n),n.value}set(t,n){if(this.maxSize<1)return;if(this.map.has(t))throw new Error("Cannot update existing keys in the cache");const r=new ss(t,n);for(this.first===void 0?(this.first=r,this.last=r):(r.next=this.first,this.first.prev=r,this.first=r),this.map.set(t,r);this.map.size>this.maxSize;){const i=this.last;this.map.delete(i.key),this.last=i.prev,this.last.next=void 0}}}class ss{constructor(t,n){this.next=void 0,this.prev=void 0,this.key=t,this.value=n}}const Dr=17,os=9e15,ls=Math.log10(9e15),us=1/9e15,cs=308,ds=-324,si=5,ps=(1<<10)-1,fs=function(){const e=[];for(let n=ds+1;n<=cs;n++)e.push(Number("1e"+n));const t=323;return function(n){return e[n+t]}}(),pn=[2,Math.E,3,4,5,6,7,8,9,10],gs=[[1,1.0891180521811203,1.1789767925673957,1.2701455431742086,1.3632090180450092,1.4587818160364217,1.5575237916251419,1.6601571006859253,1.767485818836978,1.8804192098842727,2],[1,1.1121114330934079,1.231038924931609,1.3583836963111375,1.4960519303993531,1.6463542337511945,1.8121385357018724,1.996971324618307,2.2053895545527546,2.4432574483385254,Math.E],[1,1.1187738849693603,1.2464963939368214,1.38527004705667,1.5376664685821402,1.7068895236551784,1.897001227148399,2.1132403089001035,2.362480153784171,2.6539010333870774,3],[1,1.1367350847096405,1.2889510672956703,1.4606478703324786,1.6570295196661111,1.8850062585672889,2.1539465047453485,2.476829779693097,2.872061932789197,3.3664204535587183,4],[1,1.1494592900767588,1.319708228183931,1.5166291280087583,1.748171114438024,2.0253263297298045,2.3636668498288547,2.7858359149579424,3.3257226212448145,4.035730287722532,5],[1,1.159225940787673,1.343712473580932,1.5611293155111927,1.8221199554561318,2.14183924486326,2.542468319282638,3.0574682501653316,3.7390572020926873,4.6719550537360774,6],[1,1.1670905356972596,1.3632807444991446,1.5979222279405536,1.8842640123816674,2.2416069644878687,2.69893426559423,3.3012632110403577,4.121250340630164,5.281493033448316,7],[1,1.1736630594087796,1.379783782386201,1.6292821855668218,1.9378971836180754,2.3289975651071977,2.8384347394720835,3.5232708454565906,4.478242031114584,5.868592169644505,8],[1,1.1793017514670474,1.394054150657457,1.65664127441059,1.985170999970283,2.4069682290577457,2.9647310119960752,3.7278665320924946,4.814462547283592,6.436522247411611,9],[1,1.1840100246247336,1.4061375836156955,1.6802272208863964,2.026757028388619,2.4770056063449646,3.080525271755482,3.9191964192627284,5.135152840833187,6.989961179534715,10]],ms=[[-1,-.9194161097107025,-.8335625019330468,-.7425599821143978,-.6466611521029437,-.5462617907227869,-.4419033816638769,-.3342645487554494,-.224140440909962,-.11241087890006762,0],[-1,-.90603157029014,-.80786507256596,-.7064666939634,-.60294836853664,-.49849837513117,-.39430303318768,-.29147201034755,-.19097820800866,-.09361896280296,0],[-1,-.9021579584316141,-.8005762598234203,-.6964780623319391,-.5911906810998454,-.486050182576545,-.3823089430815083,-.28106046722897615,-.1831906535795894,-.08935809204418144,0],[-1,-.8917227442365535,-.781258746326964,-.6705130326902455,-.5612813129406509,-.4551067709033134,-.35319256652135966,-.2563741554088552,-.1651412821106526,-.0796919581982668,0],[-1,-.8843387974366064,-.7678744063886243,-.6529563724510552,-.5415870994657841,-.4352842206588936,-.33504449124791424,-.24138853420685147,-.15445285440944467,-.07409659641336663,0],[-1,-.8786709358426346,-.7577735191184886,-.6399546189952064,-.527284921869926,-.4211627631006314,-.3223479611761232,-.23107655627789858,-.1472057700818259,-.07035171210706326,0],[-1,-.8740862815291583,-.7497032990976209,-.6297119746181752,-.5161838335958787,-.41036238255751956,-.31277212146489963,-.2233976621705518,-.1418697367979619,-.06762117662323441,0],[-1,-.8702632331800649,-.7430366914122081,-.6213373075161548,-.5072025698095242,-.40171437727184167,-.30517930701410456,-.21736343968190863,-.137710238299109,-.06550774483471955,0],[-1,-.8670016295947213,-.7373984232432306,-.6143173985094293,-.49973884395492807,-.394584953527678,-.2989649949848695,-.21245647317021688,-.13434688362382652,-.0638072667348083,0],[-1,-.8641642839543857,-.732534623168535,-.6083127477059322,-.4934049257184696,-.3885773075899922,-.29376029055315767,-.2083678561173622,-.13155653399373268,-.062401588652553186,0]];let S=function(t){return o.fromValue_noAlloc(t)},K=function(e,t,n){return o.fromComponents(e,t,n)},se=function(t,n,r){return o.fromComponents_noNormalize(t,n,r)};const Qt=function(t,n){const r=n+1,i=Math.ceil(Math.log10(Math.abs(t))),a=Math.round(t*Math.pow(10,r-i))*Math.pow(10,i-r);return parseFloat(a.toFixed(Math.max(r-i,0)))},Tr=function(e){return Math.sign(e)*Math.log10(Math.abs(e))},vs=function(e){if(!isFinite(e))return e;if(e<-50)return e===Math.trunc(e)?Number.NEGATIVE_INFINITY:0;let t=1;for(;e<10;)t=t*e,++e;e-=1;let n=.9189385332046727;n=n+(e+.5)*Math.log(e),n=n-e;const r=e*e;let i=e;return n=n+1/(12*i),i=i*r,n=n+1/(360*i),i=i*r,n=n+1/(1260*i),i=i*r,n=n+1/(1680*i),i=i*r,n=n+1/(1188*i),i=i*r,n=n+691/(360360*i),i=i*r,n=n+7/(1092*i),i=i*r,n=n+3617/(122400*i),Math.exp(n)/t},Mi=.5671432904097838,oi=function(e,t=1e-10){let n,r;if(!Number.isFinite(e)||e===0)return e;if(e===1)return Mi;e<10?n=0:n=Math.log(e)-Math.log(Math.log(e));for(let i=0;i<100;++i){if(r=(e*Math.exp(-n)+n*n)/(n+1),Math.abs(r-n).5?1:-1;if(Math.random()*20<1)return se(t,0,1);const n=Math.floor(Math.random()*(e+1));let r=n===0?Math.random()*616-308:Math.random()*16;Math.random()>.9&&(r=Math.trunc(r));let i=Math.pow(10,r);return Math.random()>.9&&(i=Math.trunc(i)),K(t,n,i)}static affordGeometricSeries_core(e,t,n,r){const i=t.mul(n.pow(r));return w.floor(e.div(i).mul(n.sub(1)).add(1).log10().div(n.log10()))}static sumGeometricSeries_core(e,t,n,r){return t.mul(n.pow(r)).mul(w.sub(1,n.pow(e))).div(w.sub(1,n))}static affordArithmeticSeries_core(e,t,n,r){const a=t.add(r.mul(n)).sub(n.div(2)),u=a.pow(2);return a.neg().add(u.add(n.mul(e).mul(2)).sqrt()).div(n).floor()}static sumArithmeticSeries_core(e,t,n,r){const i=t.add(r.mul(n));return e.div(2).mul(i.mul(2).plus(e.sub(1).mul(n)))}static efficiencyOfPurchase_core(e,t,n){return e.div(t).add(e.div(n))}normalize(){if(this.sign===0||this.mag===0&&this.layer===0)return this.sign=0,this.mag=0,this.layer=0,this;if(this.layer===0&&this.mag<0&&(this.mag=-this.mag,this.sign=-this.sign),this.layer===0&&this.mag=os)return this.layer+=1,this.mag=t*Math.log10(e),this;for(;e0;)this.layer-=1,this.layer===0?this.mag=Math.pow(10,this.mag):(this.mag=t*Math.pow(10,e),e=Math.abs(this.mag),t=Math.sign(this.mag));return this.layer===0&&(this.mag<0?(this.mag=-this.mag,this.sign=-this.sign):this.mag===0&&(this.sign=0)),this}fromComponents(e,t,n){return this.sign=e,this.layer=t,this.mag=n,this.normalize(),this}fromComponents_noNormalize(e,t,n){return this.sign=e,this.layer=t,this.mag=n,this}fromMantissaExponent(e,t){return this.layer=1,this.sign=Math.sign(e),e=Math.abs(e),this.mag=t+Math.log10(e),this.normalize(),this}fromMantissaExponent_noNormalize(e,t){return this.fromMantissaExponent(e,t),this}fromDecimal(e){return this.sign=e.sign,this.layer=e.layer,this.mag=e.mag,this}fromNumber(e){return this.mag=Math.abs(e),this.sign=Math.sign(e),this.layer=0,this.normalize(),this}fromString(e){const t=e,n=w.fromStringCache.get(t);if(n!==void 0)return this.fromDecimal(n);e=e.replace(",","");const r=e.split("^^^");if(r.length===2){const y=parseFloat(r[0]),C=parseFloat(r[1]),D=r[1].split(";");let R=1;if(D.length===2&&(R=parseFloat(D[1]),isFinite(R)||(R=1)),isFinite(y)&&isFinite(C)){const I=w.pentate(y,C,R);return this.sign=I.sign,this.layer=I.layer,this.mag=I.mag,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}}const i=e.split("^^");if(i.length===2){const y=parseFloat(i[0]),C=parseFloat(i[1]),D=i[1].split(";");let R=1;if(D.length===2&&(R=parseFloat(D[1]),isFinite(R)||(R=1)),isFinite(y)&&isFinite(C)){const I=w.tetrate(y,C,R);return this.sign=I.sign,this.layer=I.layer,this.mag=I.mag,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}}const a=e.split("^");if(a.length===2){const y=parseFloat(a[0]),C=parseFloat(a[1]);if(isFinite(y)&&isFinite(C)){const D=w.pow(y,C);return this.sign=D.sign,this.layer=D.layer,this.mag=D.mag,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}}e=e.trim().toLowerCase();let u,l,c=e.split("pt");if(c.length===2){u=10,l=parseFloat(c[0]),c[1]=c[1].replace("(",""),c[1]=c[1].replace(")","");let y=parseFloat(c[1]);if(isFinite(y)||(y=1),isFinite(u)&&isFinite(l)){const C=w.tetrate(u,l,y);return this.sign=C.sign,this.layer=C.layer,this.mag=C.mag,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}}if(c=e.split("p"),c.length===2){u=10,l=parseFloat(c[0]),c[1]=c[1].replace("(",""),c[1]=c[1].replace(")","");let y=parseFloat(c[1]);if(isFinite(y)||(y=1),isFinite(u)&&isFinite(l)){const C=w.tetrate(u,l,y);return this.sign=C.sign,this.layer=C.layer,this.mag=C.mag,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}}const p=e.split("e"),v=p.length-1;if(v===0){const y=parseFloat(e);if(isFinite(y))return this.fromNumber(y),w.fromStringCache.size>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}else if(v===1){const y=parseFloat(e);if(isFinite(y)&&y!==0)return this.fromNumber(y),w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}const g=e.split("e^");if(g.length===2){this.sign=1,g[0].charAt(0)=="-"&&(this.sign=-1);let y="";for(let C=0;C=43&&D<=57||D===101)y+=g[1].charAt(C);else return this.layer=parseFloat(y),this.mag=parseFloat(g[1].substr(C+1)),this.normalize(),w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}}if(v<1)return this.sign=0,this.layer=0,this.mag=0,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this;const b=parseFloat(p[0]);if(b===0)return this.sign=0,this.layer=0,this.mag=0,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this;let h=parseFloat(p[p.length-1]);if(v>=2){const y=parseFloat(p[p.length-2]);isFinite(y)&&(h*=Math.sign(y),h+=Tr(y))}if(!isFinite(b))this.sign=p[0]==="-"?-1:1,this.layer=v,this.mag=h;else if(v===1)this.sign=Math.sign(b),this.layer=1,this.mag=h+Math.log10(Math.abs(b));else if(this.sign=Math.sign(b),this.layer=v,v===2){const y=w.mul(K(1,2,h),S(b));return this.sign=y.sign,this.layer=y.layer,this.mag=y.mag,w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}else this.mag=h;return this.normalize(),w.fromStringCache.maxSize>=1&&w.fromStringCache.set(t,w.fromDecimal(this)),this}fromValue(e){return e instanceof w?this.fromDecimal(e):typeof e=="number"?this.fromNumber(e):typeof e=="string"?this.fromString(e):(this.sign=0,this.layer=0,this.mag=0,this)}toNumber(){return Number.isFinite(this.layer)?this.layer===0?this.sign*this.mag:this.layer===1?this.sign*Math.pow(10,this.mag):this.mag>0?this.sign>0?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:0:Number.NaN}mantissaWithDecimalPlaces(e){return isNaN(this.m)?Number.NaN:this.m===0?0:Qt(this.m,e)}magnitudeWithDecimalPlaces(e){return isNaN(this.mag)?Number.NaN:this.mag===0?0:Qt(this.mag,e)}toString(){return isNaN(this.layer)||isNaN(this.sign)||isNaN(this.mag)?"NaN":this.mag===Number.POSITIVE_INFINITY||this.layer===Number.POSITIVE_INFINITY?this.sign===1?"Infinity":"-Infinity":this.layer===0?this.mag<1e21&&this.mag>1e-7||this.mag===0?(this.sign*this.mag).toString():this.m+"e"+this.e:this.layer===1?this.m+"e"+this.e:this.layer<=si?(this.sign===-1?"-":"")+"e".repeat(this.layer)+this.mag:(this.sign===-1?"-":"")+"(e^"+this.layer+")"+this.mag}toExponential(e){return this.layer===0?(this.sign*this.mag).toExponential(e):this.toStringWithDecimalPlaces(e)}toFixed(e){return this.layer===0?(this.sign*this.mag).toFixed(e):this.toStringWithDecimalPlaces(e)}toPrecision(e){return this.e<=-7?this.toExponential(e-1):e>this.e?this.toFixed(e-this.exponent-1):this.toExponential(e-1)}valueOf(){return this.toString()}toJSON(){return this.toString()}toStringWithDecimalPlaces(e){return this.layer===0?this.mag<1e21&&this.mag>1e-7||this.mag===0?(this.sign*this.mag).toFixed(e):Qt(this.m,e)+"e"+Qt(this.e,e):this.layer===1?Qt(this.m,e)+"e"+Qt(this.e,e):this.layer<=si?(this.sign===-1?"-":"")+"e".repeat(this.layer)+Qt(this.mag,e):(this.sign===-1?"-":"")+"(e^"+this.layer+")"+Qt(this.mag,e)}abs(){return se(this.sign===0?0:1,this.layer,this.mag)}neg(){return se(-this.sign,this.layer,this.mag)}negate(){return this.neg()}negated(){return this.neg()}sgn(){return this.sign}round(){return this.mag<0?w.dZero:this.layer===0?K(this.sign,0,Math.round(this.mag)):this}floor(){return this.mag<0?w.dZero:this.layer===0?K(this.sign,0,Math.floor(this.mag)):this}ceil(){return this.mag<0?w.dZero:this.layer===0?K(this.sign,0,Math.ceil(this.mag)):this}trunc(){return this.mag<0?w.dZero:this.layer===0?K(this.sign,0,Math.trunc(this.mag)):this}add(e){const t=S(e);if(!Number.isFinite(this.layer))return this;if(!Number.isFinite(t.layer)||this.sign===0)return t;if(t.sign===0)return this;if(this.sign===-t.sign&&this.layer===t.layer&&this.mag===t.mag)return se(0,0,0);let n,r;if(this.layer>=2||t.layer>=2)return this.maxabs(t);if(w.cmpabs(this,t)>0?(n=this,r=t):(n=t,r=this),n.layer===0&&r.layer===0)return w.fromNumber(n.sign*n.mag+r.sign*r.mag);const i=n.layer*Math.sign(n.mag),a=r.layer*Math.sign(r.mag);if(i-a>=2)return n;if(i===0&&a===-1){if(Math.abs(r.mag-Math.log10(n.mag))>Dr)return n;{const u=Math.pow(10,Math.log10(n.mag)-r.mag),l=r.sign+n.sign*u;return K(Math.sign(l),1,r.mag+Math.log10(Math.abs(l)))}}if(i===1&&a===0){if(Math.abs(n.mag-Math.log10(r.mag))>Dr)return n;{const u=Math.pow(10,n.mag-Math.log10(r.mag)),l=r.sign+n.sign*u;return K(Math.sign(l),1,Math.log10(r.mag)+Math.log10(Math.abs(l)))}}if(Math.abs(n.mag-r.mag)>Dr)return n;{const u=Math.pow(10,n.mag-r.mag),l=r.sign+n.sign*u;return K(Math.sign(l),1,r.mag+Math.log10(Math.abs(l)))}}plus(e){return this.add(e)}sub(e){return this.add(S(e).neg())}subtract(e){return this.sub(e)}minus(e){return this.sub(e)}mul(e){const t=S(e);if(!Number.isFinite(this.layer))return this;if(!Number.isFinite(t.layer))return t;if(this.sign===0||t.sign===0)return se(0,0,0);if(this.layer===t.layer&&this.mag===-t.mag)return se(this.sign*t.sign,0,1);let n,r;if(this.layer>t.layer||this.layer==t.layer&&Math.abs(this.mag)>Math.abs(t.mag)?(n=this,r=t):(n=t,r=this),n.layer===0&&r.layer===0)return w.fromNumber(n.sign*r.sign*n.mag*r.mag);if(n.layer>=3||n.layer-r.layer>=2)return K(n.sign*r.sign,n.layer,n.mag);if(n.layer===1&&r.layer===0)return K(n.sign*r.sign,1,n.mag+Math.log10(r.mag));if(n.layer===1&&r.layer===1)return K(n.sign*r.sign,1,n.mag+r.mag);if(n.layer===2&&r.layer===1){const i=K(Math.sign(n.mag),n.layer-1,Math.abs(n.mag)).add(K(Math.sign(r.mag),r.layer-1,Math.abs(r.mag)));return K(n.sign*r.sign,i.layer+1,i.sign*i.mag)}if(n.layer===2&&r.layer===2){const i=K(Math.sign(n.mag),n.layer-1,Math.abs(n.mag)).add(K(Math.sign(r.mag),r.layer-1,Math.abs(r.mag)));return K(n.sign*r.sign,i.layer+1,i.sign*i.mag)}throw Error("Bad arguments to mul: "+this+", "+e)}multiply(e){return this.mul(e)}times(e){return this.mul(e)}div(e){const t=S(e);return this.mul(t.recip())}divide(e){return this.div(e)}divideBy(e){return this.div(e)}dividedBy(e){return this.div(e)}recip(){return this.mag===0?w.dNaN:this.layer===0?K(this.sign,0,1/this.mag):K(this.sign,this.layer,-this.mag)}reciprocal(){return this.recip()}reciprocate(){return this.recip()}cmp(e){const t=S(e);return this.sign>t.sign?1:this.sign0?this.layer:-this.layer,r=t.mag>0?t.layer:-t.layer;return n>r?1:nt.mag?1:this.mag0?t:this}clamp(e,t){return this.max(e).min(t)}clampMin(e){return this.max(e)}clampMax(e){return this.min(e)}cmp_tolerance(e,t){const n=S(e);return this.eq_tolerance(n,t)?0:this.cmp(n)}compare_tolerance(e,t){return this.cmp_tolerance(e,t)}eq_tolerance(e,t){const n=S(e);if(t==null&&(t=1e-7),this.sign!==n.sign||Math.abs(this.layer-n.layer)>1)return!1;let r=this.mag,i=n.mag;return this.layer>n.layer&&(i=Tr(i)),this.layer0?K(Math.sign(this.mag),this.layer-1,Math.abs(this.mag)):K(1,0,Math.log10(this.mag))}log10(){return this.sign<=0?w.dNaN:this.layer>0?K(Math.sign(this.mag),this.layer-1,Math.abs(this.mag)):K(this.sign,0,Math.log10(this.mag))}log(e){return e=S(e),this.sign<=0||e.sign<=0||e.sign===1&&e.layer===0&&e.mag===1?w.dNaN:this.layer===0&&e.layer===0?K(this.sign,0,Math.log(this.mag)/Math.log(e.mag)):w.div(this.log10(),e.log10())}log2(){return this.sign<=0?w.dNaN:this.layer===0?K(this.sign,0,Math.log2(this.mag)):this.layer===1?K(Math.sign(this.mag),0,Math.abs(this.mag)*3.321928094887362):this.layer===2?K(Math.sign(this.mag),1,Math.abs(this.mag)+.5213902276543247):K(Math.sign(this.mag),this.layer-1,Math.abs(this.mag))}ln(){return this.sign<=0?w.dNaN:this.layer===0?K(this.sign,0,Math.log(this.mag)):this.layer===1?K(Math.sign(this.mag),0,Math.abs(this.mag)*2.302585092994046):this.layer===2?K(Math.sign(this.mag),1,Math.abs(this.mag)+.36221568869946325):K(Math.sign(this.mag),this.layer-1,Math.abs(this.mag))}logarithm(e){return this.log(e)}pow(e){const t=S(e),n=this,r=t;if(n.sign===0)return r.eq(0)?se(1,0,1):n;if(n.sign===1&&n.layer===0&&n.mag===1)return n;if(r.sign===0)return se(1,0,1);if(r.sign===1&&r.layer===0&&r.mag===1)return n;const i=n.absLog10().mul(r).pow10();return this.sign===-1?Math.abs(r.toNumber()%2)%2===1?i.neg():Math.abs(r.toNumber()%2)%2===0?i:w.dNaN:i}pow10(){if(!Number.isFinite(this.layer)||!Number.isFinite(this.mag))return w.dNaN;let e=this;if(e.layer===0){const t=Math.pow(10,e.sign*e.mag);if(Number.isFinite(t)&&Math.abs(t)>=.1)return K(1,0,t);if(e.sign===0)return w.dOne;e=se(e.sign,e.layer+1,Math.log10(e.mag))}return e.sign>0&&e.mag>=0?K(e.sign,e.layer+1,e.mag):e.sign<0&&e.mag>=0?K(-e.sign,e.layer+1,-e.mag):w.dOne}pow_base(e){return S(e).pow(this)}root(e){const t=S(e);return this.pow(t.recip())}factorial(){return this.mag<0?this.add(1).gamma():this.layer===0?this.add(1).gamma():this.layer===1?w.exp(w.mul(this,w.ln(this).sub(1))):w.exp(this)}gamma(){if(this.mag<0)return this.recip();if(this.layer===0){if(this.lt(se(1,0,24)))return w.fromNumber(vs(this.sign*this.mag));const e=this.mag-1;let t=.9189385332046727;t=t+(e+.5)*Math.log(e),t=t-e;const n=e*e;let r=e,i=12*r,a=1/i,u=t+a;if(u===t||(t=u,r=r*n,i=360*r,a=1/i,u=t-a,u===t))return w.exp(t);t=u,r=r*n,i=1260*r;let l=1/i;return t=t+l,r=r*n,i=1680*r,l=1/i,t=t-l,w.exp(t)}else return this.layer===1?w.exp(w.mul(this,w.ln(this).sub(1))):w.exp(this)}lngamma(){return this.gamma().ln()}exp(){return this.mag<0?w.dOne:this.layer===0&&this.mag<=709.7?w.fromNumber(Math.exp(this.sign*this.mag)):this.layer===0?K(1,1,this.sign*Math.log10(Math.E)*this.mag):this.layer===1?K(1,2,this.sign*(Math.log10(.4342944819032518)+this.mag)):K(1,this.layer+1,this.sign*this.mag)}sqr(){return this.pow(2)}sqrt(){if(this.layer===0)return w.fromNumber(Math.sqrt(this.sign*this.mag));if(this.layer===1)return K(1,2,Math.log10(this.mag)-.3010299956639812);{const e=w.div(se(this.sign,this.layer-1,this.mag),se(1,0,2));return e.layer+=1,e.normalize(),e}}cube(){return this.pow(3)}cbrt(){return this.pow(1/3)}tetrate(e=2,t=se(1,0,1)){if(e===1)return w.pow(this,t);if(e===0)return new w(t);if(this.eq(w.dOne))return w.dOne;if(this.eq(-1))return w.pow(this,t);if(e===Number.POSITIVE_INFINITY){const i=this.toNumber();if(i<=1.444667861009766&&i>=.06598803584531254){if(i>1.444667861009099)return w.fromNumber(Math.E);const a=w.ln(this).neg();return a.lambertw().div(a)}else return i>1.444667861009766?w.fromNumber(Number.POSITIVE_INFINITY):w.dNaN}if(this.eq(w.dZero)){let i=Math.abs((e+1)%2);return i>1&&(i=2-i),w.fromNumber(i)}if(e<0)return w.iteratedlog(t,this,-e);t=S(t);const n=e;e=Math.trunc(e);const r=n-e;if(this.gt(w.dZero)&&this.lte(1.444667861009766)){e=Math.min(1e4,e);for(let i=0;i3)return se(t.sign,t.layer+(e-i-1),t.mag);if(i>1e4)return t}return t}iteratedexp(e=2,t=se(1,0,1)){return this.tetrate(e,t)}iteratedlog(e=10,t=1){if(t<0)return w.tetrate(e,-t,this);e=S(e);let n=w.fromDecimal(this);const r=t;t=Math.trunc(t);const i=r-t;if(n.layer-e.layer>3){const a=Math.min(t,n.layer-e.layer-3);t-=a,n.layer-=a}for(let a=0;a1e4)return n}return i>0&&i<1&&(e.eq(10)?n=n.layeradd10(-i):n=n.layeradd(-i,e)),n}slog(e=10,t=100){let n=.001,r=!1,i=!1,a=this.slog_internal(e).toNumber();for(let u=1;u1&&i!=c&&(r=!0),i=c,r?n/=2:n*=2,n=Math.abs(n)*(c?-1:1),a+=n,n===0)break}return w.fromNumber(a)}slog_internal(e=10){if(e=S(e),e.lte(w.dZero)||e.eq(w.dOne))return w.dNaN;if(e.lt(w.dOne))return this.eq(w.dOne)?w.dZero:this.eq(w.dZero)?w.dNegOne:w.dNaN;if(this.mag<0||this.eq(w.dZero))return w.dNegOne;let t=0,n=w.fromDecimal(this);if(n.layer-e.layer>3){const r=n.layer-e.layer-3;t+=r,n.layer-=r}for(let r=0;r<100;++r)if(n.lt(w.dZero))n=w.pow(e,n),t-=1;else{if(n.lte(w.dOne))return w.fromNumber(t+w.slog_critical(e.toNumber(),n.toNumber()));t+=1,n=w.log(n,e)}return w.fromNumber(t)}static slog_critical(e,t){return e>10?t-1:w.critical_section(e,t,ms)}static tetrate_critical(e,t){return w.critical_section(e,t,gs)}static critical_section(e,t,n){t*=10,t<0&&(t=0),t>10&&(t=10),e<2&&(e=2),e>10&&(e=10);let r=0,i=0;for(let u=0;ue){const l=(e-pn[u])/(pn[u+1]-pn[u]);r=n[u][Math.floor(t)]*(1-l)+n[u+1][Math.floor(t)]*l,i=n[u][Math.ceil(t)]*(1-l)+n[u+1][Math.ceil(t)]*l;break}const a=t-Math.floor(t);return r<=0||i<=0?r*(1-a)+i*a:Math.pow(e,Math.log(r)/Math.log(e)*(1-a)+Math.log(i)/Math.log(e)*a)}layeradd10(e){e=w.fromValue_noAlloc(e).toNumber();const t=w.fromDecimal(this);if(e>=1){t.mag<0&&t.layer>0?(t.sign=0,t.mag=0,t.layer=0):t.sign===-1&&t.layer==0&&(t.sign=1,t.mag=-t.mag);const n=Math.trunc(e);e-=n,t.layer+=n}if(e<=-1){const n=Math.trunc(e);if(e-=n,t.layer+=n,t.layer<0)for(let r=0;r<100;++r){if(t.layer++,t.mag=Math.log10(t.mag),!isFinite(t.mag))return t.sign===0&&(t.sign=1),t.layer<0&&(t.layer=0),t.normalize();if(t.layer>=0)break}}for(;t.layer<0;)t.layer++,t.mag=Math.log10(t.mag);return t.sign===0&&(t.sign=1,t.mag===0&&t.layer>=1&&(t.layer-=1,t.mag=1)),t.normalize(),e!==0?t.layeradd(e,10):t}layeradd(e,t){const r=this.slog(t).toNumber()+e;return r>=0?w.tetrate(t,r):Number.isFinite(r)?r>=-1?w.log(w.tetrate(t,r+1),t):w.log(w.log(w.tetrate(t,r+2),t),t):w.dNaN}lambertw(){if(this.lt(-.3678794411710499))throw Error("lambertw is unimplemented for results less than -1, sorry!");if(this.mag<0)return w.fromNumber(oi(this.toNumber()));if(this.layer===0)return w.fromNumber(oi(this.sign*this.mag));if(this.layer===1)return li(this);if(this.layer===2)return li(this);if(this.layer>=3)return se(this.sign,this.layer-1,this.mag);throw new Error("Unhandled behavior in lambertw()")}ssqrt(){if(this.sign==1&&this.layer>=3)return se(this.sign,this.layer-1,this.mag);const e=this.ln();return e.div(e.lambertw())}pentate(e=2,t=se(1,0,1)){t=S(t);const n=e;e=Math.trunc(e);const r=n-e;r!==0&&(t.eq(w.dOne)?(++e,t=w.fromNumber(r)):this.eq(10)?t=t.layeradd10(r):t=t.layeradd(r,this));for(let i=0;i10)return t}return t}sin(){return this.mag<0?this:this.layer===0?w.fromNumber(Math.sin(this.sign*this.mag)):se(0,0,0)}cos(){return this.mag<0?w.dOne:this.layer===0?w.fromNumber(Math.cos(this.sign*this.mag)):se(0,0,0)}tan(){return this.mag<0?this:this.layer===0?w.fromNumber(Math.tan(this.sign*this.mag)):se(0,0,0)}asin(){return this.mag<0?this:this.layer===0?w.fromNumber(Math.asin(this.sign*this.mag)):se(Number.NaN,Number.NaN,Number.NaN)}acos(){return this.mag<0?w.fromNumber(Math.acos(this.toNumber())):this.layer===0?w.fromNumber(Math.acos(this.sign*this.mag)):se(Number.NaN,Number.NaN,Number.NaN)}atan(){return this.mag<0?this:this.layer===0?w.fromNumber(Math.atan(this.sign*this.mag)):w.fromNumber(Math.atan(this.sign*(1/0)))}sinh(){return this.exp().sub(this.negate().exp()).div(2)}cosh(){return this.exp().add(this.negate().exp()).div(2)}tanh(){return this.sinh().div(this.cosh())}asinh(){return w.ln(this.add(this.sqr().add(1).sqrt()))}acosh(){return w.ln(this.add(this.sqr().sub(1).sqrt()))}atanh(){return this.abs().gte(1)?se(Number.NaN,Number.NaN,Number.NaN):w.ln(this.add(1).div(w.fromNumber(1).sub(this))).div(2)}ascensionPenalty(e){return e===0?this:this.root(w.pow(10,e))}egg(){return this.add(9)}lessThanOrEqualTo(e){return this.cmp(e)<1}lessThan(e){return this.cmp(e)<0}greaterThanOrEqualTo(e){return this.cmp(e)>-1}greaterThan(e){return this.cmp(e)>0}};let o=w;o.fromStringCache=new as(ps);o.dZero=se(0,0,0);o.dOne=se(1,0,1);o.dNegOne=se(-1,0,1);o.dTwo=se(1,0,2);o.dTen=se(1,0,10);o.dNaN=se(Number.NaN,Number.NaN,Number.NaN);o.dInf=se(1,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY);o.dNegInf=se(-1,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);o.dNumberMax=K(1,0,Number.MAX_VALUE);o.dNumberMin=K(1,0,Number.MIN_VALUE);S=o.fromValue_noAlloc;K=o.fromComponents;se=o.fromComponents_noNormalize;o.fromMantissaExponent;o.fromMantissaExponent_noNormalize;const hs=new o(1);function Bn(e,t,n=!0){let r=o.log10(e).floor(),i=o.div(e,o.pow(10,r));i.toStringWithDecimalPlaces(t)==="10"&&(i=hs,r=r.add(1));const a=r.gte(1e9)?yt(r,Math.max(Math.max(t,3),he.defaultDecimalsShown)):r.gte(1e4)?pr(r,0):r.toStringWithDecimalPlaces(0);return n?i.toStringWithDecimalPlaces(t)+"e"+a:"e"+a}function pr(e,t){if(e==null)return"NaN";if(e=new o(e),e.mag<.001)return 0 .toFixed(t);const r=e.toStringWithDecimalPlaces(t).split(".");return r[0]=r[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"),r.length==1?r[0]:r[0]+"."+r[1]}function Si(e,t){return e==null?"NaN":(e=new o(e),e.mag<1e-4?0 .toFixed(t):(e.mag<.1&&t!==0&&(t=Math.max(Math.max(t,e.log10().negate().ceil().toNumber()),he.defaultDecimalsShown)),e.toStringWithDecimalPlaces(t)))}const bs=new o("eeee1000"),ys=new o("e100000"),ui=new o("e1000"),Ii=new o(1e9),ws=new o(1e6),_s=new o(1e3),Ns=new o(.98),Cs=new o(.001),xi=new o(0);function yt(e,t,n){if(t==null&&(t=he.defaultDecimalsShown),n=n!=null?n:he.defaultShowSmall,e=new o(e),isNaN(e.sign)||isNaN(e.layer)||isNaN(e.mag))return"NaN";if(e.sign<0)return"-"+yt(e.neg(),t);if(e.mag===Number.POSITIVE_INFINITY)return"Infinity";if(e.gte(bs)){const r=e.slog();return r.gte(ws)?"F"+yt(r.floor()):o.pow(10,r.sub(r.floor())).toStringWithDecimalPlaces(3)+"F"+pr(r.floor(),0)}else{if(e.gte(ys))return Bn(e,0,!1);if(e.gte(ui))return Bn(e,0);if(e.gte(Ii))return Bn(e,t);if(e.gte(_s))return pr(e,0);if(e.gte(Cs)||!n)return Si(e,t);if(e.eq(xi))return 0 .toFixed(t)}return e=Di(e),e.lt(ui)?Bn(e,t).replace(/([^(?:e|F)]*)$/,"-$1"):yt(e,t)+"\u207B\xB9"}function We(e){return e=new o(e),e.sign<0?"-"+We(e.neg()):e.gte(Ii)||e.lte(Ns)&&!e.eq(xi)?yt(e):yt(e,0)}function $i(e){return o.lt(e,0)?"-"+$i(o.neg(e)):o.gt(e,2**51)?yt(o.div(e,31536e3))+"y":(e=new o(e).toNumber(),e<60?yt(e)+"s":e<3600?We(Math.floor(e/60))+"m "+yt(e%60)+"s":e<86400?We(Math.floor(e/3600))+"h "+We(Math.floor(e/60)%60)+"m "+We(e%60)+"s":e<31536e3?We(Math.floor(e/84600)%365)+"d "+We(Math.floor(e/3600)%24)+"h "+We(Math.floor(e/60)%60)+"m":We(Math.floor(e/31536e3))+"y "+We(Math.floor(e/84600)%365)+"d "+We(Math.floor(e/3600)%24)+"h")}function ks(e,t,n){e=new o(e);let r=e.toStringWithDecimalPlaces(t);return new o(r).gte(n)&&(r=o.sub(n,Math.pow(.1,t)).toStringWithDecimalPlaces(t)),r}function Ms(e,t){return yt(e,t,!0)}function Di(e){let t=o.log10(e).ceil();const n=o.div(e,o.pow(10,t));return t=t.neg(),e=new o(10).pow(t).times(n),e}var Ss=Object.freeze(Object.defineProperty({__proto__:null,default:o,exponentialFormat:Bn,commaFormat:pr,regularFormat:Si,format:yt,formatWhole:We,formatTime:$i,toPlaces:ks,formatSmall:Ms,invertOOM:Di},Symbol.toStringTag,{value:"Module"}));const{exponentialFormat:Lr,commaFormat:Is,regularFormat:xs,format:xe,formatWhole:at,formatTime:br,toPlaces:$s,formatSmall:Ut,invertOOM:Ds}=Ss;window.Decimal=o;window.exponentialFormat=Lr;window.commaFormat=Is;window.regularFormat=xs;window.format=xe;window.formatWhole=at;window.formatTime=br;window.toPlaces=$s;window.formatSmall=Ut;window.invertOOM=Ds;function rt(e){let t=e.replace(/([A-Z])/g," $1");return t=t.charAt(0).toUpperCase()+t.slice(1),t}function Wn(e){return typeof e=="function"}var W=(e=>(e.Up="Up",e.Down="Down",e.Left="Left",e.Right="Right",e.Default="Up",e))(W||{});const Hn=Symbol("DoNotCache");function A(e,t){const n=e[t];Wn(n)&&n.length===0&&!n[Hn]?e[t]=N(n.bind(e)):Wn(n)&&(e[t]=n.bind(e),e[t][Hn]=!0)}function _e(e){return Wn(e)&&!e[Hn]&&(e=N(e)),e}const dt=Symbol("Component"),lt=Symbol("GatherProps");let Ts=0;function Zt(e="feature-"){return e+Ts++}var Me=(e=>(e[e.Visible=0]="Visible",e[e.Hidden=1]="Hidden",e[e.None=2]="None",e))(Me||{});function He(e){const t=s(e);return t!==2&&t!==!1}function yn(e){return s(e)===1}function z(e){return e[Hn]=!0,e}function le(e,t,n){e[t]===void 0&&n!=null&&(e[t]=n)}function Yn(e,...t){const n=[],r=i=>{Object.keys(i).forEach(a=>{const u=i[a];u!=null&&typeof u=="object"&&(t.includes(u.type)?n.push(u):!(u instanceof o)&&!qe(u)&&r(u))})};return r(e),n}var Re=window.state=Vr({lastTenTicks:[],hasNaN:!1,NaNPath:[],errors:an([])});const fn={variables:{"--foreground":"#dfdfdf","--background":"#0f0f0f","--feature-foreground":"#0f0f0f","--tooltip-background":"rgba(0, 0, 0, 0.75)","--raised-background":"#0f0f0f","--points":"#ffffff","--locked":"#bf8f8f","--highlighted":"#333","--bought":"#77bf5f","--danger":"rgb(220, 53, 69)","--link":"#02f2f2","--outline":"#dfdfdf","--accent1":"#627a82","--accent2":"#658262","--accent3":"#7c6282","--border-radius":"15px","--modal-border":"solid 2px var(--color)","--feature-margin":"0px"},floatingTabs:!0,mergeAdjacent:!0,showPin:!0};var jr=(e=>(e.Classic="classic",e.Paper="paper",e.Nordic="nordic",e.Aqua="aqua",e))(jr||{}),kt={classic:fn,paper:{...fn,variables:{...fn.variables,"--background":"#2a323d","--feature-foreground":"#000","--raised-background":"#333c4a","--locked":"#3a3e45","--bought":"#5C8A58","--outline":"#333c4a","--border-radius":"4px","--modal-border":"","--feature-margin":"5px"},floatingTabs:!1},nordic:{...fn,variables:{...fn.variables,"--foreground":"#D8DEE9","--background":"#2E3440","--feature-foreground":"#000","--raised-background":"#3B4252","--points":"#E5E9F0","--locked":"#4c566a","--highlighted":"#434c5e","--bought":"#8FBCBB","--danger":"#D08770","--link":"#88C0D0","--outline":"#3B4252","--accent1":"#B48EAD","--accent2":"#A3BE8C","--accent3":"#EBCB8B","--border-radius":"4px","--modal-border":"solid 2px #3B4252","--feature-margin":"5px"},floatingTabs:!1},aqua:{...fn,variables:{...fn.variables,"--foreground":"#bfdfff","--background":"#001f3f","--tooltip-background":"rgba(0, 15, 31, 0.75)","--raised-background":"#001f3f","--points":"#dfefff","--locked":"#c4a7b3","--outline":"#bfdfff"}}};const Ke=_i();"fonts"in document&&(document.fonts.onloadingdone=()=>Ke.emit("fontsLoaded"));var Ps=Object.freeze(Object.defineProperty({__proto__:null,globalBus:Ke},Symbol.toStringTag,{value:"Module"}));function Ti(e={}){return Object.assign({id:`${he.id}-0`,name:"Default Save",tabs:he.initialTabs.slice(),time:Date.now(),autosave:!0,offlineProd:!0,offlineTime:0,timePlayed:0,keepGoing:!1,modID:he.id,modVersion:he.versionNumber,layers:{}},e)}function mt(e){const t=tn.compressToUTF16(Ni(e!=null?e:Z));return localStorage.setItem((e!=null?e:Z).id,t),t}async function As(){Fs();try{let e=localStorage.getItem(ie.active);if(e==null){await vn(xn());return}if(e[0]!=="{")if(e[0]==="e")e=decodeURIComponent(escape(atob(e)));else if(e[0]==="\u1BE1")e=tn.decompressFromUTF16(e);else throw"Unable to determine save encoding";const t=JSON.parse(e);if(t.modID!==he.id){await vn(xn());return}t.id=ie.active,await vn(t)}catch(e){console.error(`Failed to load save. Falling back to new save. -`,e),await vn(xn())}}function xn(){const e=cr(),t=Ti({id:e});return mt(t),ie.saves.push(e),t}function cr(){let e,t=0;do e=`${he.id}-${t++}`;while(localStorage.getItem(e)!=null);return e}const Rs=G(!1);async function vn(e){console.info("Loading save",e),Rs.value=!0;const{layers:t,removeLayer:n,addLayer:r}=await Un(()=>Promise.resolve().then(function(){return Tl}),void 0),{fixOldSave:i,getInitialLayers:a}=await Un(()=>Promise.resolve().then(function(){return zp}),void 0);for(const u in t){const l=t[u];l&&n(l)}a(e).forEach(u=>r(u,e)),e=Ti(e),e.offlineProd&&e.time!=null&&e.time&&e.devSpeed!==0&&(e.offlineTime==null&&(e.offlineTime=0),e.offlineTime+=Math.min(e.offlineTime+(Date.now()-e.time)/1e3,he.offlineLimit*3600)),e.time=Date.now(),e.modVersion!==he.versionNumber&&(i(e.modVersion,e),e.modVersion=he.versionNumber),Object.assign(Z,e),ie.active=Z.id,Ke.emit("onLoad")}setInterval(()=>{Z.autosave&&mt()},1e3);window.onbeforeunload=()=>{Z.autosave&&mt()};window.save=mt;const Es=window.hardReset=async()=>{await vn(xn())};window.deleteLowerSaves=()=>{const e=Object.values(ie.saves).indexOf(Z.id)+1;Object.values(ie.saves).slice(e).forEach(t=>localStorage.removeItem(t)),ie.saves=ie.saves.slice(0,e)};const Zn=an({active:"",saves:[],showTPS:!0,theme:jr.Nordic,unthrottled:!1,alignUnits:!1});ht(Zn,e=>{const t=tn.compressToUTF16(JSON.stringify(e));localStorage.setItem(he.id,t)},{deep:!0});var ie=window.settings=Zn;window.hardResetSettings=()=>{const e={active:"",saves:[],showTPS:!0,theme:jr.Nordic,alignUnits:!1};Ke.emit("loadSettings",e),Object.assign(Zn,e),Es()};function Fs(){try{let e=localStorage.getItem(he.id);if(e!=null&&e!==""){if(e[0]!=="{")if(e[0]==="e")e=decodeURIComponent(escape(atob(e)));else if(e[0]==="\u1BE1")e=tn.decompressFromUTF16(e);else{console.warn("Unable to determine settings encoding",e);return}const t=JSON.parse(e);typeof t=="object"&&Object.assign(Zn,t)}Ke.emit("loadSettings",Zn)}catch{}}const Pi=an([]);function Ai(e){Pi.push(e)}const Os=an([]),qs=an([]),Vs={class:"table"},Bs=X({__name:"Column",setup(e){const t=N(()=>kt[ie.theme].mergeAdjacent);return(n,r)=>(M(),T("div",Vs,[k("div",{class:Ne(["col",{mergeAdjacent:s(t)}])},[Ft(n.$slots,"default")],2)]))}}),Ls={class:"table"},js=X({__name:"Row",setup(e){const t=N(()=>kt[ie.theme].mergeAdjacent);return(n,r)=>(M(),T("div",Ls,[k("div",{class:Ne(["row",{mergeAdjacent:s(t)}])},[Ft(n.$slots,"default")],2)]))}});function Ri(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sa(e)}function fe(e,t="span"){return typeof e=="function"?X({render:e}):typeof e=="string"?e.length>0?(e=e.trim(),e.charAt(0)!=="<"&&(e=`<${t}>${e}`),X({template:e})):X({render:()=>({})}):e}function st(e){if(Tt(e))return typeof e=="function"?e():fe(e);const t=e[dt];return d(t,e[lt](),null)}function Pr(...e){let t;return d(js,null,Ri(t=e.map(st))?t:{default:()=>[t]})}function zs(...e){let t;return d(Bs,null,Ri(t=e.map(st))?t:{default:()=>[t]})}function wt(e){if(Tt(e))return typeof e=="function"?e():typeof e=="string"?d(ne,null,[e]):d(e,null,null);const t=e[dt];return d(t,e[lt](),null)}function ci(e,t){return e.reduce((n,r)=>d(ne,null,[n,t,r]))}function Tt(e){return typeof e=="string"?!0:typeof e=="object"?e==null?!1:"render"in e||"component"in e:typeof e=="function"&&e[Hn]===!0}function Ei(e,t){const n=G(null),r=G(void 0);function i(l){n.value||(n.value=setInterval(u,250)),r.value=l}function a(){n.value&&(clearInterval(n.value),n.value=null)}function u(){t&&t.value?t.value():e&&e.value&&e.value(r.value)}return wi(a),{start:i,stop:a,handleHolding:u}}function zr(e,t="div"){const n=bt();return Dt(()=>{n.value=fe(De(e),t)}),n}function Tn(e,t="div"){const n=bt(null);return Dt(()=>{const r=De(e);n.value=r==""||r==null?null:fe(r,t)}),n}function De(e){return s(s(e))}function q(...e){return e.includes(Object)||e.push(Object),e}function di(e){const t=G(!1),n=e[lt].bind(e);return e[lt]=()=>({...n(),onPointerenter:()=>t.value=!0,onPointerleave:()=>t.value=!1}),t}const Gs=X({__name:"Context",emits:["updateNodes"],setup(e,{emit:t}){var v;const n=G({}),r=new ResizeObserver(l),i=G(null);Jn(()=>{const g=i.value;g!=null&&r.observe(g)});let a=!0,u=G((v=i.value)==null?void 0:v.getBoundingClientRect());function l(){a&&(a=!1,Wt(()=>{var g;u.value=(g=i.value)==null?void 0:g.getBoundingClientRect(),Object.values(n.value).filter(b=>b).forEach(b=>b.rect=b.element.getBoundingClientRect()),t("updateNodes",n.value),a=!0}))}Ke.on("fontsLoaded",l);const c={attributes:!1,childList:!0,subtree:!1};sr(Gr,(g,b)=>{const h=new MutationObserver(()=>p(g));h.observe(b,c),n.value[g]={element:b,observer:h,rect:b.getBoundingClientRect()},l()}),sr(Ur,g=>{var b;(b=n.value[g])==null||b.observer.disconnect(),n.value[g]=void 0,l()}),sr(Wr,n),sr(Hr,u);function p(g){const b=n.value[g];b!=null&&(b.rect=b.element.getBoundingClientRect(),t("updateNodes",n.value))}return(g,b)=>(M(),T(ne,null,[Ft(g.$slots,"default",{},void 0,!0),k("div",{ref_key:"resizeListener",ref:i,class:"resize-listener"},null,512)],64))}});var Fi=ve(Gs,[["__scopeId","data-v-2b1dc1bc"]]);const Us=["onPointerdown"],Ws={class:"modal-wrapper"},Hs={class:"modal-container"},Ys={class:"modal-header"},Zs={class:"modal-body"},Xs={class:"modal-footer"},Js=k("div",{class:"modal-default-flex-grow"},null,-1),Vt=X({__name:"Modal",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e,{expose:t,emit:n}){const i=Te(e),a=N(()=>s(i.modelValue)||l.value);function u(){n("update:modelValue",!1)}const l=G(!1),c=G(null),p=N(()=>{var v,g;return(g=(v=c.value)==null?void 0:v.nodes)!=null?g:null});return t({isOpen:a,nodes:p}),(v,g)=>(M(),re(la,{to:"#modal-root"},[d(Gn,{name:"modal",onBeforeEnter:g[0]||(g[0]=b=>l.value=!0),onAfterLeave:g[1]||(g[1]=b=>l.value=!1)},{default:Y(()=>[Br(k("div",Ot({class:"modal-mask",onPointerdown:$n(u,["self"])},v.$attrs),[k("div",Ws,[k("div",Hs,[k("div",Ys,[Ft(v.$slots,"header",{shown:s(a)},()=>[_(" default header ")])]),k("div",Zs,[d(Fi,{ref_key:"contextRef",ref:c},{default:Y(()=>[Ft(v.$slots,"body",{shown:s(a)},()=>[_(" default body ")])]),_:3},512)]),k("div",Xs,[Ft(v.$slots,"footer",{shown:s(a)},()=>[k("div",{class:"modal-default-footer"},[Js,k("button",{class:"button modal-default-button",onClick:u}," Close ")])])])])])],16,Us),[[oa,e.modelValue]])]),_:3})]))}}),en=Symbol("ProxyState");function Qe(e,t={}){const n=t;let r=!1,i=!1;function a(){return r||(i&&console.error("Cyclical dependency detected. Cannot evaluate lazy proxy."),i=!0,Object.assign(n,e.call(n,n)),r=!0),n}return new Proxy(n,{get(u,l){if(l===en)return a();const c=a()[l];return c!=null&&typeof c=="object"&&Et in c?c[Et]:c},set(u,l,c){return a()[l]=c,!0},has(u,l){return l===en?!0:Reflect.has(a(),l)},ownKeys(){return Reflect.ownKeys(a())},getOwnPropertyDescriptor(u,l){return r||(Object.assign(n,e.call(n,n)),r=!0),Object.getOwnPropertyDescriptor(u,l)}})}const Oi=o.ln(10);function Ln(e){return e}function Ks(e,t){return F(t)?t.invert(o.neg(e)):(console.error("Could not invert due to no input being a variable"),0)}function Qs(e,t){return F(t)?t.isIntegrable()?f.neg(t.getIntegralFormula(e)):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function eo(e){return f.neg(e)}function to(e,t,n){return F(t)?t.invert(o.sub(e,Se(n))):F(n)?n.invert(o.sub(e,Se(t))):(console.error("Could not invert due to no input being a variable"),0)}function no(e,t,n){var r,i;if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=t.getIntegralFormula(e);return f.times(n,(r=t.innermostVariable)!=null?r:0).add(a)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=n.getIntegralFormula(e);return f.times(t,(i=n.innermostVariable)!=null?i:0).add(a)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function ro(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.add(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.add(r,t)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function io(e,t,n){return F(t)?t.invert(o.add(e,Se(n))):F(n)?n.invert(o.sub(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function ao(e,t,n){var r,i;if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=t.getIntegralFormula(e);return f.sub(a,f.times(n,(r=t.innermostVariable)!=null?r:0))}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=n.getIntegralFormula(e);return f.times(t,(i=n.innermostVariable)!=null?i:0).sub(a)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function so(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.sub(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.sub(r,t)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function oo(e,t,n){return F(t)?t.invert(o.div(e,Se(n))):F(n)?n.invert(o.div(e,Se(t))):(console.error("Could not invert due to no input being a variable"),0)}function lo(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.times(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.times(r,t)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function uo(e,t,n){return F(t)?f.div(e,n):F(n)?f.div(e,t):(console.error("Could not apply substitution due to no input being a variable"),f.constant(0))}function co(e,t,n){return F(t)?t.invert(o.mul(e,Se(n))):F(n)?n.invert(o.div(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function po(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.div(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.div(t,r)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function fo(e,t,n){return F(t)?f.mul(e,n):F(n)?f.mul(e,t):(console.error("Could not apply substitution due to no input being a variable"),f.constant(0))}function go(e,t){return F(t)?t.invert(o.recip(e)):(console.error("Could not invert due to no input being a variable"),0)}function mo(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.ln(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function vo(e,t){return F(t)?t.invert(o.pow10(e)):(console.error("Could not invert due to no input being a variable"),0)}function ho(e){return o.ln(e).sub(1).times(e).div(Oi)}function bo(e,t){if(F(t)){const n=Oi.times(e);return t.invert(n.div(n.div(Math.E).lambertw()))}return console.error("Could not invert due to no input being a variable"),0}function yo(e,t){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e)],evaluate:ho,invert:bo}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function wo(e,t,n){return F(t)?t.invert(o.pow(Se(n),e)):F(n)?n.invert(o.root(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function _o(e,t){return o.ln(e).sub(1).times(e).div(o.ln(t))}function No(e,t,n){if(F(t)){const r=o.ln(Se(n)).times(e);return t.invert(r.div(r.div(Math.E).lambertw()))}return console.error("Could not invert due to no input being a variable"),0}function Co(e,t,n){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e),n],evaluate:_o,invert:No}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function ko(e,t){return F(t)?t.invert(o.pow(2,e)):(console.error("Could not invert due to no input being a variable"),0)}function Mo(e){return o.ln(e).sub(1).times(e).div(o.ln(2))}function So(e,t){if(F(t)){const n=o.ln(2).times(e);return t.invert(n.div(n.div(Math.E).lambertw()))}return console.error("Could not invert due to no input being a variable"),0}function Io(e,t){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e)],evaluate:Mo,invert:So}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function xo(e,t){return F(t)?t.invert(o.exp(e)):(console.error("Could not invert due to no input being a variable"),0)}function $o(e){return o.ln(e).sub(1).times(e)}function Do(e,t){return F(t)?t.invert(o.div(e,o.div(e,Math.E).lambertw())):(console.error("Could not invert due to no input being a variable"),0)}function To(e,t){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e)],evaluate:$o,invert:Do}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function Po(e,t,n){return F(t)?t.invert(o.root(e,Se(n))):F(n)?n.invert(o.ln(e).div(o.ln(Se(t)))):(console.error("Could not invert due to no input being a variable"),0)}function Ao(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e),i=f.add(n,1);return f.pow(r,i).div(i)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.pow(t,r).div(f.ln(t))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Ro(e,t){return F(t)?t.invert(o.root(e,10)):(console.error("Could not invert due to no input being a variable"),0)}function Eo(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.pow10(n).div(f.ln(10))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Fo(e,t,n){return F(t)?t.invert(o.ln(e).div(o.ln(Se(n)))):F(n)?n.invert(o.root(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function Oo(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.pow(n,r).div(f.ln(n))}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e),i=f.add(t,1);return f.pow(r,i).div(i)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function qo(e,t,n){return F(t)?t.invert(o.root(e,o.recip(Se(n)))):F(n)?n.invert(o.ln(Se(t)).div(o.ln(e))):(console.error("Could not invert due to no input being a variable"),0)}function Vo(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.pow(r,f.recip(n).add(1)).times(n).div(f.add(n,1))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Bo(e,t){return F(t)?t.invert(o.ln(e)):(console.error("Could not invert due to no input being a variable"),0)}function Lo(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.exp(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function jo(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){const r=o.minabs(t,1e308).toNumber();return o.tetrate(e,r,n)}function zo(e,t,n,r){return F(t)?t.invert(o.ssqrt(e)):(console.error("Could not invert due to no input being a variable"),0)}function Go(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){const r=o.minabs(t,1e308).toNumber();return o.iteratedexp(e,r,new o(n))}function Uo(e,t,n,r){return F(t)?t.invert(o.iteratedlog(e,Math.E,o.minabs(1e308,Se(n)).toNumber())):(console.error("Could not invert due to no input being a variable"),0)}function Wo(e,t=10,n=2){const r=o.minabs(n,1e308).toNumber();return o.iteratedlog(e,t,r)}function Ho(e,t=10){const n=o.minabs(t,1e308).toNumber();return o.slog(e,n)}function Yo(e,t,n){return F(t)?t.invert(o.tetrate(e,o.minabs(1e308,Se(n)).toNumber())):(console.error("Could not invert due to no input being a variable"),0)}function Zo(e,t,n){const r=o.minabs(t,1e308).toNumber();return o.layeradd(e,r,n)}function Xo(e,t,n,r){return F(t)?t.invert(o.layeradd(e,o.minabs(1e308,Se(n)).negate().toNumber())):(console.error("Could not invert due to no input being a variable"),0)}function Jo(e,t){return F(t)?t.invert(o.pow(Math.E,e).times(e)):(console.error("Could not invert due to no input being a variable"),0)}function Ko(e,t){return F(t)?t.invert(o.tetrate(e,2)):(console.error("Could not invert due to no input being a variable"),0)}function Qo(e,t,n){const r=o.minabs(t,1e308).toNumber();return o.pentate(e,r,n)}function el(e,t){return F(t)?t.invert(o.asin(e)):(console.error("Could not invert due to no input being a variable"),0)}function tl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cos(n).neg()}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function nl(e,t){return F(t)?t.invert(o.acos(e)):(console.error("Could not invert due to no input being a variable"),0)}function rl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.sin(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function il(e,t){return F(t)?t.invert(o.atan(e)):(console.error("Could not invert due to no input being a variable"),0)}function al(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cos(n).ln().neg()}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function sl(e,t){return F(t)?t.invert(o.sin(e)):(console.error("Could not invert due to no input being a variable"),0)}function ol(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.asin(n).times(n).add(f.sqrt(f.sub(1,f.pow(n,2))))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function ll(e,t){return F(t)?t.invert(o.cos(e)):(console.error("Could not invert due to no input being a variable"),0)}function ul(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.acos(n).times(n).sub(f.sqrt(f.sub(1,f.pow(n,2))))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function cl(e,t){return F(t)?t.invert(o.tan(e)):(console.error("Could not invert due to no input being a variable"),0)}function dl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.atan(n).times(n).sub(f.ln(f.pow(n,2).add(1)).div(2))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function pl(e,t){return F(t)?t.invert(o.asinh(e)):(console.error("Could not invert due to no input being a variable"),0)}function fl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cosh(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function gl(e,t){return F(t)?t.invert(o.acosh(e)):(console.error("Could not invert due to no input being a variable"),0)}function ml(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.sinh(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function vl(e,t){return F(t)?t.invert(o.atanh(e)):(console.error("Could not invert due to no input being a variable"),0)}function hl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cosh(n).ln()}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function bl(e,t){return F(t)?t.invert(o.sinh(e)):(console.error("Could not invert due to no input being a variable"),0)}function yl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.asinh(n).times(n).sub(f.pow(n,2).add(1).sqrt())}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function wl(e,t){return F(t)?t.invert(o.cosh(e)):(console.error("Could not invert due to no input being a variable"),0)}function _l(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.acosh(n).times(n).sub(f.add(n,1).sqrt().times(f.sub(n,1).sqrt()))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Nl(e,t){return F(t)?t.invert(o.tanh(e)):(console.error("Could not invert due to no input being a variable"),0)}function Cl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.atanh(n).times(n).add(f.sub(1,f.pow(n,2)).ln().div(2))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Pn(e){return(t,n)=>new f({inputs:[t,n],evaluate:e,invert:Ln})}function F(e){return e instanceof Pe&&e.hasVariable()}function Se(e,t){return e instanceof Pe?e.evaluate(t):s(e)}function kl(){return f.pow(this,2).div(2)}function Ml(){return this}const Ve=class{constructor(e){this.negate=this.neg,this.negated=this.neg,this.sgn=this.sign,this.plus=this.add,this.subtract=this.sub,this.minus=this.sub,this.multiply=this.mul,this.times=this.mul,this.divide=this.div,this.divideBy=this.div,this.dividedBy=this.div,this.reciprocal=this.recip,this.reciprocate=this.recip,this.logarithm=this.log;let t;"inputs"in e&&(e.inputs=e.inputs.map(n=>typeof n=="object"&&Et in n?n[Et]:n)),"variable"in e?(typeof e.variable=="object"&&Et in e.variable&&(e.variable=e.variable[Et]),t=this.setupVariable(e)):"evaluate"in e?t=this.setupFormula(e):t=this.setupConstant(e),this.inputs=t.inputs,this.internalVariables=t.internalVariables,this.innermostVariable=t.innermostVariable,this.internalEvaluate=t.internalEvaluate,this.internalInvert=t.internalInvert,this.internalIntegrate=t.internalIntegrate,this.internalIntegrateInner=t.internalIntegrateInner,this.applySubstitution=t.applySubstitution}setupVariable({variable:e}){return{inputs:[e],internalVariables:1,innermostVariable:e,internalIntegrate:kl,internalIntegrateInner:Ml,applySubstitution:Ln}}setupConstant({inputs:e}){return e.length!==1&&console.error("Evaluate function is required if inputs is not length 1"),{inputs:e,internalVariables:0}}setupFormula(e){var b,h;const{inputs:t,evaluate:n,invert:r,integrate:i,integrateInner:a,applySubstitution:u}=e,l=t.reduce((y,C)=>y+(C instanceof Ve?C.internalVariables:0),0),c=t.find(y=>y instanceof Ve&&y.hasVariable()),p=l===1?c==null?void 0:c.innermostVariable:void 0,v=(b=c==null?void 0:c.isInvertible())!=null?b:!1,g=(h=c==null?void 0:c.isIntegrable())!=null?h:!1;return{inputs:t,internalEvaluate:n,internalInvert:v?r:void 0,internalIntegrate:g?i:void 0,internalIntegrateInner:a,applySubstitution:u,innermostVariable:p,internalVariables:l}}isInvertible(){return this.hasVariable()&&(this.internalInvert!=null||this.internalEvaluate==null)}isIntegrable(){return this.hasVariable()&&this.internalIntegrate!=null}isIntegralInvertible(){return this.isIntegrable()?this.getIntegralFormula().isInvertible():!1}hasVariable(){return this.internalVariables===1}evaluate(e){var t,n,r;return(r=(n=(t=this.internalEvaluate)==null?void 0:t.call(this,...this.inputs.map(i=>Se(i,e))))!=null?n:this.hasVariable()?e:null)!=null?r:Se(this.inputs[0])}equals(e){return this.inputs.length===e.inputs.length&&this.inputs.every((t,n)=>t instanceof Ve&&e.inputs[n]instanceof Ve?t.equals(e.inputs[n]):!(t instanceof Ve)&&!(e.inputs[n]instanceof Ve)&&o.eq(s(t),s(e.inputs[n])))&&this.internalEvaluate===e.internalEvaluate&&this.internalInvert===e.internalInvert&&this.internalIntegrate===e.internalIntegrate&&this.internalVariables===e.internalVariables}static constant(e){return new f({inputs:[e]})}static variable(e){return new f({variable:e})}static step(e,t,n){const r=n(f.variable(0)),i=_e(t);function a(l){return o.lt(l,s(i))?l:o.add(r.evaluate(o.sub(l,s(i))),s(i))}function u(l,c){return F(c)&&r.isInvertible()?(o.gt(l,s(i))&&(l=o.add(r.invert(o.sub(l,s(i))),s(i))),c.invert(l)):(console.error("Could not invert due to no input being a variable"),0)}return new f({inputs:[e],evaluate:a,invert:r.isInvertible()&&r.hasVariable()?u:void 0})}static if(e,t,n,r){const i=G(0),a=f.variable(i),u=n(a),l=r==null?void 0:r(a),c=_e(t);function p(g){return s(c)?(i.value=g,u.evaluate()):l?(i.value=g,l.evaluate()):g}function v(g,b){return!F(b)||!u.isInvertible()||l!=null&&!l.isInvertible()?(console.error("Could not invert due to no input being a variable"),0):s(c)?b.invert(u.invert(g)):l?b.invert(l.invert(g)):b.invert(g)}return new f({inputs:[e],evaluate:p,invert:u.isInvertible()&&u.hasVariable()?v:void 0})}static conditional(e,t,n,r){return f.if(e,t,n,r)}static abs(e){return new f({inputs:[e],evaluate:o.abs})}static neg(e){return new f({inputs:[e],evaluate:o.neg,invert:Ks,applySubstitution:eo,integrate:Qs})}static sign(e){return new f({inputs:[e],evaluate:o.sign})}static round(e){return new f({inputs:[e],evaluate:o.round})}static floor(e){return new f({inputs:[e],evaluate:o.floor})}static ceil(e){return new f({inputs:[e],evaluate:o.ceil})}static trunc(e){return new f({inputs:[e],evaluate:o.trunc})}static add(e,t){return new f({inputs:[e,t],evaluate:o.add,invert:to,integrate:no,integrateInner:ro,applySubstitution:Ln})}static sub(e,t){return new f({inputs:[e,t],evaluate:o.sub,invert:io,integrate:ao,integrateInner:so,applySubstitution:Ln})}static mul(e,t){return new f({inputs:[e,t],evaluate:o.mul,invert:oo,integrate:lo,applySubstitution:uo})}static div(e,t){return new f({inputs:[e,t],evaluate:o.div,invert:co,integrate:po,applySubstitution:fo})}static recip(e){return new f({inputs:[e],evaluate:o.recip,invert:go,integrate:mo})}static clamp(e,t,n){return new f({inputs:[e,t,n],evaluate:o.clamp,invert:Ln})}static pLog10(e){return new f({inputs:[e],evaluate:o.pLog10})}static absLog10(e){return new f({inputs:[e],evaluate:o.absLog10})}static log10(e){return new f({inputs:[e],evaluate:o.log10,invert:vo,integrate:yo})}static log(e,t){return new f({inputs:[e,t],evaluate:o.log,invert:wo,integrate:Co})}static log2(e){return new f({inputs:[e],evaluate:o.log2,invert:ko,integrate:Io})}static ln(e){return new f({inputs:[e],evaluate:o.ln,invert:xo,integrate:To})}static pow(e,t){return new f({inputs:[e,t],evaluate:o.pow,invert:Po,integrate:Ao})}static pow10(e){return new f({inputs:[e],evaluate:o.pow10,invert:Ro,integrate:Eo})}static pow_base(e,t){return new f({inputs:[e,t],evaluate:o.pow_base,invert:Fo,integrate:Oo})}static root(e,t){return new f({inputs:[e,t],evaluate:o.root,invert:qo,integrate:Vo})}static factorial(e){return new f({inputs:[e],evaluate:o.factorial})}static gamma(e){return new f({inputs:[e],evaluate:o.gamma})}static lngamma(e){return new f({inputs:[e],evaluate:o.lngamma})}static exp(e){return new f({inputs:[e],evaluate:o.exp,invert:Bo,integrate:Lo})}static sqr(e){return f.pow(e,2)}static sqrt(e){return f.root(e,2)}static cube(e){return f.pow(e,3)}static cbrt(e){return f.root(e,3)}static tetrate(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){return new f({inputs:[e,t,n],evaluate:jo,invert:zo})}static iteratedexp(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){return new f({inputs:[e,t,n],evaluate:Go,invert:Uo})}static iteratedlog(e,t=10,n=1){return new f({inputs:[e,t,n],evaluate:Wo})}static slog(e,t=10){return new f({inputs:[e,t],evaluate:Ho,invert:Yo})}static layeradd10(e,t){return new f({inputs:[e,t],evaluate:o.layeradd10})}static layeradd(e,t,n=10){return new f({inputs:[e,t,n],evaluate:Zo,invert:Xo})}static lambertw(e){return new f({inputs:[e],evaluate:o.lambertw,invert:Jo})}static ssqrt(e){return new f({inputs:[e],evaluate:o.ssqrt,invert:Ko})}static pentate(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){return new f({inputs:[e,t,n],evaluate:Qo})}static sin(e){return new f({inputs:[e],evaluate:o.sin,invert:sl,integrate:tl})}static cos(e){return new f({inputs:[e],evaluate:o.cos,invert:ll,integrate:rl})}static tan(e){return new f({inputs:[e],evaluate:o.tan,invert:cl,integrate:al})}static asin(e){return new f({inputs:[e],evaluate:o.asin,invert:el,integrate:ol})}static acos(e){return new f({inputs:[e],evaluate:o.acos,invert:nl,integrate:ul})}static atan(e){return new f({inputs:[e],evaluate:o.atan,invert:il,integrate:dl})}static sinh(e){return new f({inputs:[e],evaluate:o.sinh,invert:bl,integrate:fl})}static cosh(e){return new f({inputs:[e],evaluate:o.cosh,invert:wl,integrate:ml})}static tanh(e){return new f({inputs:[e],evaluate:o.tanh,invert:Nl,integrate:hl})}static asinh(e){return new f({inputs:[e],evaluate:o.asinh,invert:pl,integrate:yl})}static acosh(e){return new f({inputs:[e],evaluate:o.acosh,invert:gl,integrate:_l})}static atanh(e){return new f({inputs:[e],evaluate:o.atanh,invert:vl,integrate:Cl})}step(e,t){return f.step(this,e,t)}if(e,t){return f.if(this,e,t)}conditional(e,t){return f.if(this,e,t)}abs(){return f.abs(this)}neg(){return f.neg(this)}sign(){return f.sign(this)}round(){return f.round(this)}floor(){return f.floor(this)}ceil(){return f.ceil(this)}trunc(){return f.trunc(this)}add(e){return f.add(this,e)}sub(e){return f.sub(this,e)}mul(e){return f.mul(this,e)}div(e){return f.div(this,e)}recip(){return f.recip(this)}max(e){return f.max(this,e)}min(e){return f.min(this,e)}maxabs(e){return f.maxabs(this,e)}minabs(e){return f.minabs(this,e)}clamp(e,t){return f.clamp(this,e,t)}clampMin(e){return f.clampMin(this,e)}clampMax(e){return f.clampMax(this,e)}pLog10(){return f.pLog10(this)}absLog10(){return f.absLog10(this)}log10(){return f.log10(this)}log(e){return f.log(this,e)}log2(){return f.log2(this)}ln(){return f.ln(this)}pow(e){return f.pow(this,e)}pow10(){return f.pow10(this)}pow_base(e){return f.pow_base(this,e)}root(e){return f.root(this,e)}factorial(){return f.factorial(this)}gamma(){return f.gamma(this)}lngamma(){return f.lngamma(this)}exp(){return f.exp(this)}sqr(){return f.pow(this,2)}sqrt(){return f.root(this,2)}cube(){return f.pow(this,3)}cbrt(){return f.root(this,3)}tetrate(e=2,t=o.fromComponents_noNormalize(1,0,1)){return f.tetrate(this,e,t)}iteratedexp(e=2,t=o.fromComponents_noNormalize(1,0,1)){return f.iteratedexp(this,e,t)}iteratedlog(e=10,t=1){return f.iteratedlog(this,e,t)}slog(e=10){return f.slog(this,e)}layeradd10(e){return f.layeradd10(this,e)}layeradd(e,t){return f.layeradd(this,e,t)}lambertw(){return f.lambertw(this)}ssqrt(){return f.ssqrt(this)}pentate(e=2,t=o.fromComponents_noNormalize(1,0,1)){return f.pentate(this,e,t)}sin(){return f.sin(this)}cos(){return f.cos(this)}tan(){return f.tan(this)}asin(){return f.asin(this)}acos(){return f.acos(this)}atan(){return f.atan(this)}sinh(){return f.sinh(this)}cosh(){return f.cosh(this)}tanh(){return f.tanh(this)}asinh(){return f.asinh(this)}acosh(){return f.acosh(this)}atanh(){return f.atanh(this)}};let Pe=Ve;Pe.negate=Ve.neg;Pe.negated=Ve.neg;Pe.sgn=Ve.sign;Pe.plus=Ve.add;Pe.subtract=Ve.sub;Pe.minus=Ve.sub;Pe.multiply=Ve.mul;Pe.times=Ve.mul;Pe.divide=Ve.div;Pe.divideBy=Ve.div;Pe.dividedBy=Ve.div;Pe.reciprocal=Ve.recip;Pe.reciprocate=Ve.recip;Pe.max=Pn(o.max);Pe.min=Pn(o.min);Pe.minabs=Pn(o.minabs);Pe.maxabs=Pn(o.maxabs);Pe.clampMin=Pn(o.clampMin);Pe.clampMax=Pn(o.clampMax);Pe.logarithm=Ve.log;class f extends Pe{invert(t){return this.internalInvert&&this.hasVariable()?this.internalInvert.call(this,t,...this.inputs):this.inputs.length===1&&this.hasVariable()?t:(console.error("Cannot invert non-invertible formula"),0)}evaluateIntegral(t){return this.isIntegrable()?this.getIntegralFormula().evaluate(t):(console.error("Cannot evaluate integral of formula without integral"),0)}invertIntegral(t){return!this.isIntegrable()||!this.getIntegralFormula().isInvertible()?(console.error("Cannot invert integral of formula without invertible integral"),0):this.getIntegralFormula().invert(t)}calculateConstantOfIntegration(){const t=this.getIntegralFormula().evaluate(1),n=o.add(this.evaluate(0),this.evaluate(1)).div(2);return o.sub(n,t)}getIntegralFormula(t){if(this.integralFormula!=null&&t==null)return this.integralFormula;if(t==null){if(this.applySubstitution==null){if(t=[],this.internalIntegrate==null)return console.error("Cannot integrate formula with non-integrable operation"),f.constant(0);let n=this.internalIntegrate.call(this,t,...this.inputs);t.forEach(r=>n=r(n)),this.integralFormula=n}else if(this.internalIntegrate)this.integralFormula=this.internalIntegrate.call(this,void 0,...this.inputs);else if(this.inputs.length===1&&this.internalEvaluate==null&&this.hasVariable())this.integralFormula=this;else return console.error("Cannot integrate formula without variable"),f.constant(0);return this.integralFormula}else return this.applySubstitution==null&&console.error("Cannot have two complex operations in an integrable formula"),t.push(n=>this.applySubstitution.call(this,n,...this.inputs)),this.internalIntegrateInner?this.internalIntegrateInner.call(this,t,...this.inputs):this.internalIntegrate?this.internalIntegrate.call(this,t,...this.inputs):this.inputs.length===1&&this.internalEvaluate==null&&this.hasVariable()?this:(console.error("Cannot integrate formula without variable"),f.constant(0))}}function qi(e,t,n=!0,r,i=o.dInf){const a=_e(n),u=_e(r),l=_e(i);return N(()=>{var b,h,y,C;const c=s(l);if(o.eq(c,1))return o.gte(t.value,e.evaluate())?o.dOne:o.dZero;const p=s(a),v=(b=s(u))!=null?b:p?10:0;let g=0;if(o.gt(c,v)){if(!e.isInvertible())return console.error("Cannot calculate max affordable of non-invertible formula with more maxBulkAmount than directSum"),0;if(p){if(!e.isIntegralInvertible())return console.error("Cannot calculate max affordable of formula with non-invertible integral"),0;g=o.floor(e.invertIntegral(o.add(t.value,e.evaluateIntegral()))).sub((h=s(e.innermostVariable))!=null?h:0)}else g=o.floor(e.invert(t.value))}if(g=o.clampMax(g,c),v>0){const D=g;g=o.sub(g,v).clampMin(0);let R;for(p?R=nn(e,g,!0,0):R=e.evaluate(o.add((y=s(e.innermostVariable))!=null?y:0,g));o.lt(g,c)&&o.lt(g,Number.MAX_SAFE_INTEGER)&&o.add(D,1).gte(g);){const I=e.evaluate(g.add((C=s(e.innermostVariable))!=null?C:0));if(o.add(R,I).lte(t.value))g=g.add(1),R=o.add(R,I);else break}}return g})}function nn(e,t,n=!0,r){var c;if(o.eq(t,1))return e.evaluate();const i=(c=s(e.innermostVariable))!=null?c:0;let a=o.add(t,i);const u=a;r!=null||(r=n?10:0),a=a.sub(r).clampMin(i);let l=0;if(o.gt(t,r)){if(!e.isInvertible())return console.error("Cannot calculate cost with indirect sum of non-invertible formula"),0;if(n){if(!e.isIntegrable())return console.error("Cannot calculate cost with cumulative cost of non-integrable formula"),0;if(l=o.sub(e.evaluateIntegral(a),e.evaluateIntegral()),u.gt(1e308))return o.add(l,o.sub(u,a).times(e.evaluate(a)))}else if(l=e.evaluate(a),a=a.add(1),u.gt(1e308))return o.sub(u,a).add(1).times(l)}for(let p=a.toNumber();pPromise.resolve().then(function(){return Tl}),void 0),{fixOldSave:i,getInitialLayers:a}=await Un(()=>Promise.resolve().then(function(){return zp}),void 0);for(const u in t){const l=t[u];l&&n(l)}a(e).forEach(u=>r(u,e)),e=Ti(e),e.offlineProd&&e.time!=null&&e.time&&e.devSpeed!==0&&(e.offlineTime==null&&(e.offlineTime=0),e.offlineTime+=Math.min(e.offlineTime+(Date.now()-e.time)/1e3,he.offlineLimit*3600)),e.time=Date.now(),e.modVersion!==he.versionNumber&&(i(e.modVersion,e),e.modVersion=he.versionNumber),Object.assign(Z,e),ie.active=Z.id,Ke.emit("onLoad")}setInterval(()=>{Z.autosave&&mt()},1e3);window.onbeforeunload=()=>{Z.autosave&&mt()};window.save=mt;const Es=window.hardReset=async()=>{await vn(xn())};window.deleteLowerSaves=()=>{const e=Object.values(ie.saves).indexOf(Z.id)+1;Object.values(ie.saves).slice(e).forEach(t=>localStorage.removeItem(t)),ie.saves=ie.saves.slice(0,e)};const Zn=an({active:"",saves:[],showTPS:!0,theme:jr.Nordic,unthrottled:!1,alignUnits:!1});ht(Zn,e=>{const t=tn.compressToUTF16(JSON.stringify(e));localStorage.setItem(he.id,t)},{deep:!0});var ie=window.settings=Zn;window.hardResetSettings=()=>{const e={active:"",saves:[],showTPS:!0,theme:jr.Nordic,alignUnits:!1};Ke.emit("loadSettings",e),Object.assign(Zn,e),Es()};function Fs(){try{let e=localStorage.getItem(he.id);if(e!=null&&e!==""){if(e[0]!=="{")if(e[0]==="e")e=decodeURIComponent(escape(atob(e)));else if(e[0]==="\u1BE1")e=tn.decompressFromUTF16(e);else{console.warn("Unable to determine settings encoding",e);return}const t=JSON.parse(e);typeof t=="object"&&Object.assign(Zn,t)}Ke.emit("loadSettings",Zn)}catch{}}const Pi=an([]);function Ai(e){Pi.push(e)}const Os=an([]),qs=an([]),Vs={class:"table"},Bs=X({__name:"Column",setup(e){const t=N(()=>kt[ie.theme].mergeAdjacent);return(n,r)=>(M(),T("div",Vs,[k("div",{class:Ne(["col",{mergeAdjacent:s(t)}])},[Ft(n.$slots,"default")],2)]))}}),Ls={class:"table"},js=X({__name:"Row",setup(e){const t=N(()=>kt[ie.theme].mergeAdjacent);return(n,r)=>(M(),T("div",Ls,[k("div",{class:Ne(["row",{mergeAdjacent:s(t)}])},[Ft(n.$slots,"default")],2)]))}});function Ri(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sa(e)}function fe(e,t="span"){return typeof e=="function"?X({render:e}):typeof e=="string"?e.length>0?(e=e.trim(),e.charAt(0)!=="<"&&(e=`<${t}>${e}`),X({template:e})):X({render:()=>({})}):e}function st(e){if(Tt(e))return typeof e=="function"?e():fe(e);const t=e[dt];return d(t,e[lt](),null)}function Pr(...e){let t;return d(js,null,Ri(t=e.map(st))?t:{default:()=>[t]})}function zs(...e){let t;return d(Bs,null,Ri(t=e.map(st))?t:{default:()=>[t]})}function wt(e){if(Tt(e))return typeof e=="function"?e():typeof e=="string"?d(ne,null,[e]):d(e,null,null);const t=e[dt];return d(t,e[lt](),null)}function ci(e,t){return e.reduce((n,r)=>d(ne,null,[n,t,r]))}function Tt(e){return typeof e=="string"?!0:typeof e=="object"?e==null?!1:"render"in e||"component"in e:typeof e=="function"&&e[Hn]===!0}function Ei(e,t){const n=G(null),r=G(void 0);function i(l){n.value||(n.value=setInterval(u,250)),r.value=l}function a(){n.value&&(clearInterval(n.value),n.value=null)}function u(){t&&t.value?t.value():e&&e.value&&e.value(r.value)}return wi(a),{start:i,stop:a,handleHolding:u}}function zr(e,t="div"){const n=bt();return Dt(()=>{n.value=fe(De(e),t)}),n}function Tn(e,t="div"){const n=bt(null);return Dt(()=>{const r=De(e);n.value=r==""||r==null?null:fe(r,t)}),n}function De(e){return s(s(e))}function q(...e){return e.includes(Object)||e.push(Object),e}function di(e){const t=G(!1),n=e[lt].bind(e);return e[lt]=()=>({...n(),onPointerenter:()=>t.value=!0,onPointerleave:()=>t.value=!1}),t}const Gs=X({__name:"Context",emits:["updateNodes"],setup(e,{emit:t}){var v;const n=G({}),r=new ResizeObserver(l),i=G(null);Jn(()=>{const g=i.value;g!=null&&r.observe(g)});let a=!0,u=G((v=i.value)==null?void 0:v.getBoundingClientRect());function l(){a&&(a=!1,Wt(()=>{var g;u.value=(g=i.value)==null?void 0:g.getBoundingClientRect(),Object.values(n.value).filter(b=>b).forEach(b=>b.rect=b.element.getBoundingClientRect()),t("updateNodes",n.value),a=!0}))}Ke.on("fontsLoaded",l);const c={attributes:!1,childList:!0,subtree:!1};sr(Gr,(g,b)=>{const h=new MutationObserver(()=>p(g));h.observe(b,c),n.value[g]={element:b,observer:h,rect:b.getBoundingClientRect()},l()}),sr(Ur,g=>{var b;(b=n.value[g])==null||b.observer.disconnect(),n.value[g]=void 0,l()}),sr(Wr,n),sr(Hr,u);function p(g){const b=n.value[g];b!=null&&(b.rect=b.element.getBoundingClientRect(),t("updateNodes",n.value))}return(g,b)=>(M(),T(ne,null,[Ft(g.$slots,"default",{},void 0,!0),k("div",{ref_key:"resizeListener",ref:i,class:"resize-listener"},null,512)],64))}});var Fi=ve(Gs,[["__scopeId","data-v-2b1dc1bc"]]);const Us=["onPointerdown"],Ws={class:"modal-wrapper"},Hs={class:"modal-container"},Ys={class:"modal-header"},Zs={class:"modal-body"},Xs={class:"modal-footer"},Js=k("div",{class:"modal-default-flex-grow"},null,-1),Vt=X({__name:"Modal",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e,{expose:t,emit:n}){const i=Te(e),a=N(()=>s(i.modelValue)||l.value);function u(){n("update:modelValue",!1)}const l=G(!1),c=G(null),p=N(()=>{var v,g;return(g=(v=c.value)==null?void 0:v.nodes)!=null?g:null});return t({isOpen:a,nodes:p}),(v,g)=>(M(),re(la,{to:"#modal-root"},[d(Gn,{name:"modal",onBeforeEnter:g[0]||(g[0]=b=>l.value=!0),onAfterLeave:g[1]||(g[1]=b=>l.value=!1)},{default:Y(()=>[Br(k("div",Ot({class:"modal-mask",onPointerdown:$n(u,["self"])},v.$attrs),[k("div",Ws,[k("div",Hs,[k("div",Ys,[Ft(v.$slots,"header",{shown:s(a)},()=>[_(" default header ")])]),k("div",Zs,[d(Fi,{ref_key:"contextRef",ref:c},{default:Y(()=>[Ft(v.$slots,"body",{shown:s(a)},()=>[_(" default body ")])]),_:3},512)]),k("div",Xs,[Ft(v.$slots,"footer",{shown:s(a)},()=>[k("div",{class:"modal-default-footer"},[Js,k("button",{class:"button modal-default-button",onClick:u}," Close ")])])])])])],16,Us),[[oa,e.modelValue]])]),_:3})]))}}),en=Symbol("ProxyState");function Qe(e,t={}){const n=t;let r=!1,i=!1;function a(){return r||(i&&console.error("Cyclical dependency detected. Cannot evaluate lazy proxy."),i=!0,Object.assign(n,e.call(n,n)),r=!0),n}return new Proxy(n,{get(u,l){if(l===en)return a();const c=a()[l];return c!=null&&typeof c=="object"&&Et in c?c[Et]:c},set(u,l,c){return a()[l]=c,!0},has(u,l){return l===en?!0:Reflect.has(a(),l)},ownKeys(){return Reflect.ownKeys(a())},getOwnPropertyDescriptor(u,l){return r||(Object.assign(n,e.call(n,n)),r=!0),Object.getOwnPropertyDescriptor(u,l)}})}const Oi=o.ln(10);function Ln(e){return e}function Ks(e,t){return F(t)?t.invert(o.neg(e)):(console.error("Could not invert due to no input being a variable"),0)}function Qs(e,t){return F(t)?t.isIntegrable()?f.neg(t.getIntegralFormula(e)):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function eo(e){return f.neg(e)}function to(e,t,n){return F(t)?t.invert(o.sub(e,Se(n))):F(n)?n.invert(o.sub(e,Se(t))):(console.error("Could not invert due to no input being a variable"),0)}function no(e,t,n){var r,i;if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=t.getIntegralFormula(e);return f.times(n,(r=t.innermostVariable)!=null?r:0).add(a)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=n.getIntegralFormula(e);return f.times(t,(i=n.innermostVariable)!=null?i:0).add(a)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function ro(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.add(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.add(r,t)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function io(e,t,n){return F(t)?t.invert(o.add(e,Se(n))):F(n)?n.invert(o.sub(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function ao(e,t,n){var r,i;if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=t.getIntegralFormula(e);return f.sub(a,f.times(n,(r=t.innermostVariable)!=null?r:0))}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const a=n.getIntegralFormula(e);return f.times(t,(i=n.innermostVariable)!=null?i:0).sub(a)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function so(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.sub(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.sub(r,t)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function oo(e,t,n){return F(t)?t.invert(o.div(e,Se(n))):F(n)?n.invert(o.div(e,Se(t))):(console.error("Could not invert due to no input being a variable"),0)}function lo(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.times(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.times(r,t)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function uo(e,t,n){return F(t)?f.div(e,n):F(n)?f.div(e,t):(console.error("Could not apply substitution due to no input being a variable"),f.constant(0))}function co(e,t,n){return F(t)?t.invert(o.mul(e,Se(n))):F(n)?n.invert(o.div(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function po(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.div(r,n)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.div(t,r)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function fo(e,t,n){return F(t)?f.mul(e,n):F(n)?f.mul(e,t):(console.error("Could not apply substitution due to no input being a variable"),f.constant(0))}function go(e,t){return F(t)?t.invert(o.recip(e)):(console.error("Could not invert due to no input being a variable"),0)}function mo(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.ln(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function vo(e,t){return F(t)?t.invert(o.pow10(e)):(console.error("Could not invert due to no input being a variable"),0)}function ho(e){return o.ln(e).sub(1).times(e).div(Oi)}function bo(e,t){if(F(t)){const n=Oi.times(e);return t.invert(n.div(n.div(Math.E).lambertw()))}return console.error("Could not invert due to no input being a variable"),0}function yo(e,t){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e)],evaluate:ho,invert:bo}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function wo(e,t,n){return F(t)?t.invert(o.pow(Se(n),e)):F(n)?n.invert(o.root(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function _o(e,t){return o.ln(e).sub(1).times(e).div(o.ln(t))}function No(e,t,n){if(F(t)){const r=o.ln(Se(n)).times(e);return t.invert(r.div(r.div(Math.E).lambertw()))}return console.error("Could not invert due to no input being a variable"),0}function Co(e,t,n){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e),n],evaluate:_o,invert:No}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function ko(e,t){return F(t)?t.invert(o.pow(2,e)):(console.error("Could not invert due to no input being a variable"),0)}function Mo(e){return o.ln(e).sub(1).times(e).div(o.ln(2))}function So(e,t){if(F(t)){const n=o.ln(2).times(e);return t.invert(n.div(n.div(Math.E).lambertw()))}return console.error("Could not invert due to no input being a variable"),0}function Io(e,t){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e)],evaluate:Mo,invert:So}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function xo(e,t){return F(t)?t.invert(o.exp(e)):(console.error("Could not invert due to no input being a variable"),0)}function $o(e){return o.ln(e).sub(1).times(e)}function Do(e,t){return F(t)?t.invert(o.div(e,o.div(e,Math.E).lambertw())):(console.error("Could not invert due to no input being a variable"),0)}function To(e,t){return F(t)?t.isIntegrable()?new f({inputs:[t.getIntegralFormula(e)],evaluate:$o,invert:Do}):(console.error("Could not integrate due to variable not being integrable"),f.constant(0)):(console.error("Could not integrate due to no input being a variable"),f.constant(0))}function Po(e,t,n){return F(t)?t.invert(o.root(e,Se(n))):F(n)?n.invert(o.ln(e).div(o.ln(Se(t)))):(console.error("Could not invert due to no input being a variable"),0)}function Ao(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e),i=f.add(n,1);return f.pow(r,i).div(i)}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e);return f.pow(t,r).div(f.ln(t))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Ro(e,t){return F(t)?t.invert(o.root(e,10)):(console.error("Could not invert due to no input being a variable"),0)}function Eo(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.pow10(n).div(f.ln(10))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Fo(e,t,n){return F(t)?t.invert(o.ln(e).div(o.ln(Se(n)))):F(n)?n.invert(o.root(Se(t),e)):(console.error("Could not invert due to no input being a variable"),0)}function Oo(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.pow(n,r).div(f.ln(n))}else if(F(n)){if(!n.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=n.getIntegralFormula(e),i=f.add(t,1);return f.pow(r,i).div(i)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function qo(e,t,n){return F(t)?t.invert(o.root(e,o.recip(Se(n)))):F(n)?n.invert(o.ln(Se(t)).div(o.ln(e))):(console.error("Could not invert due to no input being a variable"),0)}function Vo(e,t,n){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const r=t.getIntegralFormula(e);return f.pow(r,f.recip(n).add(1)).times(n).div(f.add(n,1))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Bo(e,t){return F(t)?t.invert(o.ln(e)):(console.error("Could not invert due to no input being a variable"),0)}function Lo(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.exp(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function jo(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){const r=o.minabs(t,1e308).toNumber();return o.tetrate(e,r,n)}function zo(e,t,n,r){return F(t)?t.invert(o.ssqrt(e)):(console.error("Could not invert due to no input being a variable"),0)}function Go(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){const r=o.minabs(t,1e308).toNumber();return o.iteratedexp(e,r,new o(n))}function Uo(e,t,n,r){return F(t)?t.invert(o.iteratedlog(e,Math.E,o.minabs(1e308,Se(n)).toNumber())):(console.error("Could not invert due to no input being a variable"),0)}function Wo(e,t=10,n=2){const r=o.minabs(n,1e308).toNumber();return o.iteratedlog(e,t,r)}function Ho(e,t=10){const n=o.minabs(t,1e308).toNumber();return o.slog(e,n)}function Yo(e,t,n){return F(t)?t.invert(o.tetrate(e,o.minabs(1e308,Se(n)).toNumber())):(console.error("Could not invert due to no input being a variable"),0)}function Zo(e,t,n){const r=o.minabs(t,1e308).toNumber();return o.layeradd(e,r,n)}function Xo(e,t,n,r){return F(t)?t.invert(o.layeradd(e,o.minabs(1e308,Se(n)).negate().toNumber())):(console.error("Could not invert due to no input being a variable"),0)}function Jo(e,t){return F(t)?t.invert(o.pow(Math.E,e).times(e)):(console.error("Could not invert due to no input being a variable"),0)}function Ko(e,t){return F(t)?t.invert(o.tetrate(e,2)):(console.error("Could not invert due to no input being a variable"),0)}function Qo(e,t,n){const r=o.minabs(t,1e308).toNumber();return o.pentate(e,r,n)}function el(e,t){return F(t)?t.invert(o.asin(e)):(console.error("Could not invert due to no input being a variable"),0)}function tl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cos(n).neg()}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function nl(e,t){return F(t)?t.invert(o.acos(e)):(console.error("Could not invert due to no input being a variable"),0)}function rl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.sin(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function il(e,t){return F(t)?t.invert(o.atan(e)):(console.error("Could not invert due to no input being a variable"),0)}function al(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cos(n).ln().neg()}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function sl(e,t){return F(t)?t.invert(o.sin(e)):(console.error("Could not invert due to no input being a variable"),0)}function ol(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.asin(n).times(n).add(f.sqrt(f.sub(1,f.pow(n,2))))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function ll(e,t){return F(t)?t.invert(o.cos(e)):(console.error("Could not invert due to no input being a variable"),0)}function ul(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.acos(n).times(n).sub(f.sqrt(f.sub(1,f.pow(n,2))))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function cl(e,t){return F(t)?t.invert(o.tan(e)):(console.error("Could not invert due to no input being a variable"),0)}function dl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.atan(n).times(n).sub(f.ln(f.pow(n,2).add(1)).div(2))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function pl(e,t){return F(t)?t.invert(o.asinh(e)):(console.error("Could not invert due to no input being a variable"),0)}function fl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cosh(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function gl(e,t){return F(t)?t.invert(o.acosh(e)):(console.error("Could not invert due to no input being a variable"),0)}function ml(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.sinh(n)}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function vl(e,t){return F(t)?t.invert(o.atanh(e)):(console.error("Could not invert due to no input being a variable"),0)}function hl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.cosh(n).ln()}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function bl(e,t){return F(t)?t.invert(o.sinh(e)):(console.error("Could not invert due to no input being a variable"),0)}function yl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.asinh(n).times(n).sub(f.pow(n,2).add(1).sqrt())}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function wl(e,t){return F(t)?t.invert(o.cosh(e)):(console.error("Could not invert due to no input being a variable"),0)}function _l(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.acosh(n).times(n).sub(f.add(n,1).sqrt().times(f.sub(n,1).sqrt()))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Nl(e,t){return F(t)?t.invert(o.tanh(e)):(console.error("Could not invert due to no input being a variable"),0)}function Cl(e,t){if(F(t)){if(!t.isIntegrable())return console.error("Could not integrate due to variable not being integrable"),f.constant(0);const n=t.getIntegralFormula(e);return f.atanh(n).times(n).add(f.sub(1,f.pow(n,2)).ln().div(2))}return console.error("Could not integrate due to no input being a variable"),f.constant(0)}function Pn(e){return(t,n)=>new f({inputs:[t,n],evaluate:e,invert:Ln})}function F(e){return e instanceof Pe&&e.hasVariable()}function Se(e,t){return e instanceof Pe?e.evaluate(t):s(e)}function kl(){return f.pow(this,2).div(2)}function Ml(){return this}const Ve=class{constructor(e){this.negate=this.neg,this.negated=this.neg,this.sgn=this.sign,this.plus=this.add,this.subtract=this.sub,this.minus=this.sub,this.multiply=this.mul,this.times=this.mul,this.divide=this.div,this.divideBy=this.div,this.dividedBy=this.div,this.reciprocal=this.recip,this.reciprocate=this.recip,this.logarithm=this.log;let t;"inputs"in e&&(e.inputs=e.inputs.map(n=>typeof n=="object"&&Et in n?n[Et]:n)),"variable"in e?(typeof e.variable=="object"&&Et in e.variable&&(e.variable=e.variable[Et]),t=this.setupVariable(e)):"evaluate"in e?t=this.setupFormula(e):t=this.setupConstant(e),this.inputs=t.inputs,this.internalVariables=t.internalVariables,this.innermostVariable=t.innermostVariable,this.internalEvaluate=t.internalEvaluate,this.internalInvert=t.internalInvert,this.internalIntegrate=t.internalIntegrate,this.internalIntegrateInner=t.internalIntegrateInner,this.applySubstitution=t.applySubstitution}setupVariable({variable:e}){return{inputs:[e],internalVariables:1,innermostVariable:e,internalIntegrate:kl,internalIntegrateInner:Ml,applySubstitution:Ln}}setupConstant({inputs:e}){return e.length!==1&&console.error("Evaluate function is required if inputs is not length 1"),{inputs:e,internalVariables:0}}setupFormula(e){var b,h;const{inputs:t,evaluate:n,invert:r,integrate:i,integrateInner:a,applySubstitution:u}=e,l=t.reduce((y,C)=>y+(C instanceof Ve?C.internalVariables:0),0),c=t.find(y=>y instanceof Ve&&y.hasVariable()),p=l===1?c==null?void 0:c.innermostVariable:void 0,v=(b=c==null?void 0:c.isInvertible())!=null?b:!1,g=(h=c==null?void 0:c.isIntegrable())!=null?h:!1;return{inputs:t,internalEvaluate:n,internalInvert:v?r:void 0,internalIntegrate:g?i:void 0,internalIntegrateInner:a,applySubstitution:u,innermostVariable:p,internalVariables:l}}isInvertible(){return this.hasVariable()&&(this.internalInvert!=null||this.internalEvaluate==null)}isIntegrable(){return this.hasVariable()&&this.internalIntegrate!=null}isIntegralInvertible(){return this.isIntegrable()?this.getIntegralFormula().isInvertible():!1}hasVariable(){return this.internalVariables===1}evaluate(e){var t,n,r;return(r=(n=(t=this.internalEvaluate)==null?void 0:t.call(this,...this.inputs.map(i=>Se(i,e))))!=null?n:this.hasVariable()?e:null)!=null?r:Se(this.inputs[0])}equals(e){return this.inputs.length===e.inputs.length&&this.inputs.every((t,n)=>t instanceof Ve&&e.inputs[n]instanceof Ve?t.equals(e.inputs[n]):!(t instanceof Ve)&&!(e.inputs[n]instanceof Ve)&&o.eq(s(t),s(e.inputs[n])))&&this.internalEvaluate===e.internalEvaluate&&this.internalInvert===e.internalInvert&&this.internalIntegrate===e.internalIntegrate&&this.internalVariables===e.internalVariables}static constant(e){return new f({inputs:[e]})}static variable(e){return new f({variable:e})}static step(e,t,n){const r=n(f.variable(0)),i=_e(t);function a(l){return o.lt(l,s(i))?l:o.add(r.evaluate(o.sub(l,s(i))),s(i))}function u(l,c){return F(c)&&r.isInvertible()?(o.gt(l,s(i))&&(l=o.add(r.invert(o.sub(l,s(i))),s(i))),c.invert(l)):(console.error("Could not invert due to no input being a variable"),0)}return new f({inputs:[e],evaluate:a,invert:r.isInvertible()&&r.hasVariable()?u:void 0})}static if(e,t,n,r){const i=G(0),a=f.variable(i),u=n(a),l=r==null?void 0:r(a),c=_e(t);function p(g){return s(c)?(i.value=g,u.evaluate()):l?(i.value=g,l.evaluate()):g}function v(g,b){return!F(b)||!u.isInvertible()||l!=null&&!l.isInvertible()?(console.error("Could not invert due to no input being a variable"),0):s(c)?b.invert(u.invert(g)):l?b.invert(l.invert(g)):b.invert(g)}return new f({inputs:[e],evaluate:p,invert:u.isInvertible()&&u.hasVariable()?v:void 0})}static conditional(e,t,n,r){return f.if(e,t,n,r)}static abs(e){return new f({inputs:[e],evaluate:o.abs})}static neg(e){return new f({inputs:[e],evaluate:o.neg,invert:Ks,applySubstitution:eo,integrate:Qs})}static sign(e){return new f({inputs:[e],evaluate:o.sign})}static round(e){return new f({inputs:[e],evaluate:o.round})}static floor(e){return new f({inputs:[e],evaluate:o.floor})}static ceil(e){return new f({inputs:[e],evaluate:o.ceil})}static trunc(e){return new f({inputs:[e],evaluate:o.trunc})}static add(e,t){return new f({inputs:[e,t],evaluate:o.add,invert:to,integrate:no,integrateInner:ro,applySubstitution:Ln})}static sub(e,t){return new f({inputs:[e,t],evaluate:o.sub,invert:io,integrate:ao,integrateInner:so,applySubstitution:Ln})}static mul(e,t){return new f({inputs:[e,t],evaluate:o.mul,invert:oo,integrate:lo,applySubstitution:uo})}static div(e,t){return new f({inputs:[e,t],evaluate:o.div,invert:co,integrate:po,applySubstitution:fo})}static recip(e){return new f({inputs:[e],evaluate:o.recip,invert:go,integrate:mo})}static clamp(e,t,n){return new f({inputs:[e,t,n],evaluate:o.clamp,invert:Ln})}static pLog10(e){return new f({inputs:[e],evaluate:o.pLog10})}static absLog10(e){return new f({inputs:[e],evaluate:o.absLog10})}static log10(e){return new f({inputs:[e],evaluate:o.log10,invert:vo,integrate:yo})}static log(e,t){return new f({inputs:[e,t],evaluate:o.log,invert:wo,integrate:Co})}static log2(e){return new f({inputs:[e],evaluate:o.log2,invert:ko,integrate:Io})}static ln(e){return new f({inputs:[e],evaluate:o.ln,invert:xo,integrate:To})}static pow(e,t){return new f({inputs:[e,t],evaluate:o.pow,invert:Po,integrate:Ao})}static pow10(e){return new f({inputs:[e],evaluate:o.pow10,invert:Ro,integrate:Eo})}static pow_base(e,t){return new f({inputs:[e,t],evaluate:o.pow_base,invert:Fo,integrate:Oo})}static root(e,t){return new f({inputs:[e,t],evaluate:o.root,invert:qo,integrate:Vo})}static factorial(e){return new f({inputs:[e],evaluate:o.factorial})}static gamma(e){return new f({inputs:[e],evaluate:o.gamma})}static lngamma(e){return new f({inputs:[e],evaluate:o.lngamma})}static exp(e){return new f({inputs:[e],evaluate:o.exp,invert:Bo,integrate:Lo})}static sqr(e){return f.pow(e,2)}static sqrt(e){return f.root(e,2)}static cube(e){return f.pow(e,3)}static cbrt(e){return f.root(e,3)}static tetrate(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){return new f({inputs:[e,t,n],evaluate:jo,invert:zo})}static iteratedexp(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){return new f({inputs:[e,t,n],evaluate:Go,invert:Uo})}static iteratedlog(e,t=10,n=1){return new f({inputs:[e,t,n],evaluate:Wo})}static slog(e,t=10){return new f({inputs:[e,t],evaluate:Ho,invert:Yo})}static layeradd10(e,t){return new f({inputs:[e,t],evaluate:o.layeradd10})}static layeradd(e,t,n=10){return new f({inputs:[e,t,n],evaluate:Zo,invert:Xo})}static lambertw(e){return new f({inputs:[e],evaluate:o.lambertw,invert:Jo})}static ssqrt(e){return new f({inputs:[e],evaluate:o.ssqrt,invert:Ko})}static pentate(e,t=2,n=o.fromComponents_noNormalize(1,0,1)){return new f({inputs:[e,t,n],evaluate:Qo})}static sin(e){return new f({inputs:[e],evaluate:o.sin,invert:sl,integrate:tl})}static cos(e){return new f({inputs:[e],evaluate:o.cos,invert:ll,integrate:rl})}static tan(e){return new f({inputs:[e],evaluate:o.tan,invert:cl,integrate:al})}static asin(e){return new f({inputs:[e],evaluate:o.asin,invert:el,integrate:ol})}static acos(e){return new f({inputs:[e],evaluate:o.acos,invert:nl,integrate:ul})}static atan(e){return new f({inputs:[e],evaluate:o.atan,invert:il,integrate:dl})}static sinh(e){return new f({inputs:[e],evaluate:o.sinh,invert:bl,integrate:fl})}static cosh(e){return new f({inputs:[e],evaluate:o.cosh,invert:wl,integrate:ml})}static tanh(e){return new f({inputs:[e],evaluate:o.tanh,invert:Nl,integrate:hl})}static asinh(e){return new f({inputs:[e],evaluate:o.asinh,invert:pl,integrate:yl})}static acosh(e){return new f({inputs:[e],evaluate:o.acosh,invert:gl,integrate:_l})}static atanh(e){return new f({inputs:[e],evaluate:o.atanh,invert:vl,integrate:Cl})}step(e,t){return f.step(this,e,t)}if(e,t){return f.if(this,e,t)}conditional(e,t){return f.if(this,e,t)}abs(){return f.abs(this)}neg(){return f.neg(this)}sign(){return f.sign(this)}round(){return f.round(this)}floor(){return f.floor(this)}ceil(){return f.ceil(this)}trunc(){return f.trunc(this)}add(e){return f.add(this,e)}sub(e){return f.sub(this,e)}mul(e){return f.mul(this,e)}div(e){return f.div(this,e)}recip(){return f.recip(this)}max(e){return f.max(this,e)}min(e){return f.min(this,e)}maxabs(e){return f.maxabs(this,e)}minabs(e){return f.minabs(this,e)}clamp(e,t){return f.clamp(this,e,t)}clampMin(e){return f.clampMin(this,e)}clampMax(e){return f.clampMax(this,e)}pLog10(){return f.pLog10(this)}absLog10(){return f.absLog10(this)}log10(){return f.log10(this)}log(e){return f.log(this,e)}log2(){return f.log2(this)}ln(){return f.ln(this)}pow(e){return f.pow(this,e)}pow10(){return f.pow10(this)}pow_base(e){return f.pow_base(this,e)}root(e){return f.root(this,e)}factorial(){return f.factorial(this)}gamma(){return f.gamma(this)}lngamma(){return f.lngamma(this)}exp(){return f.exp(this)}sqr(){return f.pow(this,2)}sqrt(){return f.root(this,2)}cube(){return f.pow(this,3)}cbrt(){return f.root(this,3)}tetrate(e=2,t=o.fromComponents_noNormalize(1,0,1)){return f.tetrate(this,e,t)}iteratedexp(e=2,t=o.fromComponents_noNormalize(1,0,1)){return f.iteratedexp(this,e,t)}iteratedlog(e=10,t=1){return f.iteratedlog(this,e,t)}slog(e=10){return f.slog(this,e)}layeradd10(e){return f.layeradd10(this,e)}layeradd(e,t){return f.layeradd(this,e,t)}lambertw(){return f.lambertw(this)}ssqrt(){return f.ssqrt(this)}pentate(e=2,t=o.fromComponents_noNormalize(1,0,1)){return f.pentate(this,e,t)}sin(){return f.sin(this)}cos(){return f.cos(this)}tan(){return f.tan(this)}asin(){return f.asin(this)}acos(){return f.acos(this)}atan(){return f.atan(this)}sinh(){return f.sinh(this)}cosh(){return f.cosh(this)}tanh(){return f.tanh(this)}asinh(){return f.asinh(this)}acosh(){return f.acosh(this)}atanh(){return f.atanh(this)}};let Pe=Ve;Pe.negate=Ve.neg;Pe.negated=Ve.neg;Pe.sgn=Ve.sign;Pe.plus=Ve.add;Pe.subtract=Ve.sub;Pe.minus=Ve.sub;Pe.multiply=Ve.mul;Pe.times=Ve.mul;Pe.divide=Ve.div;Pe.divideBy=Ve.div;Pe.dividedBy=Ve.div;Pe.reciprocal=Ve.recip;Pe.reciprocate=Ve.recip;Pe.max=Pn(o.max);Pe.min=Pn(o.min);Pe.minabs=Pn(o.minabs);Pe.maxabs=Pn(o.maxabs);Pe.clampMin=Pn(o.clampMin);Pe.clampMax=Pn(o.clampMax);Pe.logarithm=Ve.log;class f extends Pe{invert(t){return this.internalInvert&&this.hasVariable()?this.internalInvert.call(this,t,...this.inputs):this.inputs.length===1&&this.hasVariable()?t:(console.error("Cannot invert non-invertible formula"),0)}evaluateIntegral(t){return this.isIntegrable()?this.getIntegralFormula().evaluate(t):(console.error("Cannot evaluate integral of formula without integral"),0)}invertIntegral(t){return!this.isIntegrable()||!this.getIntegralFormula().isInvertible()?(console.error("Cannot invert integral of formula without invertible integral"),0):this.getIntegralFormula().invert(t)}calculateConstantOfIntegration(){const t=this.getIntegralFormula().evaluate(1),n=o.add(this.evaluate(0),this.evaluate(1)).div(2);return o.sub(n,t)}getIntegralFormula(t){if(this.integralFormula!=null&&t==null)return this.integralFormula;if(t==null){if(this.applySubstitution==null){if(t=[],this.internalIntegrate==null)return console.error("Cannot integrate formula with non-integrable operation"),f.constant(0);let n=this.internalIntegrate.call(this,t,...this.inputs);t.forEach(r=>n=r(n)),this.integralFormula=n}else if(this.internalIntegrate)this.integralFormula=this.internalIntegrate.call(this,void 0,...this.inputs);else if(this.inputs.length===1&&this.internalEvaluate==null&&this.hasVariable())this.integralFormula=this;else return console.error("Cannot integrate formula without variable"),f.constant(0);return this.integralFormula}else return this.applySubstitution==null?(console.error("Cannot have two complex operations in an integrable formula"),f.constant(0)):(t.push(n=>this.applySubstitution.call(this,n,...this.inputs)),this.internalIntegrateInner?this.internalIntegrateInner.call(this,t,...this.inputs):this.internalIntegrate?this.internalIntegrate.call(this,t,...this.inputs):this.inputs.length===1&&this.internalEvaluate==null&&this.hasVariable()?this:(console.error("Cannot integrate formula without variable"),f.constant(0)))}}function qi(e,t,n=!0,r,i=o.dInf){const a=_e(n),u=_e(r),l=_e(i);return N(()=>{var b,h,y,C;const c=s(l);if(o.eq(c,1))return o.gte(t.value,e.evaluate())?o.dOne:o.dZero;const p=s(a),v=(b=s(u))!=null?b:p?10:0;let g=0;if(o.gt(c,v)){if(!e.isInvertible())return console.error("Cannot calculate max affordable of non-invertible formula with more maxBulkAmount than directSum"),0;if(p){if(!e.isIntegralInvertible())return console.error("Cannot calculate max affordable of formula with non-invertible integral"),0;g=o.floor(e.invertIntegral(o.add(t.value,e.evaluateIntegral()))).sub((h=s(e.innermostVariable))!=null?h:0)}else g=o.floor(e.invert(t.value))}if(g=o.clampMax(g,c),v>0){const D=g;g=o.sub(g,v).clampMin(0);let R;for(p?R=nn(e,g,!0,0):R=e.evaluate(o.add((y=s(e.innermostVariable))!=null?y:0,g));o.lt(g,c)&&o.lt(g,Number.MAX_SAFE_INTEGER)&&o.add(D,1).gte(g);){const I=e.evaluate(g.add((C=s(e.innermostVariable))!=null?C:0));if(o.add(R,I).lte(t.value))g=g.add(1),R=o.add(R,I);else break}}return g})}function nn(e,t,n=!0,r){var c;if(o.eq(t,1))return e.evaluate();const i=(c=s(e.innermostVariable))!=null?c:0;let a=o.add(t,i);const u=a;r!=null||(r=n?10:0),a=a.sub(r).clampMin(i);let l=0;if(o.gt(t,r)){if(!e.isInvertible())return console.error("Cannot calculate cost with indirect sum of non-invertible formula"),0;if(n){if(!e.isIntegrable())return console.error("Cannot calculate cost with cumulative cost of non-integrable formula"),0;if(l=o.sub(e.evaluateIntegral(a),e.evaluateIntegral()),u.gt(1e308))return o.add(l,o.sub(u,a).times(e.evaluate(a)))}else if(l=e.evaluate(a),a=a.add(1),u.gt(1e308))return o.sub(u,a).add(1).times(l)}for(let p=a.toNumber();pn.trim()).join(` `))!=null?t:""}function pi(e,t){var n;o.isNaN(t)&&(Re.hasNaN||(Z.autosave=!1,Re.hasNaN=!0,Re.NaNPath=e[hn],Re.NaNPersistent=e),console.error(`Attempted to save NaN value to ${(n=e[hn])==null?void 0:n.join(".")}`)),e[rn].value=t}function ot(e,t=!0){const n=qe(e)?e:G(e);qe(e)&&(e=e.value);const r=N({get(){return n.value},set(a){t?pi(i,a):i[rn].value=a}});r[Yt]=e;const i={get value(){return n.value},set value(a){t?pi(i,a):i[rn].value=a},__v_isRef:!0,[rn]:n,[Yt]:e,[fr]:Sl(),[gr]:!1,[Et]:r,[hn]:void 0};return ct.length===0?console.warn("Creating a persistent ref outside of a layer. This is not officially supported",i,` Created at: @@ -18,4 +18,4 @@ ${E}`)}}return p[I]}ht(n,I=>{I&&Object.keys(p).forEach(E=>delete p[E])});const g ${(-s(i)-30)*Math.sin(((e.actions.length-1)/2-h)*s(l))}, ${(s(i)+30)*Math.cos(((e.actions.length-1)/2-h)*s(l))} )`,onMousedown:D=>c(D,b),onTouchstart:D=>c(D,b),onMouseup:D=>p(D,b),onTouchend:$n(D=>p(D,b),["stop"])},[k("circle",{fill:s(me)(b.fillColor,e.node),r:"20","stroke-width":((C=e.selectedAction)==null?void 0:C.id)===b.id?4:0,stroke:s(a)},null,8,Ec),k("text",{fill:s(u),class:"material-icons"},ee(s(me)(b.icon,e.node)),9,Fc)],42,Rc)}),128))])):L("",!0)]),_:1}))}});var qc=ve(Oc,[["__scopeId","data-v-9efb2a56"]]);const Vc=["transform"],Bc={key:0},Lc=["r","fill","stroke"],jc=["r","fill","stroke"],zc=["r","fill"],Gc=["r","stroke-dasharray","stroke-dashoffset","stroke"],Uc={key:1,transform:"rotate(45, 0, 0)"},Wc=["width","height","transform","fill","stroke"],Hc=["width","height","transform","fill","stroke"],Yc=["width","height","transform","fill"],Zc=["width","height","transform","stroke-dasharray","stroke-dashoffset","stroke"],Xc=["fill","y"],Jc=["fill"],Kc=["fill","y"],Qc={key:0},ed=["fill","y"],td=["fill","y"],nd=X({__name:"BoardNode",props:{node:null,nodeType:null,dragging:null,dragged:null,hasDragged:{type:Boolean},receivingNode:{type:Boolean},isSelected:{type:Boolean},selectedAction:null},emits:["mouseDown","endDragging","clickAction"],setup(e,{emit:t}){const n=e,r=Math.sqrt(2),i=Te(n),a=N(()=>me(i.nodeType.value.draggable,s(i.node)));ht(a,U=>{const ye=s(i.node);s(i.dragging)===ye&&!U&&t("endDragging",ye)});const u=N(()=>{var ye;const U=s(i.node);return(ye=me(i.nodeType.value.actions,U))==null?void 0:ye.filter(ze=>He(me(ze.visibility,U)))}),l=N(()=>{var ye;const U=s(i.node);if(me(i.nodeType.value.draggable,U)&&((ye=s(i.dragging))==null?void 0:ye.id)===U.id&&s(i.dragged)!=null){const{x:ze,y:pt}=s(i.dragged);return{x:U.position.x+Math.round(ze/25)*25,y:U.position.y+Math.round(pt/25)*25}}return U.position}),c=N(()=>me(i.nodeType.value.shape,s(i.node))),p=N(()=>me(i.nodeType.value.title,s(i.node))),v=N(()=>me(i.nodeType.value.subtitle,s(i.node))),g=N(()=>me(i.nodeType.value.otherSubtitle,s(i.node))),b=N(()=>{var U;return(U=i.isSelected.value?s(i.selectedAction)&&me(s(i.selectedAction).tooltip,s(i.node)):null)!=null?U:me(i.nodeType.value.label,s(i.node))}),h=N(()=>{var U,ye;return me((ye=(U=s(i.selectedAction))==null?void 0:U.confirmationLabel)!=null?ye:{text:"Tap again to confirm"},s(i.node))}),y=N(()=>me(i.nodeType.value.size,s(i.node))),C=N(()=>{var U;return(U=me(i.nodeType.value.progress,s(i.node)))!=null?U:0}),D=N(()=>kt[ie.theme].variables["--background"]),R=N(()=>{var U;return(U=me(i.nodeType.value.outlineColor,s(i.node)))!=null?U:kt[ie.theme].variables["--outline"]}),I=N(()=>{var U;return(U=me(i.nodeType.value.fillColor,s(i.node)))!=null?U:kt[ie.theme].variables["--raised-background"]}),E=N(()=>me(i.nodeType.value.progressColor,s(i.node))),B=N(()=>{var U;return(U=me(i.nodeType.value.titleColor,s(i.node)))!=null?U:kt[ie.theme].variables["--foreground"]}),de=N(()=>me(i.nodeType.value.progressDisplay,s(i.node))),ue=N(()=>i.dragging.value!=null&&s(i.hasDragged)&&me(i.nodeType.value.canAccept,s(i.node),i.dragging.value)),ae=N(()=>me(i.nodeType.value.style,s(i.node))),Q=N(()=>me(i.nodeType.value.classes,s(i.node)));function Ie(U){t("mouseDown",U,i.node.value,a.value)}function be(U){var ye,ze,pt;(ye=i.hasDragged)!=null&&ye.value||(t("endDragging",i.node.value),(pt=(ze=i.nodeType.value).onClick)==null||pt.call(ze,i.node.value),U.stopPropagation())}return(U,ye)=>{var ze,pt,zt;return M(),T("g",{class:Ne(["boardnode",{[e.node.type]:!0,isSelected:e.isSelected,isDraggable:s(a),...s(Q)}]),style:Be([{opacity:((ze=e.dragging)==null?void 0:ze.id)===e.node.id&&e.hasDragged?.5:1},(pt=s(ae))!=null?pt:[]]),transform:`translate(${s(l).x},${s(l).y})${e.isSelected?" scale(1.2)":""}`},[d(qc,{actions:(zt=s(u))!=null?zt:[],"is-selected":e.isSelected,node:e.node,"node-type":e.nodeType,"selected-action":e.selectedAction,onClickAction:ye[0]||(ye[0]=ft=>t("clickAction",ft))},null,8,["actions","is-selected","node","node-type","selected-action"]),k("g",{class:"node-container",onMousedown:Ie,onTouchstartPassive:Ie,onMouseup:be,onTouchendPassive:be},[s(c)===s(je).Circle?(M(),T("g",Bc,[s(ue)?(M(),T("circle",{key:0,class:"receiver",r:s(y)+8,fill:s(D),stroke:e.receivingNode?"#0F0":"#0F03","stroke-width":2},null,8,Lc)):L("",!0),k("circle",{class:"body",r:s(y),fill:s(I),stroke:s(R),"stroke-width":4},null,8,jc),s(de)===s(sn).Fill?(M(),T("circle",{key:1,class:"progress progressFill",r:Math.max(s(y)*s(C)-2,0),fill:s(E)},null,8,zc)):(M(),T("circle",{key:2,r:s(y)+4.5,class:"progress progressRing",fill:"transparent","stroke-dasharray":(s(y)+4.5)*2*Math.PI,"stroke-width":5,"stroke-dashoffset":(s(y)+4.5)*2*Math.PI-s(C)*(s(y)+4.5)*2*Math.PI,stroke:s(E)},null,8,Gc))])):s(c)===s(je).Diamond?(M(),T("g",Uc,[s(ue)?(M(),T("rect",{key:0,class:"receiver",width:s(y)*s(r)+16,height:s(y)*s(r)+16,transform:`translate(${-(s(y)*s(r)+16)/2}, ${-(s(y)*s(r)+16)/2})`,fill:s(D),stroke:e.receivingNode?"#0F0":"#0F03","stroke-width":2},null,8,Wc)):L("",!0),k("rect",{class:"body",width:s(y)*s(r),height:s(y)*s(r),transform:`translate(${-s(y)*s(r)/2}, ${-s(y)*s(r)/2})`,fill:s(I),stroke:s(R),"stroke-width":4},null,8,Hc),s(de)===s(sn).Fill?(M(),T("rect",{key:1,class:"progress progressFill",width:Math.max(s(y)*s(r)*s(C)-2,0),height:Math.max(s(y)*s(r)*s(C)-2,0),transform:`translate(${-Math.max(s(y)*s(r)*s(C)-2,0)/2}, ${-Math.max(s(y)*s(r)*s(C)-2,0)/2})`,fill:s(E)},null,8,Yc)):(M(),T("rect",{key:2,class:"progress progressDiamond",width:s(y)*s(r)+9,height:s(y)*s(r)+9,transform:`translate(${-(s(y)*s(r)+9)/2}, ${-(s(y)*s(r)+9)/2})`,fill:"transparent","stroke-dasharray":(s(y)*s(r)+9)*4,"stroke-width":5,"stroke-dashoffset":(s(y)*s(r)+9)*4-s(C)*(s(y)*s(r)+9)*4,stroke:s(E)},null,8,Zc))])):L("",!0),k("text",{fill:s(B),class:"node-title",y:s(g)&&!s(v)?-10:0},ee(s(p)),9,Xc),s(v)?(M(),T("text",{key:2,fill:s(B),class:"node-subtitle",y:"-25"},ee(s(v)),9,Jc)):L("",!0),s(g)?(M(),T("text",{key:3,fill:s(B),class:"node-subtitle",y:s(v)?25:15},ee(s(g)),9,Kc)):L("",!0)],32),d(Gn,{name:"fade",appear:""},{default:Y(()=>{var ft;return[s(b)?(M(),T("g",Qc,[k("text",{fill:(ft=s(b).color)!=null?ft:s(B),class:Ne(["node-title",{pulsing:s(b).pulsing}]),y:-s(y)-20},ee(s(b).text),11,ed)])):L("",!0)]}),_:1}),d(Gn,{name:"fade",appear:""},{default:Y(()=>{var ft;return[e.isSelected&&e.selectedAction?(M(),T("text",{key:0,fill:(ft=s(h).color)!=null?ft:s(B),class:Ne(["node-title",{pulsing:s(h).pulsing}]),y:s(y)+75},ee(s(h).text),11,td)):L("",!0)]}),_:1})],14,Vc)}}});var rd=ve(nd,[["__scopeId","data-v-19cf948c"]]);const id={class:"stage",width:"100%",height:"100%"},ad={class:"g1"},sd=X({__name:"Board",props:{nodes:null,types:null,state:null,visibility:null,width:null,height:null,style:null,classes:null,links:null,selectedAction:null,selectedNode:null,draggingNode:null,receivingNode:null,mousePosition:null,setReceivingNode:{type:Function},setDraggingNode:{type:Function}},setup(e){const n=Te(e),r=G({x:0,y:0}),i=G({x:0,y:0}),a=G(!1),u=G(null),l=N(()=>{const h=n.nodes.value.slice();if(n.selectedNode.value){const y=h.splice(h.indexOf(n.selectedNode.value),1)[0];h.push(y)}if(n.draggingNode.value){const y=h.splice(h.indexOf(n.draggingNode.value),1)[0];h.push(y)}return h});Dt(()=>{const h=n.draggingNode.value;if(h==null)return null;const y={x:h.position.x+i.value.x,y:h.position.y+i.value.y};let C=Number.MAX_VALUE;n.setReceivingNode.value(n.nodes.value.reduce((D,R)=>{if(R.id===h.id)return D;const I=n.types.value[R.type];if(!me(I.canAccept,R,h))return D;const B=Math.pow(y.x-R.position.x,2)+Math.pow(y.y-R.position.y,2);let de=me(I.size,R);return B>C||B>de*de?D:(C=B,R)},null))});function c(h){h.setTransformOrigin(null),h.moveTo(u.value.$el.clientWidth/2,u.value.$el.clientHeight/2)}function p(h,y=null,C=!1){if(n.draggingNode.value==null){h.preventDefault(),h.stopPropagation();let D,R;if("touches"in h)if(h.touches.length===1)D=h.touches[0].clientX,R=h.touches[0].clientY;else return;else D=h.clientX,R=h.clientY;r.value={x:D,y:R},i.value={x:0,y:0},a.value=!1,C&&n.setDraggingNode.value(y)}y!=null&&(n.state.value.selectedNode=null,n.state.value.selectedAction=null)}function v(h){const{x:y,y:C,scale:D}=u.value.panZoomInstance.getTransform();let R,I;if("touches"in h)if(h.touches.length===1)R=h.touches[0].clientX,I=h.touches[0].clientY;else{g(n.draggingNode.value),n.mousePosition.value=null;return}else R=h.clientX,I=h.clientY;n.mousePosition.value={x:(R-y)/D,y:(I-C)/D},i.value={x:i.value.x+(R-r.value.x)/D,y:i.value.y+(I-r.value.y)/D},r.value={x:R,y:I},(Math.abs(i.value.x)>10||Math.abs(i.value.y)>10)&&(a.value=!0),n.draggingNode.value!=null&&(h.preventDefault(),h.stopPropagation())}function g(h,y=!1){var C,D;if(n.draggingNode.value!=null&&n.draggingNode.value===h){n.receivingNode.value==null&&(n.draggingNode.value.position.x+=Math.round(i.value.x/25)*25,n.draggingNode.value.position.y+=Math.round(i.value.y/25)*25);const R=n.nodes.value;R.push(R.splice(R.indexOf(n.draggingNode.value),1)[0]),n.receivingNode.value&&((D=(C=n.types.value[n.receivingNode.value.type]).onDrop)==null||D.call(C,n.receivingNode.value,n.draggingNode.value)),n.setDraggingNode.value(null)}else!a.value&&!y&&(n.state.value.selectedNode=null,n.state.value.selectedAction=null)}function b(h,y){var D,R;const C=n.types.value[h.type];me((R=(D=C.actions)==null?void 0:D.find(I=>I.id===y))==null?void 0:R.confirmationLabel,h)==null&&(n.state.value.selectedAction=y),n.state.value.selectedAction===y?s(n.selectedAction).onClick(s(n.selectedNode)):n.state.value={...n.state.value,selectedAction:y}}return(h,y)=>{const C=_t("panZoom");return s(He)(e.visibility)?(M(),re(C,{key:0,style:Be([{width:e.width,height:e.height},e.style]),class:Ne(e.classes),selector:".g1",options:{initialZoom:1,minZoom:.1,maxZoom:10,zoomDoubleClickSpeed:1},ref_key:"stage",ref:u,onInit:c,onMousemove:v,onTouchmove:v,onMousedown:y[0]||(y[0]=D=>p(D)),onTouchstart:y[1]||(y[1]=D=>p(D)),onMouseup:y[2]||(y[2]=()=>g(s(e.draggingNode))),onTouchendPassive:y[3]||(y[3]=()=>g(s(e.draggingNode))),onMouseleave:y[4]||(y[4]=()=>g(s(e.draggingNode),!0))},{default:Y(()=>[(M(),T("svg",id,[k("g",ad,[d(ii,{name:"link",appear:""},{default:Y(()=>[(M(!0),T(ne,null,xt(s(e.links)||[],D=>(M(),T("g",{key:`${D.startNode.id}-${D.endNode.id}`},[d(Pc,{link:D,dragging:s(e.draggingNode),dragged:D.startNode===s(e.draggingNode)||D.endNode===s(e.draggingNode)?i.value:void 0},null,8,["link","dragging","dragged"])]))),128))]),_:1}),d(ii,{name:"grow",duration:500,appear:""},{default:Y(()=>[(M(!0),T(ne,null,xt(s(l),D=>(M(),T("g",{key:D.id,style:{"transition-duration":"0s"}},[d(rd,{node:D,nodeType:e.types[D.type],dragging:s(e.draggingNode),dragged:s(e.draggingNode)===D?i.value:void 0,hasDragged:s(e.draggingNode)==null?!1:a.value,receivingNode:s(e.receivingNode)===D,isSelected:s(e.selectedNode)===D,selectedAction:s(e.selectedNode)===D?s(e.selectedAction):null,onMouseDown:p,onEndDragging:g,onClickAction:R=>b(D,R)},null,8,["node","nodeType","dragging","dragged","hasDragged","receivingNode","isSelected","selectedAction","onClickAction"])]))),128))]),_:1})])]))]),_:1},8,["style","class","options"])):L("",!0)}}});Ke.on("setupVue",e=>ya.install(e));const Ui=Symbol("Board");var sn=(e=>(e.Outline="Outline",e.Fill="Fill",e))(sn||{}),je=(e=>(e.Circle="Circle",e.Diamond="Triangle",e))(je||{});function od(e){const t=ot({nodes:[],selectedNode:null,selectedAction:null},!1);return Qe(n=>{const r=e.call(n,n);r.id=Zt("board-"),r.type=Ui,r[dt]=sd,r.state?(Vi(t),A(r,"state")):(t[Yt]={nodes:r.startNodes().map((l,c)=>(l.id=c,l)),selectedNode:null,selectedAction:null},r.state=t),r.nodes=N(()=>s(u.state).nodes),r.selectedNode=N({get(){return u.nodes.value.find(l=>l.id===s(u.state).selectedNode)||null},set(l){var c,p;qe(u.state)?u.state.value={...u.state.value,selectedNode:(c=l==null?void 0:l.id)!=null?c:null}:u.state.selectedNode=(p=l==null?void 0:l.id)!=null?p:null}}),r.selectedAction=N({get(){const l=u.selectedNode.value;if(l==null)return null;const c=u.types[l.type];return c.actions==null?null:c.actions.find(p=>p.id===s(u.state).selectedAction)||null},set(l){var c,p;qe(u.state)?u.state.value={...u.state.value,selectedAction:(c=l==null?void 0:l.id)!=null?c:null}:u.state.selectedAction=(p=l==null?void 0:l.id)!=null?p:null}}),r.mousePosition=G(null),r.links?A(r,"links"):r.links=N(()=>u.selectedAction.value==null?null:u.selectedAction.value.links&&u.selectedNode.value?me(u.selectedAction.value.links,u.selectedNode.value):null),r.draggingNode=G(null),r.receivingNode=G(null),A(r,"visibility"),le(r,"visibility",Me.Visible),A(r,"width"),le(r,"width","100%"),A(r,"height"),le(r,"height","100%"),A(r,"classes"),A(r,"style");for(const l in r.types){const c=r.types[l];if(A(c,"title"),A(c,"subtitle"),A(c,"otherSubtitle"),A(c,"label"),A(c,"size"),le(c,"size",50),A(c,"style"),A(c,"classes"),A(c,"draggable"),le(c,"draggable",!1),A(c,"shape"),le(c,"shape","Circle"),A(c,"canAccept"),le(c,"canAccept",!1),A(c,"progress"),A(c,"progressDisplay"),le(c,"progressDisplay","Fill"),A(c,"progressColor"),le(c,"progressColor","none"),A(c,"fillColor"),A(c,"outlineColor"),A(c,"titleColor"),A(c,"actionDistance"),le(c,"actionDistance",Math.PI/6),c.nodes=N(()=>s(u.state).nodes.filter(p=>p.type===l)),le(c,"onClick",function(p){s(u.state).selectedNode=p.id}),c.actions)for(const p of c.actions)A(p,"visibility"),le(p,"visibility",Me.Visible),A(p,"icon"),A(p,"fillColor"),A(p,"tooltip"),A(p,"confirmationLabel"),le(p,"confirmationLabel",{text:"Tap again to confirm"}),A(p,"links")}function i(l){r.draggingNode.value=l}function a(l){r.receivingNode.value=l}r.placeInAvailableSpace=function(l,c=100,p=W.Right){const v=u.nodes.value.slice().filter(g=>g===l||(p===W.Down||p===W.Up)&&Math.abs(g.position.x-l.position.x)>c||(p===W.Left||p===W.Right)&&Math.abs(g.position.y-l.position.y)>c?!1:!(p===W.Right&&g.position.xl.position.x+c||p===W.Up&&g.position.y>l.position.y+c||p===W.Down&&g.position.yg.position.x-b.position.x:p===W.Left?(g,b)=>b.position.x-g.position.x:p===W.Up?(g,b)=>b.position.y-g.position.y:(g,b)=>g.position.y-b.position.y);for(let g=0;g0&&h>c)break}},r[lt]=function(){const{nodes:l,types:c,state:p,visibility:v,width:g,height:b,style:h,classes:y,links:C,selectedAction:D,selectedNode:R,mousePosition:I,draggingNode:E,receivingNode:B}=this;return{nodes:l,types:c,state:p,visibility:v,width:g,height:b,style:s(h),classes:y,links:C,selectedAction:D,selectedNode:R,mousePosition:I,draggingNode:E,receivingNode:B,setDraggingNode:i,setReceivingNode:a}};const u=r;return u})}function me(e,t,...n){return Wn(e)?e(t,...n):s(e)}function Dn(e){let t=0;return e.nodes.value.forEach(n=>{n.id>=t&&(t=n.id+1)}),t}const jn={};Ke.on("addLayer",e=>{const t=Yn(e,Ui);jn[e.id]=e.on("postUpdate",n=>{t.forEach(r=>{Object.values(r.types).forEach(i=>i.nodes.value.forEach(a=>{var u;return(u=i.update)==null?void 0:u.call(i,a,n)}))})})});Ke.on("removeLayer",e=>{var t;(t=jn[e.id])==null||t.call(jn),jn[e.id]=void 0});function Sn(e,t="points",n=0,r=void 0){const i=qe(e)?e:ot(e);if(i.displayName=t,i.precision=n,i.small=r,!qe(e)){const a=i[Et];a.displayName=t,a.precision=n,a.small=r}return i}new o("10^^8");new o("1e100");function vr(e,t){const n=t!=null?t:e.value;return o.eq(e.precision,0)?at(e.small?n:o.floor(n)):xe(n,e.precision,e.small)}Ke.on("setupVue",e=>e.use(wa));function ld(e="white",t="8px"){return{transform:"scale(1.05, 1.05)",borderColor:"rgba(0, 0, 0, 0.125)",boxShadow:`-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 ${t} ${e}`,zIndex:1}}const ud=X({props:{visibility:{type:q(Number,Boolean),required:!0},display:{type:q(Object,String,Function),required:!0},style:q(String,Object,Array),classes:q(Object),glowColor:q(String),active:Boolean,floating:Boolean},emits:["selectTab"],setup(e,{emit:t}){const{display:n,glowColor:r,floating:i}=Te(e),a=zr(n),u=N(()=>{const c=De(r);return c==null||c===""?{}:s(i)?ld(c):{boxShadow:`0px 9px 5px -6px ${c}`}});function l(){t("selectTab")}return{selectTab:l,component:a,glowColorStyle:u,unref:s,Visibility:Me,isVisible:He,isHidden:yn}}});function cd(e,t,n,r,i,a){var u;return e.isVisible(e.visibility)?(M(),T("button",{key:0,onClick:t[0]||(t[0]=(...l)=>e.selectTab&&e.selectTab(...l)),class:Ne(["tabButton",{active:e.active,...e.unref(e.classes)}]),style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},e.glowColorStyle,(u=e.unref(e.style))!=null?u:{}])},[(M(),re(Je(e.component)))],6)):L("",!0)}var Wi=ve(ud,[["render",cd],["__scopeId","data-v-21427abb"]]);const dd=X({props:{visibility:{type:q(Number,Boolean),required:!0},activeTab:{type:q(Object),required:!0},selected:{type:Object,required:!0},tabs:{type:q(Object),required:!0},style:q(String,Object,Array),classes:q(Object),buttonContainerStyle:q(String,Object,Array),buttonContainerClasses:q(Object)},components:{Sticky:mr,TabButton:Wi},setup(e){const{activeTab:t}=Te(e),n=N(()=>kt[ie.theme].floatingTabs),r=bt("");Dt(()=>{const l=De(t);if(l==null){r.value="";return}if(Tt(l)){r.value=fe(l);return}r.value=fe(s(l.display))});const i=N(()=>{const l=De(t);return Tt(l)||!l?void 0:s(l.classes)}),a=N(()=>{const l=De(t);return Tt(l)||!l?void 0:s(l.style)});function u(l){const{display:c,style:p,classes:v,glowColor:g,visibility:b}=l;return{display:c,style:s(p),classes:v,glowColor:g,visibility:b}}return{floating:n,tabClasses:i,tabStyle:a,Visibility:Me,component:r,gatherButtonProps:u,unref:s,isVisible:He,isHidden:yn}}});function pd(e,t,n,r,i,a){var c,p;const u=_t("TabButton"),l=_t("Sticky");return e.isVisible(e.visibility)?(M(),T("div",{key:0,class:Ne(["tab-family-container",{...e.unref(e.classes),...e.tabClasses}]),style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:[],(p=e.tabStyle)!=null?p:[]])},[d(l,{class:Ne(["tab-buttons-container",e.unref(e.buttonContainerClasses)]),style:Be(e.unref(e.buttonContainerStyle))},{default:Y(()=>[k("div",{class:Ne(["tab-buttons",{floating:e.floating}])},[(M(!0),T(ne,null,xt(e.unref(e.tabs),(v,g)=>(M(),re(u,Ot({onSelectTab:b=>e.selected.value=g,floating:e.floating,key:g,active:e.unref(v.tab)===e.unref(e.activeTab)},e.gatherButtonProps(v)),null,16,["onSelectTab","floating","active"]))),128))],2)]),_:1},8,["class","style"]),e.unref(e.activeTab)?(M(),re(Je(e.unref(e.component)),{key:0})):L("",!0)],6)):L("",!0)}var fd=ve(dd,[["render",pd],["__scopeId","data-v-58dbf83a"]]);const gd=Symbol("TabButton"),md=Symbol("TabFamily");function Hi(e,t){Object.keys(e).length===0&&console.error("Cannot create tab family with 0 tabs");const n=ot(Object.keys(e)[0],!1);return Qe(r=>{var u;const i=(u=t==null?void 0:t.call(r,r))!=null?u:{};i.id=Zt("tabFamily-"),i.type=md,i[dt]=fd,i.tabs=Object.keys(e).reduce((l,c)=>{const p=e[c]();return p.type=gd,p[dt]=Wi,A(p,"visibility"),le(p,"visibility",Me.Visible),A(p,"tab"),A(p,"display"),A(p,"classes"),A(p,"style"),A(p,"glowColor"),l[c]=p,l},{}),i.selected=n,i.activeTab=N(()=>{const l=s(a.tabs);if(n.value in l&&He(l[n.value].visibility))return s(l[n.value].tab);const c=Object.values(l).find(p=>He(p.visibility));return c?s(c.tab):null}),A(i,"visibility"),le(i,"visibility",Me.Visible),A(i,"classes"),A(i,"style"),A(i,"buttonContainerClasses"),A(i,"buttonContainerStyle"),i[lt]=function(){const{visibility:l,activeTab:c,selected:p,tabs:v,style:g,classes:b,buttonContainerClasses:h,buttonContainerStyle:y}=this;return{visibility:l,activeTab:c,selected:p,tabs:v,style:s(g),classes:b,buttonContainerClasses:h,buttonContainerStyle:y}};const a=i;return a})}function Gt(e){return Qe(t=>{const{addend:n,description:r,enabled:i,smallerIsBetter:a}=e.call(t,t),u=_e(n),l=_e(r),c=i==null?void 0:_e(i);return{apply:p=>o.add(p,s(u)),invert:p=>o.sub(p,s(u)),getFormula:p=>f.add(p,u),enabled:c,description:r==null?void 0:z(()=>d("div",{class:"modifier-container"},[s(l)!=null?d("span",{class:"modifier-description"},[wt(s(l))]):null,d("span",{class:"modifier-amount",style:(a===!0?o.gt(s(u),0):o.lt(s(u),0))?"color: var(--danger)":""},[o.gte(s(u),0)?"+":"",Ut(s(u))])]))}})}function Ce(e){return Qe(t=>{const{multiplier:n,description:r,enabled:i,smallerIsBetter:a}=e.call(t,t),u=_e(n),l=_e(r),c=i==null?void 0:_e(i);return{apply:p=>o.times(p,s(u)),invert:p=>o.div(p,s(u)),getFormula:p=>f.times(p,u),enabled:c,description:r==null?void 0:z(()=>d("div",{class:"modifier-container"},[s(l)!=null?d("span",{class:"modifier-description"},[wt(s(l))]):null,d("span",{class:"modifier-amount",style:(a===!0?o.gt(s(u),1):o.lt(s(u),1))?"color: var(--danger)":""},[_("\xD7"),Ut(s(u))])]))}})}function vd(e){return Qe(t=>{const{exponent:n,description:r,enabled:i,supportLowNumbers:a,smallerIsBetter:u}=e.call(t,t),l=_e(n),c=_e(r),p=i==null?void 0:_e(i);return{apply:v=>{let g=v;return a&&(g=o.add(g,1)),g=o.pow(g,s(l)),a&&(g=o.sub(g,1)),g},invert:v=>{let g=v;return a&&(g=o.add(g,1)),g=o.root(g,s(l)),a&&(g=o.sub(g,1)),g},getFormula:v=>a?f.add(v,1).pow(l).sub(1):f.pow(v,l),enabled:p,description:r==null?void 0:z(()=>d("div",{class:"modifier-container"},[s(c)!=null?d("span",{class:"modifier-description"},[wt(s(c)),a?" (+1 effective)":null]):null,d("span",{class:"modifier-amount",style:(u===!0?o.gt(s(l),1):o.lt(s(l),1))?"color: var(--danger)":""},[_("^"),Ut(s(l))])]))}})}function Ct(e){return Qe(()=>{const t=e();return{apply:n=>t.filter(r=>s(r.enabled)!==!1).reduce((r,i)=>i.apply(r),n),invert:t.every(n=>n.invert!=null)?n=>t.filter(r=>s(r.enabled)!==!1).reduceRight((r,i)=>i.invert(r),n):void 0,getFormula:t.every(n=>n.getFormula!=null)?n=>t.filter(r=>s(r.enabled)!==!1).reduce((r,i)=>i.getFormula(r),n):void 0,enabled:t.some(n=>n.enabled!=null)?N(()=>t.filter(n=>s(n.enabled)!==!1).length>0):void 0,description:t.some(n=>n.description!=null)?z(()=>d(ne,null,[t.filter(n=>s(n.enabled)!==!1).map(n=>s(n.description)).filter(n=>n).map(wt)])):void 0}})}const qr=f.variable(0).step(2e3,e=>e.pow_base(1.02)).step(100,e=>e.pow(1.5)).step(o.pow(900,1.5).add(100),e=>e.pow(1.5)).pow(1.5),un={id:"deselect",icon:"close",tooltip:e=>({text:"portals"in e.state?"Disconnect portals":"tools"in e.state?"Disconnect tools":"Disconnect resources"}),onClick(e){var t;Array.isArray((t=e.state)==null?void 0:t.data)?e.state={...e.state,data:[]}:"portals"in e.state?e.state={...e.state,portals:[]}:"resources"in e.state?e.state={...e.state,resources:[]}:"tools"in e.state&&(e.state={...e.state,tools:[]}),m.board.selectedAction.value=null,m.board.selectedNode.value=null},visibility:e=>{var t;return Array.isArray((t=e.state)==null?void 0:t.data)?e.state.data.length>0:"portals"in e.state?e.state.portals.length>0:"resources"in e.state?e.state.resources.length>0:"tools"in e.state?e.state.tools.length>0:!1}},Bt={id:"toggle",icon:"bolt",tooltip:e=>({text:e.state.powered?"Turn Off":`Turn On - Always runs for ${at(m.nextPowerCost.value)} energy/s`}),onClick(e){e.state={...e.state,powered:!e.state.powered},m.board.selectedAction.value=null},fillColor:e=>e.state.powered?"var(--accent1)":"var(--locked)"};function _n(e,t=1/0){const n=e(f.variable(0));return{id:"moreConnections",icon:"hub",formula:n,tooltip(r){return{text:`Increase Connections - ${at(n.evaluate(r.state.maxConnections))} energy`}},fillColor(r){return o.gte(m.energy.value,n.evaluate(r.state.maxConnections))?"var(--bought)":"var(--locked)"},confirmationLabel:r=>o.gte(m.energy.value,n.evaluate(r.state.maxConnections))?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"},onClick(r){const i=n.evaluate(r.state.maxConnections);o.gte(m.energy.value,i)&&(m.energy.value=o.sub(m.energy.value,i),r.state={...r.state,maxConnections:o.add(r.state.maxConnections,1)},m.board.selectedAction.value=null)},visibility:r=>o.add(r.state.maxConnections,m.computedBonusConnectionsModifier.value).lt(t)}}function Yi(e,t){var n,r;if(((n=m.board.draggingNode.value)==null?void 0:n.type)==="resource"){const i=((r=m.board.draggingNode.value)==null?void 0:r.state).type,{maxConnections:a,resources:u}=e.state;return u.includes(i)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,m.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(i),color:"var(--accent2)"}}return null}function hd(e,t){var n,r;if(((n=m.board.draggingNode.value)==null?void 0:n.type)==="passive"){const i=(r=m.board.draggingNode.value)==null?void 0:r.state,{maxConnections:a,tools:u}=e.state;return u.includes(i)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,m.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(i),color:"var(--accent2)"}}return null}function yr(e,t){var n,r;if(((n=m.board.draggingNode.value)==null?void 0:n.type)==="portal"){const i=((r=m.board.draggingNode.value)==null?void 0:r.state).id,{maxConnections:a,portals:u}=e.state;return u.includes(i)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,m.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(i),color:"var(--accent2)"}}return null}function Zi(e,t){if(t.type!=="resource")return!1;const n=t.state.type,{maxConnections:r,resources:i}=e.state;return i.includes(n)?!0:!o.add(r,m.computedBonusConnectionsModifier.value).lte(i.length)}function Xi(e,t){if(t.type!=="resource")return;const n=t.state.type,r=e.state.resources;r.includes(n)?e.state={...e.state,resources:r.filter(i=>i!==n)}:e.state={...e.state,resources:[...r,n]},m.board.selectedNode.value=e}function bd(e,t){if(t.type!=="passive")return!1;const n=t.state,{maxConnections:r,tools:i}=e.state;return i.includes(n)?!0:!o.add(r,m.computedBonusConnectionsModifier.value).lte(i.length)}function yd(e,t){if(t.type!=="passive")return;const n=t.state,r=e.state.tools;r.includes(n)?e.state={...e.state,tools:r.filter(i=>i!==n)}:e.state={...e.state,tools:[...r,n]},m.board.selectedNode.value=e}function wr(e,t){if(t.type!=="portal")return!1;const n=t.state.id,{maxConnections:r,portals:i}=e.state;return i.includes(n)?!0:!o.add(r,m.computedBonusConnectionsModifier.value).lte(i.length)}function _r(e,t){if(t.type!=="portal")return;const n=t.state.id,{portals:r}=e.state;r.includes(n)?e.state={...e.state,portals:r.filter(i=>i!==n)}:e.state={...e.state,portals:[...r,n]},m.board.selectedNode.value=e}function ke(e){return e===m.board.selectedNode.value||e.state.powered}function te(e){return m.empowerer.value!=null&&ke(m.empowerer.value)&&m.empowerer.value.state.tools.includes(e)}function wd(e){var a,u,l;const t=(l=(u=(a=m.resourceNodes.value[e])==null?void 0:a.state)==null?void 0:u.amount)!=null?l:0,n=m.resourceLevels.value[e],r=qr.evaluate(n),i=qr.evaluate(o.add(n,1));return o.sub(t,r).max(0).div(o.sub(i,r)).toNumber()}function gn(e,t,n){if(t.value){const r=t.value.state,i=r[n],a=r.maxConnections;o.gt(i.length,o.add(a,e))&&(t.value.state={...t.value.state,[n]:i.slice(0,o.add(a,e).toNumber())})}}function Lt(e){return{id:"help",icon:"question_mark",tooltip:{text:"Help"},onClick(){m.helpModals[e].showModal.value=!0,m.board.selectedAction.value=null},confirmationLabel:null}}function fi(e){return t=>ie.lineVisibility||e===m.board.selectedNode.value||e===m.board.draggingNode.value||m.resourceNodes.value[t]===m.board.draggingNode.value}const _d={key:0},Nd={key:0,class:"mark star"},Cd=["src"],kd=X({__name:"MarkNode",props:{mark:{type:[Boolean,String]}},setup(e){return(t,n)=>e.mark?(M(),T("div",_d,[e.mark===!0?(M(),T("div",Nd)):(M(),T("img",{key:1,class:"mark",src:e.mark},null,8,Cd))])):L("",!0)}});var Kn=ve(kd,[["__scopeId","data-v-2207999f"]]);const Md=X({__name:"Node",props:{id:null},setup(e){const n=Te(e),r=dr(Gr,()=>{}),i=dr(Ur,()=>{}),a=bt(null),u=N(()=>a.value&&a.value.parentElement);return ht([u,n.id],([l,c],[p,v])=>{p&&i(s(v)),l&&r(c,l)}),wi(()=>i(s(n.id))),(l,c)=>(M(),T("div",{class:"node",ref_key:"node",ref:a},null,512))}});var Qn=ve(Md,[["__scopeId","data-v-a48cb382"]]),Sd=X({props:{display:{type:q(Object,String,Function),required:!0},visibility:{type:q(Number,Boolean),required:!0},style:q(Object,String,Array),classes:q(Object),onClick:Function,onHold:Function,canClick:{type:q(Boolean),required:!0},small:Boolean,mark:q(Boolean,String),id:{type:String,required:!0}},components:{Node:Qn,MarkNode:Kn},setup(e){const{display:t,onClick:n,onHold:r}=Te(e),i=bt("");Dt(()=>{var v;const l=De(t);if(l==null){i.value="";return}if(Tt(l)){i.value=fe(l);return}const c=fe((v=l.title)!=null?v:"","h3"),p=fe(l.description,"div");i.value=fe(z(()=>d("span",null,[l.title!=null?d("div",null,[d(c,null,null)]):null,d(p,null,null)])))});const{start:a,stop:u}=Ei(n,r);return{start:a,stop:u,comp:i,Visibility:Me,isVisible:He,isHidden:yn,unref:s}}});function Id(e,t,n,r,i,a){var c;const u=_t("MarkNode"),l=_t("Node");return e.isVisible(e.visibility)?(M(),T("button",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:[]]),onClick:t[0]||(t[0]=(...p)=>e.onClick&&e.onClick(...p)),onMousedown:t[1]||(t[1]=(...p)=>e.start&&e.start(...p)),onMouseleave:t[2]||(t[2]=(...p)=>e.stop&&e.stop(...p)),onMouseup:t[3]||(t[3]=(...p)=>e.stop&&e.stop(...p)),onTouchstartPassive:t[4]||(t[4]=(...p)=>e.start&&e.start(...p)),onTouchendPassive:t[5]||(t[5]=(...p)=>e.stop&&e.stop(...p)),onTouchcancelPassive:t[6]||(t[6]=(...p)=>e.stop&&e.stop(...p)),class:Ne({feature:!0,clickable:!0,can:e.unref(e.canClick),locked:!e.unref(e.canClick),small:e.small,...e.unref(e.classes)})},[e.unref(e.comp)?(M(),re(Je(e.unref(e.comp)),{key:0})):L("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],38)):L("",!0)}var Ji=ve(Sd,[["render",Id],["__scopeId","data-v-211328c0"]]);const Ki=Symbol("Clickable");function xd(e,...t){const n=t.reduce((r,i)=>{var a;return Object.assign(r,(a=i.getPersistentData)==null?void 0:a.call(i))},{});return Qe(r=>{var u,l,c;const i=(u=e==null?void 0:e.call(r,r))!=null?u:{};i.id=Zt("clickable-"),i.type=Ki,i[dt]=Ji;for(const p of t)(l=p.preConstruct)==null||l.call(p,i);if(Object.assign(i,n),A(i,"visibility"),le(i,"visibility",Me.Visible),A(i,"canClick"),le(i,"canClick",!0),A(i,"classes"),A(i,"style"),A(i,"mark"),A(i,"display"),i.onClick){const p=i.onClick.bind(i);i.onClick=function(v){s(i.canClick)!==!1&&p(v)}}if(i.onHold){const p=i.onHold.bind(i);i.onHold=function(){s(i.canClick)!==!1&&p()}}for(const p of t)(c=p.postConstruct)==null||c.call(p,i);const a=t.reduce((p,v)=>{var g;return Object.assign(p,(g=v.getGatheredProps)==null?void 0:g.call(v,i))},{});return i[lt]=function(){const{display:p,visibility:v,style:g,classes:b,onClick:h,onHold:y,canClick:C,small:D,mark:R,id:I}=this;return{display:p,visibility:v,style:s(g),classes:b,onClick:h,onHold:y,canClick:C,small:D,mark:R,id:I,...a}},i})}function $d(e,t,n=[]){n=n.length===0?Yn(e,Ki):n;const r=typeof t=="function"?N(t):t;return e.on("update",()=>{s(r)&&n.filter(i=>s(i.canClick)).forEach(i=>{var a;return(a=i.onClick)==null?void 0:a.call(i)})})}const Dd=["x1","y1","x2","y2"],Td=X({__name:"Link",props:{link:null,startNode:null,endNode:null,boundingRect:null},setup(e){const n=Te(e),r=N(()=>{const a=n.startNode.value.rect,u=n.boundingRect.value,l=u?{x:a.x+a.width/2-u.x,y:a.y+a.height/2-u.y}:{x:0,y:0};return n.link.value.offsetStart&&(l.x+=n.link.value.offsetStart.x,l.y+=n.link.value.offsetStart.y),l}),i=N(()=>{const a=n.endNode.value.rect,u=n.boundingRect.value,l=u?{x:a.x+a.width/2-u.x,y:a.y+a.height/2-u.y}:{x:0,y:0};return n.link.value.offsetEnd&&(l.x+=n.link.value.offsetEnd.x,l.y+=n.link.value.offsetEnd.y),l});return(a,u)=>(M(),T("line",Ot({"stroke-width":"15px",stroke:"white"},e.link,{x1:s(r).x,y1:s(r).y,x2:s(i).x,y2:s(i).y}),null,16,Dd))}});const Pd=X({__name:"Links",props:{links:null},setup(e){var c;const n=Ht(e,"links"),r=G(null),i=dr(Wr,G({})),a=dr(Hr,G(void 0)),u=G((c=r.value)==null?void 0:c.getBoundingClientRect());ht(a,()=>{var p;return u.value=(p=r.value)==null?void 0:p.getBoundingClientRect()}),Jn(()=>{var p;return u.value=(p=r.value)==null?void 0:p.getBoundingClientRect()});const l=N(()=>{var v,g;const p=i.value;return(g=(v=n.value)==null?void 0:v.filter(b=>{var h,y;return((h=p[b.startNode.id])==null?void 0:h.rect)&&((y=p[b.startNode.id])==null?void 0:y.rect)}))!=null?g:[]});return(p,v)=>(M(),T(ne,null,[s(l)?(M(),T("svg",fa(Ot({key:0},p.$attrs)),[(M(!0),T(ne,null,xt(s(l),(g,b)=>(M(),re(Td,{key:b,link:g,boundingRect:u.value,startNode:s(i)[g.startNode.id],endNode:s(i)[g.endNode.id]},null,8,["link","boundingRect","startNode","endNode"]))),128))],16)):L("",!0),k("div",{ref_key:"resizeListener",ref:r,class:"resize-listener"},null,512)],64))}});var Ad=ve(Pd,[["__scopeId","data-v-063f6d6b"]]);X({props:{nodes:{type:q(Array),required:!0},leftSideNodes:q(Array),rightSideNodes:q(Array),branches:q(Array)},components:{Links:Ad},setup(e){const{nodes:t,leftSideNodes:n,rightSideNodes:r}=Te(e),i=bt();Dt(()=>{const l=De(t);i.value=fe(z(()=>d(ne,null,[l.map(c=>d("span",{class:"row tree-row",style:"margin: 50px auto;"},[c.map(wt)]))])))});const a=bt();Dt(()=>{const l=De(n);a.value=l?fe(z(()=>d("span",{class:"left-side-nodes small"},[l.map(wt)]))):""});const u=bt();return Dt(()=>{const l=De(r);u.value=l?fe(z(()=>d("span",{class:"side-nodes small"},[l.map(wt)]))):""}),{unref:s,nodesComp:i,leftNodesComp:a,rightNodesComp:u}}});X({props:{display:q(Object,String,Function),visibility:{type:q(Number,Boolean),required:!0},style:q(String,Object,Array),classes:q(Object),onClick:Function,onHold:Function,color:q(String),glowColor:q(String),canClick:{type:q(Boolean),required:!0},mark:q(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Kn,Node:Qn},setup(e){const{onClick:t,onHold:n,display:r}=Te(e),i=Tn(r),{start:a,stop:u}=Ei(t,n);return{start:a,stop:u,comp:i,unref:s,Visibility:Me,isCoercableComponent:Tt,isVisible:He,isHidden:yn}}});function zn(e){const t=[],n={};let r=!1;function i(){return r||(t.push(...e()),n.base=t.map(l=>_e(l.base)),n.baseText=t.map(l=>_e(l.baseText)),n.visible=t.map(l=>_e(l.visible)),n.title=t.map(l=>_e(l.title)),n.subtitle=t.map(l=>_e(l.subtitle)),r=!0),t}const a=ot({},!1);return[z(()=>{const l=i();let c=!0;const p=l.map((v,g)=>{var R,I,E;if(s(n.visible[g])===!1)return null;const b=d("h3",{onClick:()=>a.value[g]=!a.value[g],style:"cursor: pointer"},[d("span",{class:"modifier-toggle"+(s(a.value[g])?" collapsed":"")},[_("\u25BC")]),s(n.title[g]),s(n.subtitle[g])!=null?d("span",{class:"subtitle"},[_(" ("),s(n.subtitle[g]),_(")")]):null]),h=s(a.value[g])?null:d(ne,null,[d("div",{class:"modifier-container"},[d("span",{class:"modifier-description"},[wt((R=s(n.baseText[g]))!=null?R:"Base")]),d("span",{class:"modifier-amount"},[xe((I=s(n.base[g]))!=null?I:1),v.unit])]),v.modifier.description==null?null:wt(s(v.modifier.description))]),y=!c;c=!1;const C=(E=s(n.base[g]))!=null?E:1,D=v.modifier.apply(C);return d(ne,null,[y?d("br",null,null):null,d("div",{style:{"--unit":ie.alignUnits&&v.unit!=null?"'"+v.unit+"'":""}},[b,d("br",null,null),h,d("hr",null,null),d("div",{class:"modifier-container"},[d("span",{class:"modifier-description"},[_("Total")]),d("span",{class:"modifier-amount",style:(v.smallerIsBetter===!0?o.gt(D,C!=null?C:1):o.lt(D,C!=null?C:1))?"color: var(--danger)":""},[Ut(D),v.unit])])])])});return d(ne,null,[p])}),a]}function Ar(e,t,n){const r=_e(t),i=_e(n);return N(()=>{const a=s(r),u=s(i);return o.gte(e.value,u)?"Now":o.lte(a,0)?"Never":br(o.sub(u,e.value).div(a))})}function mn(e,t,n=1){const r=_e(t),i=_e(n);return e.hasVariable()||console.error("Cannot create formula preview if the formula does not have a variable"),z(()=>{var a;if(s(r)){const u=Ut(e.evaluate()),l=Ut(e.evaluate(o.add(s((a=e.innermostVariable)!=null?a:0),s(i))));return d(ne,null,[d("b",null,[d("i",null,[u,_(" \u2192 "),l])])])}return d(ne,null,[Ut(e.evaluate())])})}const $t={dirt:120,sand:60,gravel:40,wood:30,stone:24,coal:20,copper:15,iron:12,silver:10,gold:8,emerald:6,platinum:5,diamond:4,berylium:3,unobtainium:2,ultimatum:1},At=Object.keys($t),Le={dirt:{cost:1e3,name:"Pickaxe",type:"passive",state:"dirt"},sand:{cost:1e4,name:"Dowsing Rod",type:"dowsing",state:{resources:[],maxConnections:1,powered:!1}},gravel:{cost:1e5,name:"Ore Processor",type:"passive",state:"gravel"},wood:{cost:1e6,name:"Quarry",type:"quarry",state:{resources:[],maxConnections:1,powered:!1,progress:0}},stone:{cost:1e7,name:"Energizer",type:"passive",state:"stone"},coal:{cost:1e8,name:"Tool Empowerer",type:"empowerer",state:{tools:[],maxConnections:1,powered:!1}},copper:{cost:1e9,name:"Book",type:"passive",state:"copper"},iron:{cost:1e10,name:"Portal Generator",type:"portalGenerator",state:{tier:void 0,influences:[]}},silver:{cost:1e12,name:"Robotics",type:"passive",state:"silver"},gold:{cost:1e15,name:"Booster",type:"booster",state:{portals:[],maxConnections:1,powered:!1,level:1}},emerald:{cost:1e19,name:"AI",type:"passive",state:"emerald"},platinum:{cost:1e24,name:"Upgrader",type:"upgrader",state:{portals:[],maxConnections:1,powered:!1}},diamond:{cost:1e30,name:"ML",type:"passive",state:"diamond"},berylium:{cost:1e37,name:"Automator",type:"automator",state:{portals:[],maxConnections:1,powered:!1}},unobtainium:{cost:1e45,name:"National Grid",type:"passive",state:"unobtainium"},ultimatum:{cost:1e54,name:"Investments",type:"investments",state:{portals:[],maxConnections:1,powered:!1}}},Rt={dirt:"BOGO Coupon",sand:"Metal Detector",gravel:"Neural Nets",wood:"Mining Laser",stone:"Replicator",coal:"Planar Intelligence",copper:"Efficient Code",iron:"Trade Agreements",silver:"Machine Synergizer",gold:"XP Market",emerald:"Efficient Portals",platinum:"Time Dilation",diamond:"Paypal",berylium:"Tiered Mining",unobtainium:"OC'ed Portals",ultimatum:"Rebates"},Rd={dirt:{description:e=>e?"Quadruples mining speed":"Doubles mining speed"},gravel:{description:e=>e?"Quadruples mine ore drops":"Doubles mine ore drops"},stone:{description:e=>e?"Quadruples energy gain":"Doubles energy gain"},copper:{description:e=>e?"Material level is 40% stronger":"Material level is 20% stronger"},silver:{description:e=>e?"Quadruples each plane's resource gain":"Doubles each plane's resource gain"},diamond:{description:e=>e?"+20% plane's resource gain per upgrade bought":"+10% plane's resource gain per upgrade bought"},emerald:{description:e=>e?"+2% plane's resource gain per minute active":"+1% plane's resource gain per minute active"},unobtainium:{description:e=>e?"+2 max connections per machine":"+1 max connections per machine"},dirtRelic:{description:e=>e?"2 free levels for repeatables":"1 free level for repeatables"},sandRelic:{description:e=>e?"Treasure's 2 tiers stronger":"Treasure's 1 tier stronger"},gravelRelic:{description:e=>e?"+2% plane's resource gain per repeatable purchase (diminishing)":"+1% plane's resource gain per repeatable purchase (diminishing)"},woodRelic:{description:e=>e?"(Relics)^2 boost mine speed":"Relics boost mine speed"},stoneRelic:{description:e=>e?"All upgrades apply twice":"Non-multiplicative upgrades apply twice"},coalRelic:{description:e=>e?"Every treasure boosts planar speed by +20%":"Every treasure boosts planar speed by +10%"},copperRelic:{description:e=>e?"Power 2 machines free":"Power 1 machine free"},ironRelic:{description:e=>e?"Conversions give quadruple output":"Conversions give double output"},silverRelic:{description:e=>e?"(Powered machines)^2 boost quarry speed":"Powered machines boost quarry speed"},goldRelic:{description:e=>e?"Each treasure gives +50% XP gain":"Each treasure gives +25% XP gain"},emeraldRelic:{description:e=>e?"Creating portals costs 20x less energy":"Creating portals costs 10x less energy"},platinumRelic:{description:e=>e?"Quadruple dimensions' tick rate":"Double dimensions' tick rate"},diamondRelic:{description:e=>e?"Repeatables/dimensions buy max at once":"Repeatables buy max at once"},beryliumRelic:{description:e=>e?"log(energy)^0.5 boosts planes' resource gain":"log(energy)^0.25 boosts planes' resource gain"},unobtainiumRelic:{description:e=>e?"Upgrades/repeatables/dimensions/prestige no longer spend on purchase":"Upgrades/repeatables no longer spend on purchase"}},vt={increaseResources:{display:"+resource",description:e=>{const t=e.data;return t.length===0?"Increase resource odds - Drag a resource to me!":t.length===1?`Increase ${t[0]}'s odds`:`Increase ${t.length} resources' odds`},cost:2,initialData:[]},decreaseResources:{display:"-resource",description:e=>{const t=e.data;return t.length===0?"Decrease resource odds - Drag a resource to me!":t.length===1?`Decrease ${t[0]}'s odds`:`Decrease ${t.length} resources' odds`},cost:2,initialData:[]},increaseLength:{display:"+length",description:"Increase length",cost:100,initialData:void 0},increaseCaches:{display:"+caches",description:"Increase caches odds",cost:10,initialData:void 0},increaseGens:{display:"+gens",description:"Increase generators odds",cost:10,initialData:void 0},increaseInfluences:{display:"+influences",description:"Increase influences odds",cost:10,initialData:void 0},increaseEnergyMults:{display:"+energy mults",description:"Increase energy mults odds",cost:10,initialData:void 0},increaseResourceMults:{display:"+resource mults",description:"Increase resource mults odds",cost:10,initialData:void 0},increaseDiff:{display:"+difficulty",description:"Increase difficulty/rewards odds",cost:10,initialData:void 0},decreaseDiff:{display:"-difficulty",description:"Decrease difficulty/rewards odds",cost:10,initialData:void 0},increaseRewards:{display:"+rewards",description:"Increase rewards level",cost:1e4,initialData:void 0},relic:{display:"+relic",description:"Max length/difficulty, add tier-unique relic",cost:1e6,initialData:void 0}},or=f.variable(0).add(8).times(2).pow10(),Ed=X({__name:"Tab",props:{display:null},setup(e){const t=e,{display:n}=Te(t),r=zr(n);return(i,a)=>(M(),re(Je(s(r))))}}),Fd=Symbol("Tab");function Rr(e){return Qe(t=>{const n=e.call(t,t);return n.id=Zt("tab-"),n.type=Fd,n[dt]=Ed,n[lt]=function(){const{display:r}=this;return{display:r}},n})}function jt(e,t,n={}){const r=ot(!1);return{modal:z(()=>d(Vt,{modelValue:r.value,"onUpdate:modelValue":a=>r.value=a},{header:()=>d("h2",null,[e]),body:t})),showModal:r,...n}}function Od(){return jt("Getting Started",z(()=>d("div",null,[d("p",null,[_(`Welcome to Planar Pioneers! Your job is to gather resources and eventually explore and conquer increasingly difficult "planes", which are like alien worlds. To start you'll use the mine (\u26CF\uFE0F) machine to gather resources.`)]),d("br",null,null),d("p",null,[_(`You'll gain energy every second based on how much of each resource you have. You can check the exact calculation and various other information by clicking the "modifiers" button near the top of the screen.`)]),d("br",null,null),d("p",null,[_("Select the machine by clicking it to make the mine active. You can also drag them around to organize your various machines and other objects. While selected machines will have various actions you can take, such as viewing the help for that machine. There's also an action to power the machine, allowing it to be active even while not selected, at the cost of energy per second (cost increases based on the total number of machines being powered).")])])))}function qd(){return jt("Forging",z(()=>d("div",null,[d("p",null,[_("You've repaired the forge (\u{1F6E0}\uFE0F)! This is the next main line of progression. Here you'll be able to craft a total of 16 machines and passive bonuses to create - one for each resource!")]),d("br",null,null),d("p",null,[_("Drag a resource onto the forge to select that resource tier. You can then use an action on the forge to create that item, at the cost of energy based on the resource tier. You can only have 1 of each item.")])])))}function Vd(){return jt("Dowsing",z(()=>d("div",null,[d("p",null,[_("You've created the dowsing rod (\u{1F962})! This machine lets you bias the odds of specified resources from mining. It will double the odds of each specified resource, so keep in mind rare resources will still be fairly rare.")]),d("br",null,null),d("p",null,[_("Specify resources to boost by dragging them to the dowsing rod. You can only select a single resource to start, but that can be increased using an action.")])])))}function Bd(){return jt("Quarry",z(()=>d("div",null,[d("p",null,[_("You've created the Quarry (\u26F0\uFE0F)! This machine lets you gather specified resources. Unlike the mine, this machine will always output the same resources. However, rarer resources will take longer to gather.")]),d("br",null,null),d("p",null,[_("Specify resources to gather by dragging them to the quarry. You can only select a single resource to start, but that can be increased using an action.")])])))}function Ld(){return jt("Tool Empowerer",z(()=>d("div",null,[d("p",null,[_("You've created the Tool Empowerer (\u{1F50C})! This machine lets you increase the effect of specified passives. Experimenting with which passives to empower can really help you progress!")]),d("br",null,null),d("p",null,[_("Specify passives to empower by dragging them to the empowerer. You can only select a single passive to start, but that can be increased using an action.")])])))}function jd(){const e=Hi({general:()=>({display:"General",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Rr(()=>({display:z(()=>d("div",null,[d("p",null,[_("You've created the Portal Generator (\u26E9\uFE0F)! This machine lets you create portals to other planes, which will have treasures that help you in various ways! To create a portal you need to specify a tier by dragging a resource to the generator - higher tier planes cost more energy to generate portals for, but offer more and better treasures! Keep in mind time in planes will be paused if the portal is inactive (not selected nor powered).")]),d("br",null,null),d("p",null,[_("You've also gained a trash can for portals (\u{1F5D1}\uFE0F). Dragging a portal here will permanently destroy it. Any treasures that require the portal to be active will no longer work. This can be used to keep your workspace clean from old portals you no longer need or want.")]),d("br",null,null),d("p",null,[_("Once you have portals, the lines on the board might getting particularly necessary. Here's a setting (also accessible in the settings modal) to disable resource gain lines unless the node is active.")]),d("br",null,null),d(It,{title:z(()=>d("span",{class:"option-title"},[_("Always show lines to resource nodes")])),modelValue:ie.lineVisibility,"onUpdate:modelValue":t=>ie.lineVisibility=t},null)]))}))}),treasures:()=>({display:"Treasures",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Rr(()=>({display:z(()=>d("div",null,[_("Types of potential treasures:"),d("ul",{style:"list-style-type: unset"},[d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Caches")]),_(": Gain an amount of a resource based on your current amount.")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Gen")]),_(": Passively gain an amount of a resource while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Resource Mult")]),_(": Increase the amount gained of a resource from all sources (except caches) while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Energy Mult")]),_(": Increase the energy gained per second while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Influences")]),_(": Gain a influence. See the influences tab for details. You can only have 1 of each influence.")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Relic")]),_(": Gain the relic unique to this tier of plane. These are powerful passive boosts that can be empowered. You can only have 1 of each relic. Relics can only appear with the +relic influence, and will always be the last treasure on a plane.")])])]))}))}),influences:()=>({display:"Influences",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Rr(()=>({display:z(()=>d("div",null,[d("p",null,[_("Some treasures will grant you influences that can help the portal generator create portals to planes with specified qualities. Each influence will multiply the energy cost of creating the portal.")]),d("br",null,null),Object.keys(m.influenceNodes.value).length>0?d("div",null,[_("Discovered influences:"),d("ul",{style:"list-style-type: unset"},[m.influenceNodes.value.increaseResources==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+resource")]),_(": Can be connected to resources and will cause any treasures that reference resources (caches, gens, and resource mults) to have increased odds of picking a selected resource.")]),m.influenceNodes.value.decreaseResources==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("-resource")]),_(": Can be connected to resources and will cause any treasures that reference resources (caches, gens, and resource mults) to have decreased odds of picking a selected resource.")]),m.influenceNodes.value.increaseLength==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+length")]),_(": Cause the plane to have 1 extra treasure than it otherwise would have.")]),m.influenceNodes.value.increaseCaches==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+caches")]),_(": Causes treasures to have an increased chance to be caches.")]),m.influenceNodes.value.increaseGens==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+gens")]),_(": Causes treasures to have an increased chance to be gens.")]),m.influenceNodes.value.increaseResourceMults==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+resource mults")]),_(": Causes treasures to have an increased chance to be resource mults.")]),m.influenceNodes.value.increaseEnergyMults==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+energy mults")]),_(": Causes treasures to have an increased chance to be energy mults.")]),m.influenceNodes.value.increaseInfluences==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+influences")]),_(": Causes treasures to have an increased chance to be influences.")]),m.influenceNodes.value.relic==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+relic")]),_(": Maximizes length and difficulty for this tier of plane, and makes the last treasure a relic (unique per tier of plane). Overrides any other difficulty-changing influences.")]),m.influenceNodes.value.increaseDiff==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+difficulty")]),_(": Causes the difficulty and rewards to be in the upper half of what's possible at this tier.")]),m.influenceNodes.value.decreaseDiff==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("-difficulty")]),_(": Causes the difficulty and rewards to be in the lower half of what's possible at this tier.")]),m.influenceNodes.value.increaseRewards==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+rewards")]),_(": Causes the quality of treasures to be 1 tier higher. Does not affect influences or relics treasures.")])])]):d("div",null,[_("Once you discover influences, summaries will appear here describing their effects.")])]))}))})});return jt("Portal Generator",z(()=>wt(e)),{tabFamily:e})}function zd(){return jt("Booster",z(()=>d("div",null,[d("p",null,[_("You've created the Booster (\u231B)! This machine lets you increase the rate of time of planes! This affects its resource gain, gen treasures, and any other effects of time.")]),d("br",null,null),d("p",null,[_("Specify planes to boost by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")]),d("br",null,null),d("p",null,[_("Initially the booster will double the rate of time, but that can be increased using an action.")])])))}function Gd(){return jt("Upgrader",z(()=>d("div",null,[d("p",null,[_("You've created the Upgrader (\u{1F916})! This machine lets you automatically purchase upgrades within planes (includes prestiges but not repeatables or dimensions)!")]),d("br",null,null),d("p",null,[_("Specify planes to auto-purchase upgrades from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}function Ud(){return jt("Automator",z(()=>d("div",null,[d("p",null,[_("You've created the Automator (\u{1F9BE})! This machine lets you automatically purchase repeatables and dimensions within planes!")]),d("br",null,null),d("p",null,[_("Specify planes to auto-purchase repeatables and dimensions from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}function Wd(){return jt("Investments",z(()=>d("div",null,[d("p",null,[_("You've created the Investments machine (\u{1F4B1})! This machine lets you automatically gain the resources from conversions without spending the plane's primary resource!")]),d("br",null,null),d("p",null,[_("Specify planes to gain converted resources from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}const Hd=X({__name:"Spacer",props:{width:{default:"8px"},height:{default:"17px"}},setup(e){return(t,n)=>(M(),T("div",{style:Be({width:e.width,height:e.height})},null,4))}});function qn(e){return Qe(t=>{var r;const n=e.call(t,t);return n.partialDisplay=i=>d("span",{style:s(n.requirementMet)?"":"color: var(--danger)"},[vr(n.resource,n.cost instanceof f?nn(n.cost,i!=null?i:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost))," ",n.resource.displayName]),n.display=i=>d("div",null,[s(n.requiresPay)?"Costs: ":"Requires: ",vr(n.resource,n.cost instanceof f?nn(n.cost,i!=null?i:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost))," ",n.resource.displayName]),A(n,"visibility"),le(n,"visibility",Me.Visible),A(n,"cost"),A(n,"requiresPay"),le(n,"requiresPay",!0),A(n,"cumulativeCost"),le(n,"cumulativeCost",!0),A(n,"maxBulkAmount"),le(n,"maxBulkAmount",1),A(n,"directSum"),le(n,"pay",function(i){const a=n.cost instanceof f?nn(n.cost,i!=null?i:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost);n.resource.value=o.sub(n.resource.value,a).max(0)}),n.canMaximize=N(()=>{var l;if(!(n.cost instanceof f))return!1;const i=s(n.maxBulkAmount);if(o.lte(i,1))return!1;const a=s(n.cumulativeCost),u=(l=s(n.directSum))!=null?l:a?10:0;return o.lte(i,u)?!0:!(!n.cost.isInvertible()||a===!0&&!n.cost.isIntegrable())}),n.cost instanceof f?n.requirementMet=qi(n.cost,n.resource,(r=n.cumulativeCost)!=null?r:!0,n.directSum,n.maxBulkAmount):n.requirementMet=N(()=>o.gte(n.resource.value,s(n.cost))),n})}function Qr(e){return Qe(()=>({requirementMet:N(()=>He(e.visibility)),visibility:Me.None,requiresPay:!1}))}function Yd(e,t){return Qe(()=>({requirementMet:_e(e),partialDisplay:t==null?void 0:z(()=>wt(t)),display:t==null?void 0:z(()=>d(ne,null,[_("Req: "),wt(t)])),visibility:t==null?Me.None:Me.Visible,requiresPay:!1}))}function Nr(e){if(qt(e))return e.every(Nr);const t=s(e.requirementMet);return typeof t=="boolean"?t:o.gt(t,0)}function Qi(e){if(qt(e))return e.map(Qi).reduce(o.min);const t=s(e.requirementMet);return typeof t=="boolean"?t?o.dInf:0:o.gt(t,1)&&s(e.canMaximize)!==!0?1:t}function Cr(e,t=1){var n,r;if(qt(e)&&(e=e.filter(i=>He(i.visibility)),e.length===1&&(e=e[0])),qt(e)){e=e.filter(u=>"partialDisplay"in u);const i=e.filter(u=>s(u.requiresPay)),a=e.filter(u=>!s(u.requiresPay));return d(ne,null,[i.length>0?d("div",null,[_("Costs:")," ",ci(i.map(u=>u.partialDisplay(t)),d(ne,null,[_(", ")]))]):null,a.length>0?d("div",null,[_("Requires:")," ",ci(a.map(u=>u.partialDisplay(t)),d(ne,null,[_(", ")]))]):null])}return(r=(n=e.display)==null?void 0:n.call(e))!=null?r:d(ne,null,null)}function ea(e,t=1){var n;qt(e)?e.filter(r=>s(r.requiresPay)).forEach(r=>{var i;return(i=r.pay)==null?void 0:i.call(r,t)}):s(e.requiresPay)&&((n=e.pay)==null||n.call(e,t))}var Zd=X({props:{visibility:{type:q(Number,Boolean),required:!0},display:q(Object,String,Function),earned:{type:q(Boolean),required:!0},requirements:q(Object,Array),image:q(String),style:q(String,Object,Array),classes:q(Object),mark:q(Boolean,String),small:q(Boolean),id:{type:String,required:!0}},components:{Node:Qn,MarkNode:Kn},setup(e){const{display:t,requirements:n,earned:r}=Te(e),i=bt("");return Dt(()=>{const a=De(t);if(a==null){i.value="";return}if(Tt(a)){i.value=fe(a);return}const u=fe(a.requirement?a.requirement:z(()=>{var p;return Cr((p=De(n))!=null?p:[])}),"h3"),l=fe(a.effectDisplay||"","b"),c=De(r)?fe(a.optionsDisplay||"","span"):"";i.value=fe(z(()=>d("span",null,[d(u,null,null),a.effectDisplay!=null?d("div",null,[d(l,null,null)]):null,a.optionsDisplay!=null?d("div",{class:"equal-spaced"},[d(c,null,null)]):null])))}),{comp:i,unref:s,Visibility:Me,isVisible:He,isHidden:yn}}});function Xd(e,t,n,r,i,a){var c;const u=_t("MarkNode"),l=_t("Node");return e.isVisible(e.visibility)?(M(),T("div",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0,backgroundImage:e.earned&&e.image&&`url(${e.image})`||""},(c=e.unref(e.style))!=null?c:[]]),class:Ne({feature:!0,achievement:!0,locked:!e.unref(e.earned),done:e.unref(e.earned),small:e.unref(e.small),...e.unref(e.classes)})},[e.comp?(M(),re(Je(e.comp),{key:0})):L("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],6)):L("",!0)}var Jd=ve(Zd,[["render",Xd],["__scopeId","data-v-5673325a"]]);const Kd=hr(),Qd=Symbol("Achievement");let In=function(e){return e.All="all",e.Configurable="configurable",e.Incomplete="incomplete",e.None="none",e}({});function ep(e,...t){const n=ot(!1,!1),r=t.reduce((i,a)=>{var u;return Object.assign(i,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(i=>{var c,p,v;const a=(c=e==null?void 0:e.call(i,i))!=null?c:{};a.id=Zt("achievement-"),a.type=Qd,a[dt]=Jd;for(const g of t)(p=g.preConstruct)==null||p.call(g,a);a.earned=n,a.complete=function(){var b,h;if(n.value)return;n.value=!0;const g=a;if((b=g.onComplete)==null||b.call(g),g.display!=null&&s(g.showPopups)===!0){const y=s(g.display);let C;Tt(y)?C=fe(y):y.requirement!=null?C=fe(y.requirement):C=Cr((h=g.requirements)!=null?h:[]),Kd.info(d("div",null,[d("h3",null,[_("Treasure earned!")]),d("div",null,[d(C,null,null)])]))}},Object.assign(a,r),A(a,"visibility"),le(a,"visibility",Me.Visible);const u=a.visibility;a.visibility=ga(()=>{const g=s(a.display);switch(ie.msDisplay){default:case In.All:return s(u);case In.Configurable:return s(a.earned)&&!(g!=null&&typeof g=="object"&&"optionsDisplay"in g)?Me.None:s(u);case In.Incomplete:return s(a.earned)?Me.None:s(u);case In.None:return Me.None}}),A(a,"display"),A(a,"mark"),A(a,"small"),A(a,"image"),A(a,"style"),A(a,"classes"),A(a,"showPopups"),le(a,"showPopups",!0);for(const g of t)(v=g.postConstruct)==null||v.call(g,a);const l=t.reduce((g,b)=>{var h;return Object.assign(g,(h=b.getGatheredProps)==null?void 0:h.call(b,a))},{});if(a[lt]=function(){const{visibility:g,display:b,requirements:h,earned:y,image:C,style:D,classes:R,mark:I,small:E,id:B}=this;return{visibility:g,display:b,requirements:h,earned:y,image:C,style:s(D),classes:R,mark:I,small:E,id:B,...l}},a.requirements){const g=a,b=[Qr(g),Yd(()=>!g.earned.value),...qt(a.requirements)?a.requirements:[a.requirements]];Dt(()=>{ie.active===Z.id&&Nr(b)&&g.complete()})}return a})}Ke.on("loadSettings",e=>{le(e,"msDisplay",In.All)});const tp=Object.values(In).map(e=>({label:rt(e),value:e}));Ai(z(()=>d(Jr,{title:z(()=>d("span",{class:"option-title"},[_("Show achievements"),d("desc",null,[_("Select which achievements to display based on criterias.")])])),options:tp,"onUpdate:modelValue":e=>ie.msDisplay=e,modelValue:ie.msDisplay},null)));const np=X({props:{progress:{type:q(String,Object,Number),required:!0},width:{type:q(Number),required:!0},height:{type:q(Number),required:!0},direction:{type:q(String),required:!0},display:q(Object,String,Function),visibility:{type:q(Number,Boolean),required:!0},style:q(Object,String,Array),classes:q(Object),borderStyle:q(Object,String,Array),textStyle:q(Object,String,Array),baseStyle:q(Object,String,Array),fillStyle:q(Object,String,Array),mark:q(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Kn,Node:Qn},setup(e){const{progress:t,width:n,height:r,direction:i,display:a}=Te(e),u=N(()=>{let p=t.value instanceof o?t.value.toNumber():Number(t.value);return(1-Math.min(Math.max(p,0),1))*100}),l=N(()=>{const p={width:De(n)+.5+"px",height:De(r)+.5+"px"};switch(s(i)){case W.Up:p.clipPath=`inset(${u.value}% 0% 0% 0%)`,p.width=De(n)+1+"px";break;case W.Down:p.clipPath=`inset(0% 0% ${u.value}% 0%)`,p.width=De(n)+1+"px";break;case W.Right:p.clipPath=`inset(0% ${u.value}% 0% 0%)`;break;case W.Left:p.clipPath=`inset(0% 0% 0% ${u.value} + '%)`;break;case W.Default:p.clipPath="inset(0% 50% 0% 0%)";break}return p}),c=Tn(a);return{normalizedProgress:u,barStyle:l,component:c,unref:s,Visibility:Me,isVisible:He,isHidden:yn}}});function rp(e,t,n,r,i,a){var c,p,v,g,b,h,y;const u=_t("MarkNode"),l=_t("Node");return e.isVisible(e.visibility)?(M(),T("div",{key:0,style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px",visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:{}]),class:Ne({bar:!0,...e.unref(e.classes)})},[k("div",{class:"overlayTextContainer border",style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px"},(p=e.unref(e.borderStyle))!=null?p:{}])},[e.component?(M(),T("span",{key:0,class:"overlayText",style:Be(e.unref(e.textStyle))},[(M(),re(Je(e.component)))],4)):L("",!0)],4),k("div",{class:"border",style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px"},(v=e.unref(e.style))!=null?v:{},(g=e.unref(e.baseStyle))!=null?g:{},(b=e.unref(e.borderStyle))!=null?b:{}])},[k("div",{class:"fill",style:Be([e.barStyle,(h=e.unref(e.style))!=null?h:{},(y=e.unref(e.fillStyle))!=null?y:{}])},null,4)],4),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],6)):L("",!0)}var ip=ve(np,[["render",rp],["__scopeId","data-v-6bd06b56"]]);const ap=Symbol("Bar");function sp(e,...t){const n=t.reduce((r,i)=>{var a;return Object.assign(r,(a=i.getPersistentData)==null?void 0:a.call(i))},{});return Qe(r=>{var u,l;const i=e.call(r,r);i.id=Zt("bar-"),i.type=ap,i[dt]=ip;for(const c of t)(u=c.preConstruct)==null||u.call(c,i);Object.assign(i,n),A(i,"visibility"),le(i,"visibility",Me.Visible),A(i,"width"),A(i,"height"),A(i,"direction"),A(i,"style"),A(i,"classes"),A(i,"borderStyle"),A(i,"baseStyle"),A(i,"textStyle"),A(i,"fillStyle"),A(i,"progress"),A(i,"display"),A(i,"mark");for(const c of t)(l=c.postConstruct)==null||l.call(c,i);const a=t.reduce((c,p)=>{var v;return Object.assign(c,(v=p.getGatheredProps)==null?void 0:v.call(p,i))},{});return i[lt]=function(){const{progress:c,width:p,height:v,direction:g,display:b,visibility:h,style:y,classes:C,borderStyle:D,textStyle:R,baseStyle:I,fillStyle:E,mark:B,id:de}=this;return{progress:c,width:p,height:v,direction:g,display:b,visibility:h,style:s(y),classes:C,borderStyle:D,textStyle:R,baseStyle:I,fillStyle:E,mark:B,id:de,...a}},i})}function op(e,...t){return Qe(n=>{var i,a;const r=e.call(n,n);for(const u of t)(i=u.preConstruct)==null||i.call(u,r);r.formula=r.formula(f.variable(r.baseResource)),r.currentGain==null&&(r.currentGain=N(()=>{let u=o.floor(r.formula.evaluate(r.baseResource.value)).max(0);return s(r.buyMax)===!1&&(u=u.min(1)),u})),r.actualGain==null&&(r.actualGain=r.currentGain),r.currentAt==null&&(r.currentAt=N(()=>r.formula.invert(o.floor(s(r.currentGain))))),r.nextAt==null&&(r.nextAt=N(()=>r.formula.invert(o.floor(s(r.currentGain)).add(1)))),r.convert==null&&(r.convert=function(){var l;const u=s(r.currentGain);r.gainResource.value=o.add(r.gainResource.value,u),r.spend(u),(l=r.onConvert)==null||l.call(r,u)}),r.spend==null&&(r.spend=function(){r.baseResource.value=0}),A(r,"currentGain"),A(r,"actualGain"),A(r,"currentAt"),A(r,"nextAt"),A(r,"buyMax"),le(r,"buyMax",!0);for(const u of t)(a=u.postConstruct)==null||a.call(u,r);return r})}function lp(e){return op(e)}function up(e,t,n=1,r=o.dInf){const i=_e(n),a=_e(r);e.on("preUpdate",u=>{const l=s(i);o.neq(l,0)&&(t.gainResource.value=o.add(t.gainResource.value,o.times(l,u).times(o.ceil(s(t.actualGain)))).min(s(a)).max(t.gainResource.value))})}const cp={postConstruct(e){e.amount===void 0&&console.error(`Decorated feature ${e.id} does not contain the required 'amount' property"`),A(e,"bonusAmount"),e.totalAmount===void 0&&(e.totalAmount=N(()=>{var t;return o.add(s((t=e.amount)!=null?t:0),s(e.bonusAmount))}))}},ta=Symbol("Repeatable");function gi(e,...t){const n=ot(0),r=t.reduce((i,a)=>{var u;return Object.assign(i,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(i=>{var b,h,y;const a=e.call(i,i);a.id=Zt("repeatable-"),a.type=ta,a[dt]=Ji;for(const C of t)(b=C.preConstruct)==null||b.call(C,a);a.amount=n,a.amount[Yt]=(h=a.initialAmount)!=null?h:0,Object.assign(a,r);const u={requirementMet:N(()=>o.sub(s(a.limit),a.amount.value)),requiresPay:!1,visibility:Me.None,canMaximize:!0},l=Qr(a);qt(a.requirements)?(a.requirements.unshift(l),a.requirements.push(u)):a.requirements=[l,a.requirements,u],a.maxed=N(()=>o.gte(a.amount.value,s(a.limit))),A(a,"classes");const c=a.classes;a.classes=N(()=>{const C=s(c)||{};return a.maxed.value&&(C.bought=!0),C}),a.amountToIncrease=N(()=>o.clampMin(Qi(a.requirements),1)),a.canClick=N(()=>Nr(a.requirements));const p=a.onClick;a.onClick=function(C){var I;const D=a;if(!s(D.canClick))return;const R=(I=s(a.amountToIncrease))!=null?I:1;ea(a.requirements,R),D.amount.value=o.add(D.amount.value,R),p==null||p(C)},A(a,"display");const v=a.display;a.display=z(()=>{var D,R,I;const C=s(v);if(Tt(C)){const E=fe(C);return d(E,null,null)}if(C!=null){const E=a,B=fe((D=C.title)!=null?D:"","h3"),de=fe((R=C.description)!=null?R:""),ue=fe((I=C.effectDisplay)!=null?I:"");return d("span",null,[C.title==null?null:d("div",null,[d(B,null,null)]),C.description==null?null:d(de,null,null),C.showAmount===!1?null:d("div",null,[d("br",null,null),d(ne,null,[_("Amount: "),at(E.amount.value)]),o.isFinite(s(E.limit))?d(ne,null,[_(" / "),at(s(E.limit))]):void 0]),C.effectDisplay==null?null:d("div",null,[d("br",null,null),_("Currently: "),d(ue,null,null)]),E.maxed.value?null:d("div",null,[d("br",null,null),Cr(E.requirements,s(a.amountToIncrease))])])}return""}),A(a,"visibility"),le(a,"visibility",Me.Visible),A(a,"limit"),le(a,"limit",o.dInf),A(a,"style"),A(a,"mark"),A(a,"small");for(const C of t)(y=C.postConstruct)==null||y.call(C,a);const g=t.reduce((C,D)=>{var R;return Object.assign(C,(R=D.getGatheredProps)==null?void 0:R.call(D,a))},{});return a[lt]=function(){const{display:C,visibility:D,style:R,classes:I,onClick:E,canClick:B,small:de,mark:ue,id:ae}=this;return{display:C,visibility:D,style:s(R),classes:I,onClick:E,canClick:B,small:de,mark:ue,id:ae,...g}},a})}const dp=Symbol("Reset");function pp(e){return Qe(t=>{const n=e.call(t,t);return n.id=Zt("reset-"),n.type=dp,n.reset=function(){var i;const r=a=>{if(a!=null&&typeof a=="object"&&!(a instanceof o)&&!(a instanceof f)){if(Xn in a&&a[Xn]===!0)return;if(Yt in a){const u=a;u.value=u[Yt]}else!(a instanceof o)&&!qe(a)&&Object.values(a).forEach(u=>r(u))}};s(n.thingsToReset).forEach(r),Ke.emit("reset",n),(i=n.onReset)==null||i.call(n)},A(n,"thingsToReset"),n})}const lr={};Ke.on("removeLayer",e=>{var t;(t=lr[e.id])==null||t.call(lr),lr[e.id]=void 0});function Er(e,t){return A(t,"display"),A(t,"classes"),A(t,"style"),A(t,"direction"),le(t,"direction",W.Up),A(t,"xoffset"),A(t,"yoffset"),t.pinnable&&(t.pinned=ot(!1,!1)),Wt(()=>{t.pinnable&&("pinned"in e?(console.error("Cannot add pinnable tooltip to element that already has a property called 'pinned'"),t.pinnable=!1,Vi(t.pinned)):e.pinned=t.pinned);const n=e[dt];e[dt]=Oe;const r=e[lt].bind(e);e[lt]=function(){const{display:a,classes:u,style:l,direction:c,xoffset:p,yoffset:v,pinned:g}=this;return{element:{[dt]:n,[lt]:r},display:a,classes:u,style:s(l),direction:c,xoffset:p,yoffset:v,pinned:g}}.bind(t)}),t}var fp=X({props:{display:{type:q(String,Object,Function),required:!0},visibility:{type:q(Number,Boolean),required:!0},style:q(String,Object,Array),classes:q(Object),requirements:{type:Object,required:!0},canPurchase:{type:q(Boolean),required:!0},bought:{type:q(Boolean),required:!0},mark:q(Boolean,String),id:{type:String,required:!0},purchase:{type:Function,required:!0}},components:{Node:Qn,MarkNode:Kn},setup(e){const{display:t,requirements:n,bought:r}=Te(e),i=bt("");return Dt(()=>{const a=De(t);if(a==null){i.value="";return}if(Tt(a)){i.value=fe(a);return}const u=fe(a.title||"","h3"),l=fe(a.description,"div"),c=fe(a.effectDisplay||"");i.value=fe(z(()=>d("span",null,[a.title!=null?d("div",null,[d(u,null,null)]):null,d(l,null,null),a.effectDisplay!=null?d("div",null,[_("Currently: "),d(c,null,null)]):null,r.value?null:d(ne,null,[d("br",null,null),Cr(n.value)])])))}),{component:i,unref:s,Visibility:Me,isVisible:He,isHidden:yn}}});const gp=["disabled"];function mp(e,t,n,r,i,a){var c;const u=_t("MarkNode"),l=_t("Node");return e.isVisible(e.visibility)?(M(),T("button",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:{}]),onClick:t[0]||(t[0]=(...p)=>e.purchase&&e.purchase(...p)),class:Ne({feature:!0,upgrade:!0,can:e.unref(e.canPurchase),locked:!e.unref(e.canPurchase),bought:e.unref(e.bought),...e.unref(e.classes)}),disabled:!e.unref(e.canPurchase)},[e.unref(e.component)?(M(),re(Je(e.unref(e.component)),{key:0})):L("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],14,gp)):L("",!0)}var vp=ve(fp,[["render",mp],["__scopeId","data-v-9be6bac0"]]);const ei=Symbol("Upgrade");function mi(e,...t){const n=ot(!1,!1),r=t.reduce((i,a)=>{var u;return Object.assign(i,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(i=>{var c,p;const a=e.call(i,i);a.id=Zt("upgrade-"),a.type=ei,a[dt]=vp;for(const v of t)(c=v.preConstruct)==null||c.call(v,a);a.bought=n,Object.assign(a,r),a.canPurchase=N(()=>!n.value&&Nr(a.requirements)),a.purchase=function(){var g;const v=a;!s(v.canPurchase)||(ea(a.requirements),n.value=!0,(g=v.onPurchase)==null||g.call(v))};const u=Qr(a);qt(a.requirements)?a.requirements.unshift(u):a.requirements=[u,a.requirements],A(a,"visibility"),le(a,"visibility",Me.Visible),A(a,"classes"),A(a,"style"),A(a,"display"),A(a,"mark");for(const v of t)(p=v.postConstruct)==null||p.call(v,a);const l=t.reduce((v,g)=>{var b;return Object.assign(v,(b=g.getGatheredProps)==null?void 0:b.call(g,a))},{});return a[lt]=function(){const{display:v,visibility:g,style:b,classes:h,requirements:y,canPurchase:C,bought:D,mark:R,id:I,purchase:E}=this;return{display:v,visibility:g,style:s(b),classes:h,requirements:y,canPurchase:C,bought:D,mark:R,id:I,purchase:E,...l}},a})}function hp(e,t,n=[]){n=n.length===0?Yn(e,ei):n;const r=Wn(t)?N(t):t;e.on("update",()=>{s(r)&&n.forEach(i=>i.purchase())})}function bp(e,t,n,r){return function(){e>>>=0,t>>>=0,n>>>=0,r>>>=0;let i=e+t|0;return e=t^t>>>9,t=n+(n<<3)|0,n=n<<21|n>>>11,r=r+1|0,i=i+r|0,n=n+i|0,(i>>>0)/4294967296}}const yp={1:["b","c","d","f","g","h","i","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"],2:["a","e","o","u"],3:["br","cr","dr","fr","gr","pr","str","tr","bl","cl","fl","gl","pl","sl","sc","sk","sm","sn","sp","st","sw","ch","sh","th","wh"],4:["ae","ai","ao","au","a","ay","ea","ei","eo","eu","e","ey","ua","ue","ui","uo","u","uy","ia","ie","iu","io","iy","oa","oe","ou","oi","o","oy"],5:["turn","ter","nus","rus","tania","hiri","hines","gawa","nides","carro","rilia","stea","lia","lea","ria","nov","phus","mia","nerth","wei","ruta","tov","zuno","vis","lara","nia","liv","tera","gantu","yama","tune","ter","nus","cury","bos","pra","thea","nope","tis","clite"],6:["una","ion","iea","iri","illes","ides","agua","olla","inda","eshan","oria","ilia","erth","arth","orth","oth","illon","ichi","ov","arvis","ara","ars","yke","yria","onoe","ippe","osie","one","ore","ade","adus","urn","ypso","ora","iuq","orix","apus","ion","eon","eron","ao","omia"]},vi=[[1,2,5],[2,3,6],[3,4,5],[4,3,6],[3,4,2,5],[2,1,3,6],[3,4,2,5],[4,3,1,6],[3,4,1,4,5],[4,1,4,3,6]];function Fr(e){const t=vi[Math.floor(e()*vi.length)];let n="";for(let r=0;rn-n*t*Math.max(Math.min(a,4-a,1),0);return[r(5),r(3),r(1)]}const bi=hr();function na(e,t,n,r){return Yr(e,function(){const i=bp(0,n>>0,n>>32,1);for(let V=0;V<12;V++)i();const a=Fr(i),u=Vn([.64,.75,.55],i),l=Vn([.18,.2,.25],i),c=Sn(0,Fr(i)),p=ot(0),v=At.indexOf(t);let g=i();const b=r.reduce((V,j)=>(V[j.type]=j.data,V),{});"increaseDiff"in b&&(g=g/2+.5),"decreaseDiff"in b&&(g=g/2),"relic"in b&&(g=1);const h=g+v+1,y=m.toolNodes.value.sandRelic!=null?te("sandRelic")?2:1:0,C=ot(y),D=N(()=>("increaseRewards"in b?h+1:h)+C.value);let R="relic"in b?v+2:Math.ceil(i()*(v+2));"increaseLength"in b&&R++;const I=[],E=Ct(()=>I),B=N(()=>E.apply(0)),de=[],ue={};function ae({feature:V,canClick:j,modifier:$e,cost:tt,previewModifier:Cn,showETA:ut,previewCost:gt}){j=_e(j),ut=_e(ut);const St=di(V);de.push({shouldShowPreview:N(()=>s(j)&&St.value),modifier:Ct(()=>{const Pt=I.slice();return Pt.splice(Pt.indexOf($e),1,Cn),Pt}),cost:gt!=null?gt:tt}),I.push($e);const Kt=Ar(c,B,()=>Se(tt)),Ze=Er(V,{display:ut==null?Kt:()=>s(ut)?Kt.value:"",direction:W.Down});return{isHovering:St,eta:Kt,tooltip:Ze}}const Q=[],Ie=G(0);let be=f.variable(Ie).times(0),U=0,ye=!0;const ze=N(()=>o.add(h,i()-.5).pow_base(2).times(10).times(be.evaluate()));for(let V=0;V=R-1?0:4};switch(ur(j,i)){case"upgrades":const $=[];for(let x=0;x<4;x++){const H=ur({add:1,mult:V===0&&x===0?0:1},i),J=ze.value,Ee=Mn(i);let Ge="",Fe,oe;switch(H){case"add":{const pe=o.add(J,10).pow(i()/4+1);Ge=`Gain ${xe(pe)} ${c.displayName}/s`,be=be.add(pe),Fe=nt=>Gt(()=>({addend:pe,description:Ee,enabled:nt==null?we.bought:()=>nt()&&we.bought.value})),oe=Gt(()=>({addend:pe}));break}case"mult":{const pe=i()*5+1;Ge=`Multiply previous ${c.displayName} gain by x${xe(pe)}.`;const nt=U;be=be.add(o.sub(pe,1).times(nt)),Fe=Xe=>Ce(()=>({multiplier:pe,description:Ee,enabled:Xe==null?we.bought:()=>Xe()&&we.bought.value})),oe=Ce(()=>({multiplier:pe}));break}}U=be.evaluate(),Ie.value++;const Ae=ye,we=mi(()=>({requirements:qn(()=>({resource:kn(c),cost:J,requiresPay:()=>m.toolNodes.value.unobtainiumRelic==null})),display:{title:Ee,description:Ge},visibility:Ae}));ae({feature:we,canClick:()=>we.canPurchase.value,modifier:Fe(),cost:J,previewCost:N(()=>m.toolNodes.value.unobtainiumRelic==null?J:0),showETA:()=>!we.bought.value,previewModifier:oe}),I.push(Fe(()=>H==="add"?m.toolNodes.value.stoneRelic!=null:te("stoneRelic"))),$.push(we)}Q.push($);break;case"repeatables":const P=[];for(let x=0;x<3;x++){const H=ur({add:1.5,mult:3},i),J=Ie.value,Ee=ze.value,Ge=Mn(i);let Fe="",oe,Ae,we,pe;const nt=f.variable(N(()=>ce.amount.value)).times(2);switch(H){case"add":{const Ue=o.add(Ee,10).times(i()+.5);Fe=`Gain ${xe(Ue)} ${c.displayName}/s`,pe=nt.add(1).times(Ee),be=be.add(N(()=>o.sub(Ie.value,J).times(2).add(1).pow(2).clampMax(100).times(Ue))),oe=N(()=>xe(o.times(Ue,s(ce.totalAmount)))+"/s"),Ae=Gt(()=>({addend:()=>o.times(Ue,s(ce.totalAmount)),description:Ge,enabled:()=>o.gt(s(ce.totalAmount),0)})),we=Gt(()=>({addend:()=>o.add(s(ce.totalAmount),ce.amountToIncrease.value).times(Ue)}));break}case"mult":{const Ue=i()*.75+1.25;Fe=`Multiply previous ${c.displayName} gain by x${xe(Ue)}.`,pe=nt.add(1).pow_base(Ue).times(Ee);const it=U;be=be.add(N(()=>o.sub(Ie.value,J).times(2).add(1).pow(2).clampMax(100).pow_base(Ue).sub(1).times(it))),oe=N(()=>"x"+xe(o.pow(Ue,s(ce.totalAmount)))),Ae=Ce(()=>({multiplier:()=>o.pow(Ue,s(ce.totalAmount)),description:Ge,enabled:()=>o.gt(s(ce.totalAmount),0)})),we=Ce(()=>({multiplier:()=>o.add(s(ce.totalAmount),ce.amountToIncrease.value).pow_base(Ue)}));break}}U=be.evaluate(),Ie.value++;const Xe=ye,ce=gi(()=>({requirements:qn(()=>({resource:kn(c),cost:pe,maxBulkAmount:()=>m.toolNodes.value.diamondRelic!=null?o.dInf:1,requiresPay:()=>m.toolNodes.value.unobtainiumRelic==null})),display:()=>({title:Ge,description:`${Fe}

Amount: ${at(ce.amount.value)}${o.gt(s(ce.bonusAmount),0)?` [+${at(s(ce.bonusAmount))}]`:""}`,effectDisplay:s(oe),showAmount:!1}),visibility:Xe,limit:100,bonusAmount:()=>o.gt(ce.amount.value,0)?te("dirtRelic")?2:m.toolNodes.value.dirtRelic!=null?1:0:0}),cp);ae({feature:ce,canClick:()=>s(ce.canClick),modifier:Ae,cost:pe,previewModifier:we,previewCost:N(()=>m.toolNodes.value.unobtainiumRelic==null?nn(pe,ce.amountToIncrease.value):0),showETA:()=>!ce.maxed.value}),P.push(ce)}Q.push(P);break;case"conversion":{const x=Sn(0,Fr(i)),O=Vn([.64,.75,.55],i),H=ze.value,J=i()/2+.25,Ee=i()/2+.25,Ge=Ie.value,Fe=U;be=be.add(N(()=>o.sub(Ie.value,Ge).add(1).pow10().times(Fe)));const oe=lp(()=>({baseResource:kn(c),gainResource:x,formula:$r=>$r.div(H).pow(J).times(N(()=>m.toolNodes.value.ironRelic!=null?te("ironRelic")?4:2:1)),spend(){c.value=0}}));U=be.evaluate(),Ie.value+=2;const Ae=ye,we=Mn(i),pe=f.variable(x).pow(Ee).add(1),nt=Ce(()=>({multiplier:()=>pe.evaluate(),description:we,enabled:()=>o.gt(x.value,0)})),Xe=Ce(()=>({multiplier:()=>pe.evaluate(o.add(x.value,oe.actualGain.value))})),ce=xd(()=>({display:{title:we,description:z(()=>d("span",null,[_("Reset "),c.displayName,_(" for")," ",vr(x,o.clampMin(oe.actualGain.value,1))," ",x.displayName,d("br",null,null),d("div",null,[_("Next:")," ",vr(c,o.lt(oe.actualGain.value,1)?oe.currentAt.value:oe.nextAt.value)," ",c.displayName])]))},style:{width:"200px",minHeight:"100px"},canClick:()=>o.gte(oe.actualGain.value,1),prestigeResource:x,onClick:oe.convert,visibility:Ae})),{isHovering:Ue}=ae({feature:ce,canClick:()=>s(ce.canClick),modifier:nt,cost:H,previewCost:c,previewModifier:Xe}),it=N(()=>Ue.value&&ce.canClick.value);Q.push([ce]);const On=mn(f.variable(x),it,oe.actualGain),et=mn(pe,it,oe.actualGain);ue[V*2]=z(()=>d(ne,null,[He(ce.visibility)?d("div",{style:"margin: 10px"},[_("You have")," ",d("h2",{style:{color:O,textShadow:`0px 0px 10px ${O}`}},[On()])," ",x.displayName,_(","),d("br",null,null),_("providing a "),et(),_("x multiplier to previous")," ",c.displayName,_(" gain")]):null,Pr(ce)])),up(this,oe,()=>Ye.value.lengthnn(oe,Ae.value,!0,10)),pe=N(()=>nn(oe,o.add(Ae.value,1),!0,10)),nt=N(()=>o.pow(Fe,Ae.value)),Xe=Ce(()=>({multiplier:nt,description:J,enabled:()=>He(it.visibility)})),ce=U;be=be.add(N(()=>o.sub(Ie.value,H).add(1).times(3).pow(Fe).times(ce))),U=be.evaluate(),Ie.value+=2;const Ue=Vn([.64,.75,.55],i),it=sp(()=>({direction:W.Right,width:300,height:20,progress:()=>o.sub(x.value,we.value).div(o.sub(pe.value,we.value)).toNumber(),visibility:O,xp:x,display:z(()=>d("span",null,[xe(x.value),_("/"),xe(pe.value)])),fillStyle:`background-color: ${Ue}`,textStyle:"text-shadow: 5px 0 10px black"}));this.on("preUpdate",On=>{if(Ye.value.lengthet.state.id===e)&&He(it.visibility)){let et=o.times(Mt.value,On);m.toolNodes.value.goldRelic!=null&&(et=o.times(te("goldRelic")?.5:.25,Ye.value.length).add(1).times(et)),x.value=o.add(et,x.value)}}),I.push(Xe),Q.push([it]),ue[V*2]=z(()=>d(ne,null,[He(it.visibility)?d("div",{style:"margin: 10px"},[_("You have "),d("h3",null,[J]),_(" Lv. "),at(Ae.value),_(","),d("br",null,null),_("providing a "),xe(nt.value),_("x multiplier to previous")," ",c.displayName,_(" gain"),d("br",null,null)]):null,Pr(it)]));break}case"dimensions":{const x=Mn(i),O=Sn(0,x+" energy"),H=Vn([.64,.75,.55],i),J=Ie.value,Ee=U;be=be.add(N(()=>o.sub(Ie.value,J).add(1).pow_base(32).add(1).log2().add(1).times(Ee)));const Ge=N(()=>o.add(O.value,1).log2().add(1)),Fe=Ce(()=>({multiplier:Ge,description:x,enabled:()=>o.gt(O.value,0)}));I.push(Fe);const oe=ye,Ae=[];for(let we=0;we<4;we++){const pe=o.add(h,i()-.5).pow_base(2).times(10).recip(),nt=ze.value,Xe=f.variable(N(()=>et.amount.value)),ce=Xe.pow_base(o.pow10(we+1)).times(nt),Ue=["First","Second","Third","Fourth"][we]+" "+x+" Dimension",it=Sn(0,Ue),On=Xe.sub(1).pow_base(2).times(pe).times(N(()=>o.add(et.amount.value,it.value))),et=gi(()=>({display:{title:Ue,description:z(()=>d("div",null,[d("div",null,[_("Amount:")," ",xe(o.add(it.value,et.amount.value))," ",_("["),at(et.amount.value),_("]")])])),effectDisplay:z(()=>d("span",null,[ia()," ",we===0?O.displayName:["First","Second","Third","Fourth"][we-1]+" "+x+" Dimension",_("/s")])),showAmount:!1},style:{width:"400px"},effect:On,dimensions:it,limit:100,energy:we===0?O:void 0,requirements:qn(()=>({resource:kn(c),cost:ce,maxBulkAmount:()=>te("diamondRelic")!=null?o.dInf:1,requiresPay:()=>!te("unobtainiumRelic")})),visibility:oe}));Ae.push(et);const $r=di(et),ni=N(()=>s(et.canClick)&&$r.value),ra=new f({inputs:[Xe],evaluate(ri){return o.sub(ri,1).pow_base(2).times(pe).times(o.add(ri,it.value))}}),ia=mn(ra,ni);de.push({shouldShowPreview:ni,cost:N(()=>te("unobtainiumRelic")?0:nn(ce,et.amountToIncrease.value))});const aa=Ar(c,B,()=>Se(ce));Er(et,{display:aa,direction:W.Down}),U=be.evaluate(),Ie.value++}this.on("preUpdate",we=>{if(Ye.value.lengthpe.state.id===e)&&He(oe)){let pe=o.times(Mt.value,we);m.toolNodes.value.platinumRelic!=null&&(pe=o.times(te("platinumRelic")?4:2,pe));const nt=Ae[0].effect.evaluate();O.value=o.times(nt,pe).add(O.value);for(let Xe=1;Xe<4;Xe++){const ce=Ae[Xe].effect.evaluate();Ae[Xe-1].dimensions.value=o.times(ce,pe).add(Ae[Xe-1].dimensions.value)}}}),Q.push(Ae),ue[V*2]=z(()=>d(ne,null,[He(oe)?d("div",{style:"margin: 10px"},[_("You have")," ",d("h2",{style:{color:H,textShadow:`0px 0px 10px ${H}`}},[xe(O.value)])," ",O.displayName,_(","),d("br",null,null),_("providing a "),xe(Ge.value),_("x multiplier to previous")," ",c.displayName,_(" gain")]):null,zs(...Ae)]));break}case"prestige":{const x=Mn(i),O=ye,H=i()/10+1.1,J=ze.value;be=be.pow(H);const Ee=vd(()=>({exponent:H,description:x,enabled:oe.bought}));U=be.evaluate(),Ie.value+=20;const Ge=Q.filter((we,pe)=>pe%2===0),Fe=pp(()=>({thingsToReset:Ge,onReset(){c.value=0}})),oe=mi(()=>({display:{title:x,description:`Reset all previous ${a} content to raise all previous ${c.displayName} gain to the ^${xe(H)}`},style:{width:"200px",minHeight:"100px"},onPurchase:()=>{te("unobtainiumRelic")||Fe.reset()},visibility:O,requirements:qn(()=>({resource:kn(c),cost:J,requiresPay:!1}))})),Ae=Ce(()=>({multiplier:0}));ae({feature:oe,canClick:()=>s(oe.canPurchase),modifier:Ee,cost:J,previewCost:N(()=>te("unobtainiumRelic")?0:c.value),previewModifier:Ae,showETA:()=>!s(oe.bought)}),Q.push([oe]);break}}const tt={cache:"increaseCaches"in b?8:.8,generation:"increaseGens"in b?10:1,resourceMulti:"increaseResourceMults"in b?10:1,energyMulti:"increaseEnergyMults"in b?2.5:.25,influences:"increaseInfluences"in b?20:2,relic:0};let Cn=ur(tt,i);V===R-1&&"relic"in b&&(Cn="relic");let ut="",gt,St,Kt,Ze,Pt,cn;switch(Cn){case"cache":Ze=Or(i,r),ut=`Cache: Gain ${xe(o.div(D.value,12))}x your current ${Ze} (no modifiers).`,St=()=>{var x,O,H;return m.grantResource(Ze,o.times((H=(O=(x=m.resourceNodes.value[Ze])==null?void 0:x.state)==null?void 0:O.amount)!=null?H:0,o.div(D.value,12)))};break;case"generation":Ze=Or(i,r);const $=o.pow(D.value,2).div(40).times($t[Ze]);ut=`Gen: Gain ${xe($)} ${Ze}/s while plane is active.`,gt=x=>m.grantResource(Ze,o.times(x,$)),Kt=Ze;break;case"resourceMulti":Pt=Ze=Or(i,r),cn=o.pow(D.value,2).div(10).pow_base(1.5),ut=`Resource Mult: Gain ${xe(cn)}x ${Ze} while plane is active.`;break;case"energyMulti":Pt="energy",cn=o.div(D.value,8).add(1),ut=`Energy Mult: Gain ${xe(cn)}x energy while plane is active.`;break;case"influences":const P=Object.keys(vt)[Math.floor(i()*Object.keys(vt).length)];ut=`Influence: Gain a portal influence (${vt[P].display})`,St=()=>{if(P in m.influenceNodes.value){bi.warning(`You already have a ${vt[P].display} influence, skipping treasure`);return}const x={id:Dn(m.board),position:{...m.board.types.portal.nodes.value.find(O=>O.state.id===e).position},type:"influence",state:{type:P,data:vt[P].initialData}};m.board.placeInAvailableSpace(x),m.board.nodes.value.push(x)};break;case"relic":ut=t==="ultimatum"?"Win the game!":`Relic: Gain the ${t}-tier planar relic (${Rt[t]})`,St=()=>{if(t==="ultimatum"){ti.value=!0;return}if(`${t}Relic`in m.toolNodes.value)bi.warning(`You already have a ${Rt[t]} relic, skipping treasure`);else{const x={id:Dn(m.board),position:{...m.board.types.portal.nodes.value.find(O=>O.state.id===e).position},type:"passive",state:`${t}Relic`};m.board.placeInAvailableSpace(x),m.board.nodes.value.push(x)}}}const ar=ye,Fn=ze.value,dn=ep(()=>({requirements:qn(()=>({resource:kn(c),cost:Fn})),visibility:ar,display:{requirement:`${xe(Fn)} ${c.displayName}`,effectDisplay:ut},style:"width: 100%",classes:{final:V===R-1},update:gt,onComplete:St,link:Kt,effectedResource:Pt,resourceMulti:cn})),xr=Ar(c,B,Fn);Er(dn,{display:()=>dn.earned.value?"":xr.value,direction:W.Down}),Q.push([dn]),ye=N(()=>dn.earned.value)}const pt=Yn(Q,ei),zt=Yn(Q,ta);I.push(Ce(()=>({multiplier:()=>te("silver")?4:2,description:()=>(te("silver")?"Empowered ":"")+Le.silver.name,enabled:()=>m.toolNodes.value.silver!=null})),Ce(()=>({multiplier:()=>o.add(1,(te("diamond")?2:1)*pt.filter(V=>V.bought.value).length/10),description:()=>(te("diamond")?"Empowered ":"")+Le.diamond.name,enabled:()=>m.toolNodes.value.diamond!=null})),Ce(()=>({multiplier:()=>o.div(p.value,6e3).times(te("emerald")?2:1).add(1),description:()=>(te("emerald")?"Empowered ":"")+Le.emerald.name,enabled:()=>m.toolNodes.value.emerald!=null})),Ce(()=>({multiplier:()=>o.div(zt.reduce((V,j)=>V.add(s(j.totalAmount)),o.dZero),100).times(te("gravelRelic")?2:1).add(1).pow(.75),description:()=>(te("gravelRelic")?"Empowered ":"")+Rt.gravel,enabled:()=>m.toolNodes.value.gravelRelic!=null})),Ce(()=>({multiplier:()=>o.add(m.energy.value,1).log10().add(1).pow(te("beryliumRelic")?.5:.25),description:()=>(te("beryliumRelic")?"Empowered ":"")+Rt.berylium,enabled:()=>m.toolNodes.value.beryliumRelic!=null})));const ft=Ct(()=>[Ce(()=>({multiplier:()=>{var V,j,$e;return o.add(($e=(j=(V=m.board.types.booster.nodes.value[0])==null?void 0:V.state)==null?void 0:j.level)!=null?$e:0,1)},description:"Booster",enabled:()=>{var V,j,$e;return($e=(j=(V=m.board.types.booster.nodes.value[0])==null?void 0:V.state)==null?void 0:j.portals.includes(e))!=null?$e:!1}})),Ce(()=>({multiplier:()=>o.times(te("coalRelic")?.2:.1,Ye.value.length).add(1),description:()=>(te("coalRelic")?"Empowered ":"")+Rt.coal,enabled:()=>m.toolNodes.value.coalRelic!=null}))]),Mt=N(()=>ft.apply(1)),[tr,Mr]=zn(()=>[{title:`${rt(c.displayName)} Gain`,modifier:E,base:0,unit:"/s"},{title:`${rt(c.displayName)} Time Speed`,modifier:ft,base:1,visible:()=>o.gt(Mt.value,1)}]),Nn=G(!1),nr=z(()=>d(Vt,{modelValue:Nn.value,"onUpdate:modelValue":V=>Nn.value=V},{header:()=>d("h2",null,[_("Modifiers")]),body:()=>st(tr)}));this.on("preUpdate",V=>{if(!m.activePortals.value.some($e=>$e.state.id===e))return;const j=o.times(Mt.value,V);p.value=o.add(p.value,j),Ye.value.length{var tt;(tt=$e.update)==null||tt.call($e,j)})}),hp(this,()=>Ye.value.lengthYe.value.length{const V=de.find(j=>j.shouldShowPreview.value);return V?o.neg(Se(V.cost)):0}),Rn=N(()=>{const V=de.find(j=>j.shouldShowPreview.value);return V&&V.modifier?o.sub(V.modifier.apply(0),B.value):0}),Jt=mn(f.variable(0).add(c),()=>o.neq(An.value,0),An),En=mn(f.variable(0).add(B),()=>o.neq(Rn.value,0),Rn),rr=N(()=>{const V=[];return Ye.value.forEach(j=>{j.link&&V.push(j.link)}),V}),ir=N(()=>{const V={};return Ye.value.forEach(j=>{j.effectedResource!=null&&j.resourceMulti!=null&&(V[j.effectedResource]!=null?V[j.effectedResource]=o.times(V[j.effectedResource],j.resourceMulti):V[j.effectedResource]=j.resourceMulti)}),V}),Ye=N(()=>{const V=[];for(let j=1;jo.lt(Ye.value.length,R)&&Q.some(V=>V.some(j=>"earned"in j&&s(j.earned)||"bought"in j&&s(j.bought)?!1:("canClick"in j&&s(j.canClick)||"canPurchase"in j&&s(j.canPurchase),!0)))),Ir=N(()=>{const V=Q.findIndex(($e,tt)=>tt>0&&tt%2===0&&!Q[tt-1][0].earned.value);let j;return V===-1?j=Q:j=Q.slice(0,V),j.map(($e,tt)=>tt in ue?st(ue[tt]):Pr(...$e))});return{tier:ot(t),seed:ot(n),influences:ot(r),name:a,color:u,resource:c,background:l,style:{background:l,"--background":l},features:Q,resourceTabCollapsed:Mr,links:rr,resourceMultis:ir,earnedTreasures:Ye,showNotif:Sr,timeActive:p,bonusRewardsLevel:C,display:z(()=>d(ne,null,[d(mr,{class:"nav-container",style:"z-index: 5"},{default:()=>[d("span",{class:"nav-segment"},[d("h2",null,[a])]),d("span",{class:"nav-segment"},[d("h3",null,[t,_("-tier")])]),r.length===0?null:d("span",{class:"nav-segment"},[d(Oe,{display:r.map(V=>{const j=vt[V.type].description;return typeof j=="function"?j(V):j}).join("
"),direction:W.Down,style:"width: 300px"},{default:()=>[d("h3",null,[r.length,_(" influences")])]})]),d("span",{class:"nav-segment"},[d("button",{class:"button",style:"display: inline",onClick:()=>Nn.value=!0},[_("modifiers")])])]}),d(mr,{class:"nav-container"},{default:()=>[d("span",{class:"nav-segment"},[d("h3",{style:`color: ${u}; text-shadow: 0px 0px 10px ${u};`},[st(Jt)])," ",c.displayName]),d("span",{class:"nav-segment"},[_("("),d("h3",{style:`color: ${u}; text-shadow: 0px 0px 10px ${u};`},[o.gt(B.value,0)?"+":"",st(En)]),_("/s)")]),o.neq(Mt.value,1)?d("span",{class:"nav-segment"},[_("Speed: "),xe(Mt.value),_("x")]):null]}),d(Hd,{height:"60px"},null),Ir.value,Ye.value.length+1d("div",null,[d("span",null,[a]),d("span",{style:"font-size: large; vertical-align: sub;"},[" ",Ye.value.length,_("/"),R,_(" treasures")])]))}})}function Or(e,t){t=t.filter(l=>l.type==="increaseResources"||l.type==="decreaseResources");const n=Object.keys($t).reduce((l,c)=>{let p=$t[c];return t.filter(v=>v.data===c).forEach(v=>{v.type==="increaseResources"?p*=1e3:p/=1e3}),l+p},0),r=Object.keys($t),i=Math.floor(e()*n);let a=0,u;for(let l=0;ll+c),r=Object.keys(e);let i=0,a=null;const u=t()*n;for(let l=0;le===m.board.selectedNode.value?{text:"Mining"}:Object.keys(m.resourceNodes.value).length===0?{text:"Click me!"}:null,actionDistance:Math.PI/4,actions:[Bt,Lt("mine")],progress:e=>ke(e)?new o(e.state.progress).toNumber():0,progressDisplay:sn.Outline,progressColor:"var(--accent2)",classes:e=>({running:ke(e)}),draggable:!0},kp={shape:je.Diamond,size:50,title:"\u{1F6E0}\uFE0F",label:e=>e===m.board.selectedNode.value?{text:"Broken Forge"}:null,actionDistance:Math.PI/4,actions:[{id:"repair",icon:"build",tooltip:{text:"Repair - 100 energy"},onClick(e){o.gte(m.energy.value,100)&&(e.type="factory",m.energy.value=o.sub(m.energy.value,100),m.helpModals.factory.showModal.value=!0)},confirmationLabel:()=>o.gte(m.energy.value,100)?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"}}],draggable:!0},Mp={shape:je.Diamond,size:50,title:"\u{1F6E0}\uFE0F",label:e=>{var t,n;if(e===m.board.selectedNode.value)return{text:e.state==null?"Forge - Drag a resource to me!":`Forging ${Le[e.state].name}`};if(((t=m.board.draggingNode.value)==null?void 0:t.type)==="resource"){const r=((n=m.board.draggingNode.value)==null?void 0:n.state).type,i=e.state===r?"Disconnect":m.toolNodes.value[r]==null?Le[r].name:"Already crafted",a=e.state===r||m.toolNodes.value[r]==null?"var(--accent2)":"var(--danger)";return{text:i,color:a}}return null},actionDistance:Math.PI/4,actions:[{id:"deselect",icon:"close",tooltip:{text:"Disconnect resource"},onClick(e){e.state=void 0,m.board.selectedAction.value=null,m.board.selectedNode.value=null},visibility:e=>e.state!=null},{id:"craft",icon:"done",tooltip:e=>({text:`Forge ${Le[e.state].name} - ${We(Le[e.state].cost)} energy`}),onClick(e){const t=Le[e.state];if(o.gte(m.energy.value,t.cost)&&m.toolNodes.value[e.state]==null){m.energy.value=o.sub(m.energy.value,t.cost);const n={id:Dn(m.board),position:{...e.position},type:t.type,state:"state"in t?t.state:void 0};if(m.board.placeInAvailableSpace(n),m.board.nodes.value.push(n),e.state==="iron"){const r={id:Dn(m.board),position:{...e.position},type:"trashCan"};m.board.placeInAvailableSpace(r),m.board.nodes.value.push(r)}m.board.selectedAction.value=null,m.board.selectedNode.value=null,e.state=void 0,t.type in m.helpModals&&(m.helpModals[t.type].showModal.value=!0)}},fillColor:e=>o.gte(m.energy.value,Le[e.state].cost)&&m.toolNodes.value[e.state]==null?"var(--accent2)":"var(--danger)",visibility:e=>e.state!=null,confirmationLabel:e=>o.gte(m.energy.value,Le[e.state].cost)?m.toolNodes.value[e.state]==null?{text:"Tap again to confirm"}:{text:"Already crafted",color:"var(--danger)"}:{text:"Cannot afford",color:"var(--danger)"}},Lt("factory")],progress:e=>e.state==null||m.toolNodes.value[e.state]!=null?0:o.div(o.sqrt(m.energy.value),o.sqrt(Le[e.state].cost)).clampMax(1).toNumber(),progressDisplay:sn.Fill,progressColor:e=>e.state!=null&&o.gte(m.energy.value,Le[e.state].cost)?"var(--accent2)":"var(--foreground)",canAccept(e,t){var r;if(t.type!=="resource")return!1;const n=((r=m.board.draggingNode.value)==null?void 0:r.state).type;return m.toolNodes.value[n]==null},onDrop(e,t){const n=t.state.type;e.state===n?e.state=void 0:e.state=n,m.board.selectedNode.value=e},draggable:!0},Sp=["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","XIII","XIV","XV","XVI"],Ip={shape:je.Circle,size:50,title:e=>rt(e.state.type),subtitle:e=>We(e.state.amount),otherSubtitle:e=>Sp[At.indexOf(e.state.type)],progress:e=>wd(e.state.type),onClick(){},progressDisplay:sn.Outline,progressColor:"var(--accent3)",classes:e=>{var t;return{"affected-node":m.dowsing.value!=null&&ke(m.dowsing.value)&&m.dowsing.value.state.resources.includes(e.state.type)||o.neq((t=m.planarMultis.value[e.state.type])!=null?t:1,1)}},draggable:!0},xp={shape:je.Circle,size:50,title:e=>{const t=e.state;return t.includes("Relic")?Rt[t.slice(0,-5)]:Le[t].name},label:e=>e===m.board.selectedNode.value?{text:Rd[e.state].description(te(e.state))}:null,outlineColor:"var(--bought)",classes:e=>({"affected-node":te(e.state)}),draggable:!0},$p={shape:je.Diamond,size:50,title:"\u{1F962}",label:e=>e===m.board.selectedNode.value?{text:e.state.resources.length===0?"Dowsing - Drag a resource to me!":`Dowsing (${e.state.resources.length}/${o.add(e.state.maxConnections,m.computedBonusConnectionsModifier.value)})`}:Yi(e,t=>`Double ${t} odds`),actionDistance:Math.PI/4,actions:[un,_n(e=>e.add(2).pow_base(100),16),Bt,Lt("dowsing")],classes:e=>({running:ke(e)}),canAccept:Zi,onDrop:Xi,draggable:!0},Dp={shape:je.Diamond,size:50,title:"\u26F0\uFE0F",label:e=>e===m.board.selectedNode.value?{text:e.state.resources.length===0?"Quarry - Drag a resource to me!":`Quarrying (${e.state.resources.length}/${o.add(e.state.maxConnections,m.computedBonusConnectionsModifier.value)})`}:Yi(e,t=>`Gather ${yt(o.div(m.dropRates[t].computedModifier.value,100))} ${t}/s`),actionDistance:Math.PI/4,actions:[un,_n(e=>e.add(2).pow_base(1e4),16),Bt,Lt("quarry")],progress:e=>ke(e)?o.eq(m.quarryProgressRequired.value,0)?0:new o(e.state.progress).div(m.quarryProgressRequired.value).toNumber():0,progressDisplay:sn.Outline,progressColor:"var(--accent2)",canAccept:Zi,onDrop:Xi,classes:e=>({running:ke(e)}),draggable:!0},Tp={shape:je.Diamond,size:50,title:"\u{1F50C}",label:e=>e===m.board.selectedNode.value?{text:e.state.tools.length===0?"Empowerer - Drag a tool to me!":`Empowering (${e.state.tools.length}/${o.add(e.state.maxConnections,m.computedBonusConnectionsModifier.value)})`}:hd(e,t=>t.includes("Relic")?`Double ${Rt[t.slice(0,-5)]}'s effect`:`Double ${Le[t].name}'s effect`),actionDistance:Math.PI/4,actions:[un,_n(e=>e.add(3).pow_base(1e3),24),Bt,Lt("empowerer")],canAccept:bd,onDrop:yd,classes:e=>({running:ke(e)}),draggable:!0},Pp={shape:je.Diamond,size:50,title:"\u26E9\uFE0F",label:e=>{if(e===m.board.selectedNode.value)return{text:e.state.tier==null?"Portal Spawner - Drag a resource to me!":`Spawning ${e.state.tier}-tier portal`};const t=m.board.draggingNode.value;if((t==null?void 0:t.type)==="resource"){const n=t.state.type;return{text:e.state.tier===n?"Disconnect":`${rt(n)}-tier Portal`,color:"var(--accent2)"}}else if((t==null?void 0:t.type)==="influence"){const n=t.state.type;if(e.state.influences.includes(n))return{text:"Disconnect",color:"var(--accent2)"};const i=vt[n].cost;let a;return o.lt(i,1e3)?a=We(i):a=Lr(i,0),{text:`Add influence (${a}x cost)`,color:"var(--accent2)"}}else if((t==null?void 0:t.type)==="portal")return{text:`Copy tier/influences from ${ge[t.state.id].name}`};return null},actionDistance:Math.PI/4,actions:[{id:"deselect",icon:"close",tooltip:{text:"Disconnect all"},onClick(e){e.state={...e.state,tier:void 0,influences:[]},m.board.selectedAction.value=null,m.board.selectedNode.value=null},visibility:e=>{const{tier:t,influences:n}=e.state;return t!=null||n.length>0}},{id:"makePortal",icon:"done",tooltip:e=>({text:`Spawn ${e.state.tier}-tier portal - ${We(m.computedPortalCost.value)} energy`}),fillColor:()=>o.gte(m.energy.value,m.computedPortalCost.value)?"var(--accent2)":"var(--danger)",confirmationLabel:()=>o.gte(m.energy.value,m.computedPortalCost.value)?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"},onClick(e){if(o.lt(m.energy.value,m.computedPortalCost.value))return;let t=0;for(;`portal-${t}`in ge;)t++;m.energy.value=o.sub(m.energy.value,m.computedPortalCost.value);const{tier:n,influences:r}=e.state;Zr(na(`portal-${t}`,n,Math.floor(Math.random()*4294967296),r.map(a=>m.influenceNodes.value[a].state)),Z);const i={id:Dn(m.board),position:{...e.position},type:"portal",state:{id:`portal-${t}`,powered:!1}};m.board.placeInAvailableSpace(i),m.board.nodes.value.push(i),m.board.selectedAction.value=null,m.board.selectedNode.value=null,e.state={tier:void 0,influences:[]}},visibility:e=>e.state.tier!=null},Lt("portalGenerator")],canAccept(e,t){return t.type==="resource"||t.type==="influence"||t.type==="portal"},onDrop(e,t){if(t.type==="resource"){const n=t.state.type,r=e.state.tier;e.state={...e.state,tier:n===r?void 0:n}}else if(t.type==="influence"){const n=t.state.type,r=e.state.influences;r.includes(n)?e.state={...e.state,influences:r.filter(i=>i!==n)}:e.state={...e.state,influences:[...r,n]}}else if(t.type==="portal"){const n=ge[t.state.id];e.state={...e.state,tier:n.tier.value,influences:n.influences.value.map(r=>r.type)}}m.board.selectedNode.value=e},progress:e=>e.state.tier==null?0:o.div(o.sqrt(m.energy.value),o.sqrt(m.computedPortalCost.value)).clampMax(1).toNumber(),progressDisplay:sn.Fill,progressColor:e=>e.state.tier!=null&&o.gte(m.energy.value,m.computedPortalCost.value)?"var(--accent2)":"var(--foreground)",draggable:!0},Ap={shape:je.Diamond,size:50,title:"\u{1F300}",label:e=>e===m.board.selectedNode.value?{text:`Portal to ${ge[e.state.id].name}`,color:ge[e.state.id].color}:null,actionDistance:Math.PI/4,actions:[Bt],classes:e=>({running:ke(e),showNotif:ge[e.state.id].showNotif.value,"affected-node":m.booster.value!=null&&ke(m.booster.value)&&m.booster.value.state.portals.includes(e.state.id)}),outlineColor:e=>ge[e.state.id].background,draggable:!0},Rp={shape:e=>e.state.type==="increaseResources"||e.state.type==="decreaseResources"?je.Diamond:je.Circle,size:50,title:e=>vt[e.state.type].display,otherSubtitle:e=>{const t=vt[e.state.type].cost;return o.lt(t,1e3)?`${We(t)}x cost`:`${Lr(t,0)}x cost`},label:e=>{if(e===m.board.selectedNode.value){const n=e.state,r=vt[n.type].description;return{text:typeof r=="function"?r(n):r}}const t=m.board.draggingNode.value;if((t==null?void 0:t.type)==="resource"){const n=t.state.type,{type:r,data:i}=e.state;let a;if(Array.isArray(i)&&i.includes(n))a="Disconnect";else if(r==="increaseResources")a=`Increase ${rt(n)} odds`;else if(r==="decreaseResources")a=`Decrease ${rt(n)} odds`;else return null;return{text:a,color:"var(--accent2)"}}return null},actionDistance:Math.PI/4,actions:[un],canAccept:(e,t)=>t.type!=="resource"?!1:Array.isArray(e.state.data),onDrop:(e,t)=>{if(t.type!=="resource")return;const n=t.state.type,r=e.state.data;r!=null&&(r.includes(n)?e.state={...e.state,data:r.filter(i=>i!==n)}:e.state={...e.state,data:[...r,n]},m.board.selectedNode.value=e)},outlineColor:"var(--danger)",draggable:!0},Ep={shape:je.Diamond,size:50,title:"\u231B",label:e=>e===m.board.selectedNode.value?{text:e.state.portals.length===0?"Booster - Drag a portal to me!":`Boosting by ${We(o.add(1,e.state.level))}x (${e.state.portals.length}/${o.add(e.state.maxConnections,m.computedBonusConnectionsModifier.value)})`}:yr(e,t=>`Boost ${ge[t].name}'s speed`),actionDistance:Math.PI/4,actions:[un,_n(e=>e.add(6).pow_base(1e3)),{id:"increaseBoost",icon:"arrow_upward",tooltip(e){return{text:`Increase boost - ${We(or.evaluate(e.state.level))} energy`}},fillColor(e){return o.gte(m.energy.value,or.evaluate(e.state.level))?"var(--bought)":"var(--locked)"},confirmationLabel(e){return o.gte(m.energy.value,or.evaluate(e.state.level))?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"}},onClick(e){const t=or.evaluate(e.state.level);o.gte(m.energy.value,t)&&(m.energy.value=o.sub(m.energy.value,t),e.state={...e.state,level:o.add(e.state.level,1)},m.board.selectedAction.value=null)}},Bt,Lt("booster")],canAccept:wr,onDrop:_r,classes:e=>({running:ke(e)}),draggable:!0},Fp={shape:je.Diamond,size:50,title:"\u{1F916}",label:e=>e===m.board.selectedNode.value?{text:e.state.portals.length===0?"Upgrader - Drag a portal to me!":`Auto-Upgrading (${e.state.portals.length}/${o.add(e.state.maxConnections,m.computedBonusConnectionsModifier.value)})`}:yr(e,t=>`Auto-buy ${ge[t].name}'s upgrades and prestiges`),actionDistance:Math.PI/4,actions:[un,_n(e=>e.add(4).pow_base(1e6)),Bt,Lt("upgrader")],canAccept:wr,onDrop:_r,classes:e=>({running:ke(e)}),draggable:!0},Op={shape:je.Diamond,size:50,title:"\u{1F9BE}",label:e=>e===m.board.selectedNode.value?{text:e.state.portals.length===0?"Automator - Drag a portal to me!":`Automatating (${e.state.portals.length}/${o.add(e.state.maxConnections,m.computedBonusConnectionsModifier.value)})`}:yr(e,t=>`Auto-buy ${ge[t].name}'s repeatables and dimensions`),actionDistance:Math.PI/4,actions:[un,_n(e=>e.add(4).pow_base(1e6)),Bt,Lt("automator")],canAccept:wr,onDrop:_r,classes:e=>({running:ke(e)}),draggable:!0},qp={shape:je.Diamond,size:50,title:"\u{1F4B1}",label:e=>e===m.board.selectedNode.value?{text:e.state.portals.length===0?"Investments - Drag a portal to me!":`Investing (${e.state.portals.length}/${o.add(e.state.maxConnections,m.computedBonusConnectionsModifier.value)})`}:yr(e,t=>`Passively generate ${ge[t].name}'s conversions`),actionDistance:Math.PI/4,actions:[un,_n(e=>e.add(3).pow_base(1e8)),Bt,Lt("investments")],canAccept:wr,onDrop:_r,classes:e=>({running:ke(e)}),draggable:!0},Vp={shape:je.Diamond,size:50,title:"\u{1F5D1}\uFE0F",label:e=>{var t;if(e===m.board.selectedNode.value)return{text:"Trash Can - Drag a portal to me!"};if(((t=m.board.draggingNode.value)==null?void 0:t.type)==="portal"){const n=m.board.draggingNode.value.state.id;return{text:`Delete ${ge[n].name}!`,color:"var(--danger)"}}return null},canAccept:(e,t)=>t.type==="portal",onDrop:(e,t)=>{const n=t.state.id;Xr(ge[n]),delete Z.layers[n],m.board.state.value.nodes=m.board.state.value.nodes.filter(r=>r!==t),m.booster.value&&(m.booster.value.state={...m.booster.value.state,portals:m.booster.value.state.portals.filter(r=>r!==n)}),m.upgrader.value&&(m.upgrader.value.state={...m.upgrader.value.state,portals:m.upgrader.value.state.portals.filter(r=>r!==n)}),m.automator.value&&(m.automator.value.state={...m.automator.value.state,portals:m.automator.value.state.portals.filter(r=>r!==n)}),m.investments.value&&(m.investments.value.state={...m.investments.value.state,portals:m.investments.value.state.portals.filter(r=>r!==n)}),Z.tabs=Z.tabs.filter(r=>r!==n)},draggable:!0},yi=hr(),Bp={mine:Cp,brokenFactory:kp,factory:Mp,resource:Ip,passive:xp,dowsing:$p,quarry:Dp,empowerer:Tp,portalGenerator:Pp,portal:Ap,influence:Rp,booster:Ep,upgrader:Fp,automator:Op,investments:qp,trashCan:Vp},m=Yr("main",function(){const e=Sn(0,"energy"),t=N(()=>h.types.resource.nodes.value.reduce(($,P)=>($[P.state.type]=P,$),{})),n=N(()=>({...h.types.passive.nodes.value.reduce(($,P)=>($[P.state]=P,$),{}),sand:h.types.dowsing.nodes.value[0],wood:h.types.quarry.nodes.value[0],coal:h.types.empowerer.nodes.value[0],iron:h.types.portalGenerator.nodes.value[0],gold:h.types.booster.nodes.value[0],platinum:h.types.upgrader.nodes.value[0],berylium:h.types.automator.nodes.value[0],ultimatum:h.types.investments.nodes.value[0]})),r=N(()=>Object.keys(Rt).filter($=>`${$}Relic`in n.value).length),i=N(()=>({...h.types.influence.nodes.value.reduce(($,P)=>($[P.state.type]=P,$),{})})),a=N(()=>({...h.types.portal.nodes.value.reduce(($,P)=>($[P.state.id]=P,$),{})})),u=N(()=>At.reduce(($,P)=>{var O,H,J;const x=(J=(H=(O=t.value[P])==null?void 0:O.state)==null?void 0:H.amount)!=null?J:0;return $[P]=o.floor(qr.invert(x)),$},{})),l=an({}),c=an({});Wt(()=>{At.forEach($=>{ht(()=>u.value[$],(P,x)=>{const O=o.sub(P,x);o.gt(O,1)&&ie.active===Z.id&&yi.info(d("div",null,[d("h3",null,[o.eq(P,1)?`${rt($)} discovered`:`${rt($)} is now Level ${at(P)}`,_("!")]),o.gt(O,1)?d("div",null,[_("Gained "),at(O),_(" levels")]):null]))})})});const p=N(()=>Q.filter($=>{var P,x;return(x=(P=$.value)==null?void 0:P.state)==null?void 0:x.powered}).length+h.types.portal.nodes.value.filter($=>$.state.powered).length),v=N(()=>{let $=p.value;return n.value.copperRelic!=null&&($--,te("copperRelic")&&$--),$}),g=N(()=>{const $=v.value;return o.lt($,0)?0:o.eq($,0)?10:o.add($,1).pow_base(100).div(10).times(.99)}),b=N(()=>{if(R.value==null)return 0;let P=R.value.state.resources.reduce((x,O)=>o.div(100,Jt[O].computedModifier.value).add(x),o.dZero);return n.value.silverRelic!=null&&(P=o.div(P,o.add(p.value,1)),te("silverRelic")&&(P=o.div(P,o.add(p.value,1)))),P}),h=od($=>({startNodes:()=>[{position:{x:0,y:0},type:"mine",state:{progress:0,powered:!1}},{position:{x:0,y:-200},type:"brokenFactory"}],types:Bp,style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},links(){const P=[];if(P.push(...Object.keys(l).filter(fi(y.value)).map(x=>({startNode:y.value,endNode:t.value[x],stroke:"var(--accent3)",strokeWidth:5}))),C.value!=null&&C.value.state!=null&&P.push({startNode:C.value,endNode:t.value[C.value.state],stroke:"var(--foreground)",strokeWidth:4}),D.value!=null&&D.value.state.resources.forEach(x=>{P.push({startNode:D.value,endNode:t.value[x],stroke:ke(D.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),R.value!=null&&R.value.state.resources.forEach(x=>{P.push({startNode:R.value,endNode:t.value[x],stroke:x in c?"var(--accent3)":"var(--foreground)",strokeWidth:4})}),I.value!=null&&I.value.state.tools.forEach(x=>{P.push({startNode:I.value,endNode:n.value[x],stroke:ke(I.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),E.value!=null){const x=E.value.state;x.tier!=null&&P.push({startNode:E.value,endNode:t.value[x.tier],stroke:"var(--foreground)",strokeWidth:4}),x.influences.forEach(O=>{P.push({startNode:E.value,endNode:i.value[O],stroke:"var(--foreground)",strokeWidth:4})}),$.types.portal.nodes.value.forEach(O=>{const H=ge[O.state.id];return At.filter(fi(O)).forEach(J=>{let Ee;if(H.links.value.includes(J))Ee="var(--accent3)";else if(J in H.resourceMultis.value)Ee="var(--accent1)";else return;P.push({startNode:O,endNode:t.value[J],stroke:ke(O)?Ee:"var(--foreground)",strokeWidth:4})}),P})}return B.value!=null&&B.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{P.push({startNode:B.value,endNode:a.value[x],stroke:ke(B.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),de.value!=null&&de.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{P.push({startNode:de.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),ue.value!=null&&ue.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{P.push({startNode:ue.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),ae.value!=null&&ae.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{P.push({startNode:ae.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),Object.values(i.value).forEach(x=>{const O=x.state;(O.type==="increaseResources"||O.type==="decreaseResources")&&O.data.forEach(H=>{P.push({startNode:x,endNode:t.value[H],stroke:"var(--foreground)",strokeWidth:4})})}),P}})),y=N(()=>h.types.mine.nodes.value[0]),C=N(()=>h.types.factory.nodes.value[0]),D=N(()=>n.value.sand),R=N(()=>n.value.wood),I=N(()=>n.value.coal),E=N(()=>n.value.iron),B=N(()=>n.value.gold),de=N(()=>n.value.platinum),ue=N(()=>n.value.berylium),ae=N(()=>n.value.ultimatum),Q=[y,D,R,I,B,de,ue,ae];function Ie($,P){let x=t.value[$];if(P=o.times(P,En[$].computedModifier.value),x==null)x={id:Dn(h),position:{...y.value.position},type:"resource",state:{type:$,amount:P}},h.placeInAvailableSpace(x),h.nodes.value.push(x);else{const O=x.state;x.state={...O,amount:o.add(O.amount,P)}}}const be=N(()=>Object.keys($t).reduce(($,P)=>$+new o(Jt[P].computedModifier.value).toNumber(),0)),U=N(()=>{const $={};return h.types.portal.nodes.value.forEach(P=>{if(!ke(P))return;const O=ge[P.state.id].resourceMultis.value;Object.keys(O).forEach(H=>{$[H]!=null?$[H]=o.times($[H],O[H]):$[H]=O[H]})}),$}),ye=Ct(()=>At.map($=>Gt(()=>({description:()=>rt($),addend:()=>u.value[$],enabled:()=>o.gt(u.value[$],0)})))),ze=N(()=>ye.apply(0)),pt=Ct(()=>[Gt(()=>({addend:ze,description:"Resource Levels"})),Ce(()=>({multiplier:()=>o.pow(Rn.value,ze.value),description:()=>`${Ut(Rn.value,3)}x per Resource Level`})),Ce(()=>({multiplier:()=>te("stone")?4:2,description:()=>(te("stone")?"Empowered ":"")+Le.stone.name,enabled:()=>n.value.stone!=null})),Ce(()=>({multiplier:()=>{var $;return($=U.value.energy)!=null?$:1},description:"Planar Treasures",enabled:()=>{var $;return o.neq(($=U.value.energy)!=null?$:1,1)}})),Gt(()=>({addend:()=>o.pow(100,v.value).div(10).neg(),description:"Powered Machines (100^n/10 energy/s)",enabled:()=>o.gt(v.value,0)}))]),zt=N(()=>pt.apply(0)),ft=Ct(()=>[Gt(()=>({addend:()=>te("unobtainium")?2:1,description:()=>(te("unobtainium")?"Empowered ":"")+Le.unobtainium.name,enabled:()=>n.value.unobtainium!=null}))]),Mt=N(()=>ft.apply(0)),tr=Ct(()=>[Ce(()=>({multiplier:()=>te("dirt")?4:2,description:()=>(te("dirt")?"Empowered ":"")+Le.dirt.name,enabled:()=>n.value.dirt!=null})),Ce(()=>({multiplier:()=>o.pow(r.value,te("woodRelic")?2:1),description:()=>(te("woodRelic")?"Empowered ":"")+Rt.wood,enabled:()=>n.value.woodRelic!=null}))]),Mr=N(()=>tr.apply(1)),Nn=Ct(()=>[Ce(()=>({multiplier:()=>te("gravel")?4:2,description:()=>(te("gravel")?"Empowered ":"")+Le.gravel.name,enabled:()=>n.value.gravel!=null}))]),nr=N(()=>Nn.apply(1)),An=Ct(()=>[Gt(()=>({addend:()=>te("copper")?.004:.002,description:()=>(te("copper")?"Empowered ":"")+Le.copper.name,enabled:()=>n.value.copper!=null}))]),Rn=N(()=>An.apply(1.01)),Jt=Object.keys($t).reduce(($,P)=>{const x=Ct(()=>[Ce(()=>({multiplier:2,description:"Dowsing",enabled:()=>D.value!=null&&ke(D.value)&&D.value.state.resources.includes(P)}))]),O=N(()=>x.apply($t[P])),H={title:`${rt(P)} Drop Rate`,modifier:x,base:$t[P]};return $[P]={modifier:x,computedModifier:O,section:H},$},{}),En=Object.keys($t).reduce(($,P)=>{const x=Ct(()=>[Ce(()=>({multiplier:()=>{var J;return(J=U.value[P])!=null?J:1},description:"Planar Treasures",enabled:()=>{var J;return o.neq((J=U.value[P])!=null?J:1,1)}}))]),O=N(()=>x.apply(1)),H={title:`${rt(P)} Gain`,modifier:x};return $[P]={modifier:x,computedModifier:O,section:H},$},{}),rr=N(()=>{var P,x,O;const $=At.indexOf((O=(x=(P=E.value)==null?void 0:P.state)==null?void 0:x.tier)!=null?O:"dirt");return o.add($,1).times($).div(2).add(9).pow10()}),ir=Ct(()=>[...Object.keys(vt).map($=>Ce(()=>({multiplier:vt[$].cost,description:vt[$].display,enabled:()=>{var P,x,O;return(O=(x=(P=E.value)==null?void 0:P.state)==null?void 0:x.influences.includes($))!=null?O:!1},smallerIsBetter:!0}))),Ce(()=>({multiplier:()=>te("emeraldRelic")?.05:.1,description:()=>(te("emeraldRelic")?"Empowered ":"")+Rt.emerald,enabled:()=>n.value.emeraldRelic!=null,smallerIsBetter:!0}))]),Ye=N(()=>ir.apply(rr.value)),[Sr,Ir]=zn(()=>[{title:"Resource Levels",modifier:ye,base:0},{title:"Energy Gain",modifier:pt,base:0,unit:"/s"},{title:"Portal Cost",modifier:ir,base:rr,unit:" energy",baseText:()=>{var $,P,x;return`${rt((x=(P=($=E.value)==null?void 0:$.state)==null?void 0:P.tier)!=null?x:"dirt")}-tier Base Cost`},visible:()=>E.value!=null,smallerIsBetter:!0},{title:"Bonus Connections",modifier:ft,base:0,visible:()=>o.gt(Mt.value,0)}]),[V,j]=zn(()=>[{title:"Mining Speed",modifier:tr,base:1,unit:"/s",visible:()=>n.value.dirt!=null},{title:"Ore Dropped",modifier:Nn,base:1,visible:()=>n.value.gravel!=null},{title:"Material Level Effect",modifier:An,base:1.01,visible:()=>n.value.copper!=null}]),[$e,tt]=zn(()=>Object.values(Jt).map($=>$.section)),[Cn,ut]=zn(()=>Object.values(En).map($=>$.section)),gt=Hi({general:()=>({display:"General",glowColor(){return gt.activeTab.value===this.tab?"white":""},tab:Sr,energyTabCollapsed:Ir}),mining:()=>({display:"Mine",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>Object.keys(n.value).length>0,tab:V,miningTabCollapsed:j}),resources:()=>({display:"Ore Rates",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>D.value!=null,tab:$e,resourcesCollapsed:tt}),resourcesGain:()=>({display:"Ore Gain",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>Object.values(En).some($=>o.neq($.computedModifier.value,1)),tab:Cn,resourceGainCollapsed:ut})}),St=G(!1),Kt=z(()=>d(Vt,{modelValue:St.value,"onUpdate:modelValue":$=>St.value=$},{header:()=>d("h2",null,[_("Modifiers")]),body:()=>st(gt)})),Ze={mine:Od(),factory:qd(),dowsing:Vd(),quarry:Bd(),empowerer:Ld(),portalGenerator:jd(),booster:zd(),upgrader:Gd(),automator:Ud(),investments:Wd()};Ze.mine.showModal[Yt]=!0,Ze.mine.showModal.value=!0,this.on("preUpdate",$=>{if(Object.keys(l).forEach(P=>{l[P]-=$,l[P]<=0&&delete l[P]}),Object.keys(c).forEach(P=>{c[P]-=$,c[P]<=0&&delete c[P]}),ke(y.value)){const P=o.add(y.value.state.progress,o.times(Mr.value,$)),x=P.floor();y.value.state={...y.value.state,progress:o.sub(P,x)};const O=x.div(be.value).floor();O.gt(0)&&At.forEach(J=>{Ie(J,o.times(new o(Jt[J].computedModifier.value).toNumber(),O).times(nr.value)),l[J]=.3});const H=o.sub(x,O).toNumber();for(let J=0;J0){let O=o.add(P,$);const H=o.div(P,b.value).floor();O=o.sub(O,o.times(H,b.value)),R.value.state={...R.value.state,progress:O},o.gt(H,0)&&x.forEach(J=>{Ie(J,H),c[J]=.3})}}e.value=o.add(e.value,o.times(zt.value,$)),o.lt(e.value,0)&&(e.value=0,Q.forEach(P=>{var x;((x=P.value)==null?void 0:x.state).powered=!1}),Object.values(a.value).forEach(P=>{P.state.powered=!1}),y.value.state={...y.value.state,powered:!1},yi.warning(d("div",null,[d("h3",null,[_("Ran out of energy!")]),d("div",null,[_("All machines have been turned off.")])])))});const Pt=N(()=>{var $,P;return h.selectedAction.value===h.types.brokenFactory.actions[0]?-100:h.selectedAction.value===h.types.factory.actions[1]?o.neg(Le[h.selectedNode.value.state].cost):(($=h.selectedAction.value)==null?void 0:$.id)==="moreConnections"?o.neg(h.selectedAction.value.formula.evaluate(((P=h.selectedNode.value)==null?void 0:P.state).maxConnections)):0}),cn=mn(f.variable(0).add(e),()=>o.neq(Pt.value,0),Pt),ar=N(()=>{var $;return h.selectedAction.value===Bt?(($=h.selectedNode.value)==null?void 0:$.state).powered?o.eq(p.value,1)?10:o.pow(100,p.value).div(10).times(.99):o.neg(g.value):0}),Fn=mn(f.variable(0).add(zt),()=>o.neq(ar.value,0),ar),dn=N(()=>h.types.portal.nodes.value.filter($=>ke($))),xr=N(()=>dn.value.sort(($,P)=>{var H,J;const x=(H=ge[$.state.id])!=null&&H.minimized.value?1:0,O=(J=ge[P.state.id])!=null&&J.minimized.value?1:0;return x-O}).map($=>$.state.id));return ht(xr,$=>{Wt(()=>{Z.tabs=["main",...$]})}),ht(Mt,($,P)=>{o.lt($,P)&&(gn($,D,"resources"),gn($,R,"resources"),gn($,I,"tools"),gn($,B,"portals"),gn($,de,"portals"),gn($,ue,"portals"),gn($,ae,"portals"))}),{name:"World",board:h,energy:e,modifierTabs:gt,resourceNodes:t,toolNodes:n,influenceNodes:i,grantResource:Ie,activePortals:dn,nextPowerCost:g,computedBonusConnectionsModifier:Mt,quarryProgressRequired:b,dropRates:Jt,dowsing:D,empowerer:I,booster:B,upgrader:de,automator:ue,investments:ae,resourceLevels:u,planarMultis:U,computedPortalCost:Ye,helpModals:Ze,display:z(()=>d(ne,null,[d(mr,{class:"nav-container"},{default:()=>[d("span",{class:"nav-segment"},[d("h2",{style:"color: white; text-shadow: 0px 0px 10px white;"},[st(cn)])," ",_("energy")]),d("span",{class:"nav-segment"},[_("("),d("h3",{style:"color: white; text-shadow: 0px 0px 10px white;"},[o.gt(zt.value,0)?"+":"",st(Fn)]),_("/s)")]),o.gt(p.value,0)?d("span",{class:"nav-segment"},[d("h3",{style:"color: var(--accent1); text-shadow: 0px 0px 10px var(--accent1);"},[at(p.value)])," ",o.eq(p.value,1)?"machine":"machines"," ",_("powered")]):null,d("span",{class:"nav-segment"},[d("button",{class:"button",style:"display: inline",onClick:()=>St.value=!0},[_("modifiers")])]),Z.devSpeed===0?d("span",{class:"nav-segment"},[_("Game Paused")]):Z.devSpeed!=null&&Z.devSpeed!==1?d("span",{class:"nav-segment"},[_("Dev Speed: "),xe(Z.devSpeed),_("x")]):null]}),st(h),st(Kt),Object.values(Ze).map(({modal:$})=>$())]))}});Ke.on("loadSettings",e=>{le(e,"lineVisibility",!0)});Ai(z(()=>d(It,{title:z(()=>d("span",{class:"option-title"},[_("Always show lines to resource nodes"),d("desc",null,[_("Otherwise, will only be visible when either end of the line is selected.")])])),modelValue:ie.lineVisibility,"onUpdate:modelValue":e=>ie.lineVisibility=e},null)));const Lp=e=>{var n,r,i,a,u;const t=[m];return(u=(a=(i=(r=(n=e.layers)==null?void 0:n.main)==null?void 0:r.board)==null?void 0:i.state)==null?void 0:a.nodes)==null||u.filter(l=>(l==null?void 0:l.type)==="portal").map(l=>{var c,p;return(p=(c=l==null?void 0:l.state)==null?void 0:c.id)!=null?p:""}).forEach(l=>{var p,v,g,b;const c=(p=e.layers)==null?void 0:p[l];t.push(na(l,(v=c.tier)!=null?v:"dirt",(g=c.seed)!=null?g:Math.floor(Math.random()*4294967296),(b=c.influences)!=null?b:[]))}),t},ti=G(!1);function jp(e,t){}var zp=Object.freeze(Object.defineProperty({__proto__:null,main:m,getInitialLayers:Lp,hasWon:ti,fixOldSave:jp},Symbol.toStringTag,{value:"Module"}));const er=e=>(on("data-v-4a50ce42"),e=e(),ln(),e),Gp={class:"game-over-modal-header"},Up=["src","alt"],Wp={class:"game-over-modal-title"},Hp=er(()=>k("h2",null,"Congratulations!",-1)),Yp={key:0},Zp=er(()=>k("br",null,null,-1)),Xp=er(()=>k("div",null," Please check the Discord to discuss the game or to check for new content updates! ",-1)),Jp=er(()=>k("br",null,null,-1)),Kp=["href"],Qp=er(()=>k("span",{class:"material-icons game-over-modal-discord"},"discord",-1)),ef=X({__name:"GameOverScreen",setup(e){const{title:t,logo:n,discordName:r,discordLink:i,versionNumber:a,versionTitle:u}=he,l=N(()=>br(Z.timePlayed)),c=N(()=>ti.value&&!Z.keepGoing),p=Ht(Z,"autosave");function v(){Z.keepGoing=!0}function g(){vn(xn())}return(b,h)=>(M(),re(Vt,{"model-value":s(c)},{header:Y(()=>[k("div",Gp,[s(n)?(M(),T("img",{key:0,class:"game-over-modal-logo",src:s(n),alt:s(t)},null,8,Up)):L("",!0),k("div",Wp,[Hp,k("h4",null,"You've beaten "+ee(s(t))+" v"+ee(s(a))+": "+ee(s(u)),1)])])]),body:Y(({shown:y})=>[y?(M(),T("div",Yp,[k("div",null,"It took you "+ee(s(l))+" to beat the game.",1),Zp,Xp,Jp,k("div",null,[k("a",{href:s(i),class:"game-over-modal-discord-link"},[Qp,_(" "+ee(s(r)),1)],8,Kp)]),d(It,{title:"Autosave",modelValue:s(p),"onUpdate:modelValue":h[0]||(h[0]=C=>qe(p)?p.value=C:null)},null,8,["modelValue"])])):L("",!0)]),footer:Y(()=>[k("div",{class:"game-over-footer"},[k("button",{onClick:v,class:"button"},"Keep Going"),k("button",{onClick:g,class:"button danger"},"Play Again")])]),_:1},8,["model-value"]))}});var tf=ve(ef,[["__scopeId","data-v-4a50ce42"]]);const kr=e=>(on("data-v-2776d67d"),e=e(),ln(),e),nf=kr(()=>k("div",{class:"nan-modal-header"},[k("h2",null,"NaN value detected!")],-1)),rf={key:0},af=kr(()=>k("br",null,null,-1)),sf=["href"],of=kr(()=>k("span",{class:"material-icons nan-modal-discord"},"discord",-1)),lf=kr(()=>k("br",null,null,-1)),uf={class:"nan-footer"},cf=X({__name:"NaNScreen",setup(e){const{discordName:t,discordLink:n}=he,r=G(!0),i=G(!0),a=Ht(Re,"hasNaN"),u=G(null);ht(a,b=>{b?(r.value=Z.autosave,i.value=Z.devSpeed===0):(Z.autosave=r.value,Z.devSpeed=i.value?0:null)});const l=N(()=>{var b;return(b=Re.NaNPath)==null?void 0:b.join(".")}),c=N(()=>Re.NaNPersistent!=null?Re.NaNPersistent.value:null);function p(){Re.NaNPersistent!=null&&(Re.NaNPersistent.value=new o(0),Re.hasNaN=!1)}function v(){Re.NaNPersistent&&(Re.NaNPersistent.value=new o(1),Re.hasNaN=!1)}function g(){Re.NaNPersistent&&(Re.NaNPersistent.value=new o(NaN),Re.hasNaN=!1)}return(b,h)=>(M(),T(ne,null,[d(Vt,Ot({modelValue:s(a),"onUpdate:modelValue":h[4]||(h[4]=y=>qe(a)?a.value=y:null)},b.$attrs),{header:Y(()=>[nf]),body:Y(()=>[k("div",null,[_(' Attempted to assign "'+ee(s(l))+'" to NaN',1),s(c)?(M(),T("span",rf,ee(" ")+"(previously "+ee(s(xe)(s(c)))+")",1)):L("",!0),_(". Auto-saving has been "+ee(r.value?"enabled":"disabled")+". Check the console for more details, and consider sharing it with the developers on discord. ",1)]),af,k("div",null,[k("a",{href:s(n)||"https://discord.gg/yJ4fjnjU54",class:"nan-modal-discord-link"},[of,_(" "+ee(s(t)||"The Paper Pilot Community"),1)],8,sf)]),lf,d(It,{title:"Autosave",modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=y=>r.value=y)},null,8,["modelValue"]),s(he).enablePausing?(M(),re(It,{key:0,title:"Pause game",modelValue:i.value,"onUpdate:modelValue":h[1]||(h[1]=y=>i.value=y)},null,8,["modelValue"])):L("",!0)]),footer:Y(()=>[k("div",uf,[k("button",{onClick:h[2]||(h[2]=y=>{var C;return(C=u.value)==null?void 0:C.open()}),class:"button"},"Open Saves Manager"),k("button",{onClick:p,class:"button"},"Set to 0"),k("button",{onClick:v,class:"button"},"Set to 1"),s(c)&&s(o).neq(s(c),0)&&s(o).neq(s(c),1)?(M(),T("button",{key:0,onClick:h[3]||(h[3]=y=>a.value=!1),class:"button"}," Set to previous ")):L("",!0),k("button",{onClick:g,class:"button danger"},"Ignore")])]),_:1},16,["modelValue"]),d(zi,{ref_key:"savesManager",ref:u},null,512)],64))}});var df=ve(cf,[["__scopeId","data-v-2776d67d"]]);const pf={key:0,class:"tpsDisplay"},ff=X({__name:"TPS",setup(e){const t=N(()=>o.div(Re.lastTenTicks.length,Re.lastTenTicks.reduce((n,r)=>n+r,0)));return(n,r)=>s(t).isNan()?L("",!0):(M(),T("div",pf,"TPS: "+ee(s(at)(s(t))),1))}});var gf=ve(ff,[["__scopeId","data-v-89b89152"]]);var mf=X({__name:"App",setup(e){const t=he.useHeader,n=N(()=>kt[ie.theme].variables),r=Ht(ie,"showTPS"),i=Ht(Re,"errors"),a=N(()=>fe(z(()=>d(ne,null,[qs.map(st)]))));return(u,l)=>s(i).length>0?(M(),T("div",{key:0,class:"error-container",style:Be(s(n))},[d(ki,{errors:s(i)},null,8,["errors"])],4)):(M(),T(ne,{key:1},[k("div",{id:"modal-root",style:Be(s(n))},null,4),k("div",{class:Ne(["app",{useHeader:s(t)}]),style:Be(s(n))},[s(t)?(M(),re(Gi,{key:0})):L("",!0),d(xc),s(s(r))?(M(),re(gf,{key:1})):L("",!0),d(tf),d(df),(M(),re(Je(s(a))))],6)],64))}});var vf=ve(mf,[["__scopeId","data-v-bf4e22ac"]]);function hf(e={}){const{immediate:t=!1,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:a,onRegisterError:u}=e;let l,c,p,v;const g=async(h=!0)=>{await p,h&&(l==null||l.addEventListener("controlling",y=>{y.isUpdate&&window.location.reload()})),await(v==null?void 0:v())};async function b(){if("serviceWorker"in navigator){const{Workbox:h,messageSW:y}=await Un(()=>import("./workbox-window.4a8794bb.js"),[]);v=async()=>{c&&c.waiting&&await y(c.waiting,{type:"SKIP_WAITING"})},l=new h("./sw.js",{scope:"./",type:"classic"}),l.addEventListener("activated",C=>{C.isUpdate||r==null||r()});{const C=()=>{n==null||n()};l.addEventListener("waiting",C),l.addEventListener("externalwaiting",C)}l.register({immediate:t}).then(C=>{c=C,a?a("./sw.js",C):i==null||i(C)}).catch(C=>{u==null||u(C)})}}return p=b(),g}function bf(e={}){const{immediate:t=!0,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:a,onRegisterError:u}=e,l=G(!1),c=G(!1);return{updateServiceWorker:hf({immediate:t,onNeedRefresh(){l.value=!0,n==null||n()},onOfflineReady(){c.value=!0,r==null||r()},onRegistered:i,onRegisteredSW:a,onRegisterError:u}),offlineReady:c,needRefresh:l}}const yf=console.error;console.error=function(...e){yf(...e)};window.onerror=function(e,t,n,r,i){return Re.errors.push(i instanceof Error?i:new Error(JSON.stringify(i))),!0};window.onunhandledrejection=function(e){Re.errors.push(e.reason instanceof Error?e.reason:new Error(JSON.stringify(e.reason)))};document.title=he.title;window.projInfo=he;he.id===""&&console.error("Project ID is empty!","Please select a unique ID for this project in /src/data/projInfo.json");requestAnimationFrame(async()=>{console.log(`%cMade in Profectus%c -Learn more at www.moddingtree.com`,"font-weight: bold; font-size: 24px; color: #A3BE8C; background: #2E3440; padding: 4px 8px; border-radius: 8px;","padding: 4px;"),await As();const{globalBus:e}=await Un(()=>Promise.resolve().then(function(){return Ps}),void 0),{startGameLoop:t}=await Un(()=>import("./gameLoop.12e84b5c.js"),["assets/gameLoop.12e84b5c.js","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"]),n=window.vue=ma(vf);n.config.errorHandler=function(r,i,a){console.error(r,a,i)},e.emit("setupVue",n),n.mount("#app"),Wt(()=>{const r=hr(),{updateServiceWorker:i}=bf({onNeedRefresh(){r.info("New content available, click here to update.",{timeout:!1,closeOnClick:!1,draggable:!1,icon:{iconClass:"material-icons",iconChildren:"refresh",iconTag:"i"},rtl:!1,onClick(){i()}})},onOfflineReady(){r.info("App ready to work offline")},onRegisterError:console.warn,onRegistered(a){a&&setInterval(()=>a.update(),60*60*1e3)}})}),t()});export{o as D,Un as _,Re as a,he as b,zp as c,Ke as g,Rs as l,Z as p,ie as s}; +Learn more at www.moddingtree.com`,"font-weight: bold; font-size: 24px; color: #A3BE8C; background: #2E3440; padding: 4px 8px; border-radius: 8px;","padding: 4px;"),await As();const{globalBus:e}=await Un(()=>Promise.resolve().then(function(){return Ps}),void 0),{startGameLoop:t}=await Un(()=>import("./gameLoop.f63e9d55.js"),["assets/gameLoop.f63e9d55.js","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"]),n=window.vue=ma(vf);n.config.errorHandler=function(r,i,a){console.error(r,a,i)},e.emit("setupVue",n),n.mount("#app"),Wt(()=>{const r=hr(),{updateServiceWorker:i}=bf({onNeedRefresh(){r.info("New content available, click here to update.",{timeout:!1,closeOnClick:!1,draggable:!1,icon:{iconClass:"material-icons",iconChildren:"refresh",iconTag:"i"},rtl:!1,onClick(){i()}})},onOfflineReady(){r.info("App ready to work offline")},onRegisterError:console.warn,onRegistered(a){a&&setInterval(()=>a.update(),60*60*1e3)}})}),t()});export{o as D,Un as _,Re as a,he as b,zp as c,Ke as g,Rs as l,Z as p,ie as s}; diff --git a/index.html b/index.html index b4ac267..ffc101a 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ Planar Pioneers - + diff --git a/sw.js b/sw.js index 3acca9a..09c8b36 100644 --- a/sw.js +++ b/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,l)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let o={};const a=e=>i(e,r),u={module:{uri:r},exports:o,require:a};s[r]=Promise.all(n.map((e=>u[e]||a(e)))).then((e=>(l(...e),o)))}}define(["./workbox-7369c0e1"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"assets/@fontsource.f66d05e7.css",revision:null},{url:"assets/@vue.6b211d3c.js",revision:null},{url:"assets/amator.1e5a40c8.js",revision:null},{url:"assets/bezier-easing.a990b400.js",revision:null},{url:"assets/gameLoop.12e84b5c.js",revision:null},{url:"assets/index.094540b5.js",revision:null},{url:"assets/index.bebdc1b9.css",revision:null},{url:"assets/lz-string.dccec454.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/ngraph.events.083734c6.js",revision:null},{url:"assets/panzoom.30c56ba6.js",revision:null},{url:"assets/sortablejs.a0f68e5e.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.ded54c4a.js",revision:null},{url:"assets/vue-panzoom.8ce6f9b1.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.9c2dad53.js",revision:null},{url:"assets/vue.c16a309b.js",revision:null},{url:"assets/vuedraggable.1879de79.js",revision:null},{url:"assets/wheel.f2ae740f.js",revision:null},{url:"assets/workbox-window.4a8794bb.js",revision:null},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"favicon.svg",revision:"c8dd2748f1fedd25449164d7dda6aecb"},{url:"index.html",revision:"c65df194133155b9c6f47a94eb574163"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"e1e419fec40e2d042566c11fe4bce322"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); +if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,l)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let o={};const a=e=>i(e,r),u={module:{uri:r},exports:o,require:a};s[r]=Promise.all(n.map((e=>u[e]||a(e)))).then((e=>(l(...e),o)))}}define(["./workbox-7369c0e1"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"assets/@fontsource.f66d05e7.css",revision:null},{url:"assets/@vue.6b211d3c.js",revision:null},{url:"assets/amator.1e5a40c8.js",revision:null},{url:"assets/bezier-easing.a990b400.js",revision:null},{url:"assets/gameLoop.f63e9d55.js",revision:null},{url:"assets/index.bebdc1b9.css",revision:null},{url:"assets/index.ffd22707.js",revision:null},{url:"assets/lz-string.dccec454.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/ngraph.events.083734c6.js",revision:null},{url:"assets/panzoom.30c56ba6.js",revision:null},{url:"assets/sortablejs.a0f68e5e.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.ded54c4a.js",revision:null},{url:"assets/vue-panzoom.8ce6f9b1.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.9c2dad53.js",revision:null},{url:"assets/vue.c16a309b.js",revision:null},{url:"assets/vuedraggable.1879de79.js",revision:null},{url:"assets/wheel.f2ae740f.js",revision:null},{url:"assets/workbox-window.4a8794bb.js",revision:null},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"favicon.svg",revision:"c8dd2748f1fedd25449164d7dda6aecb"},{url:"index.html",revision:"32ab91c21f1271718e66404f9148b8b4"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"e1e419fec40e2d042566c11fe4bce322"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));