spyret 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -4
- package/dist/spyret-browser.amd.js +28 -28
- package/dist/spyret-browser.global.js +28 -28
- package/dist/spyret-browser.js +28 -28
- package/dist/spyret-browser.mjs +26 -26
- package/dist/spyret.global.js +10 -10
- package/dist/spyret.js +10 -10
- package/dist/spyret.mjs +9 -9
- package/dist/spyret.pyret.js +29 -29
- package/docs/BROWSER_LIBRARY.md +9 -4
- package/docs/RELEASING.md +45 -6
- package/docs/SPYTIAL_HOOKS.md +8 -10
- package/docs/SPYTIAL_LANGUAGE.md +194 -0
- package/docs/SPYTIAL_RULES_REFERENCE.md +23 -21
- package/package.json +1 -1
- package/pyret/spytial.arr +82 -392
package/dist/spyret.global.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";var Spyret=(()=>{var wp=Object.create;var Ze=Object.defineProperty;var vp=Object.getOwnPropertyDescriptor;var xp=Object.getOwnPropertyNames;var qp=Object.getPrototypeOf,Ip=Object.prototype.hasOwnProperty;var Hr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var u=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ap=(e,t)=>{for(var r in t)Ze(e,r,{get:t[r],enumerable:!0})},Wr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of xp(t))!Ip.call(e,i)&&i!==r&&Ze(e,i,{get:()=>t[i],enumerable:!(n=vp(t,i))||n.enumerable});return e};var Yr=(e,t,r)=>(r=e!=null?wp(qp(e)):{},Wr(t||!e||!e.__esModule?Ze(r,"default",{value:e,enumerable:!0}):r,e)),Sp=e=>Wr(Ze({},"__esModule",{value:!0}),e);var Xr=u((jS,Zr)=>{"use strict";function Pp(){this.__data__=[],this.size=0}Zr.exports=Pp});var Xe=u((NS,Qr)=>{"use strict";function kp(e,t){return e===t||e!==e&&t!==t}Qr.exports=kp});var Se=u((RS,en)=>{"use strict";var Ep=Xe();function Op(e,t){for(var r=e.length;r--;)if(Ep(e[r][0],t))return r;return-1}en.exports=Op});var rn=u((CS,tn)=>{"use strict";var _p=Se(),Tp=Array.prototype,jp=Tp.splice;function Np(e){var t=this.__data__,r=_p(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():jp.call(t,r,1),--this.size,!0}tn.exports=Np});var sn=u((MS,nn)=>{"use strict";var Rp=Se();function Cp(e){var t=this.__data__,r=Rp(t,e);return r<0?void 0:t[r][1]}nn.exports=Cp});var an=u(($S,on)=>{"use strict";var Mp=Se();function $p(e){return Mp(this.__data__,e)>-1}on.exports=$p});var cn=u((DS,un)=>{"use strict";var Dp=Se();function Fp(e,t){var r=this.__data__,n=Dp(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}un.exports=Fp});var Pe=u((FS,ln)=>{"use strict";var Lp=Xr(),Vp=rn(),Up=sn(),Bp=an(),zp=cn();function de(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}de.prototype.clear=Lp;de.prototype.delete=Vp;de.prototype.get=Up;de.prototype.has=Bp;de.prototype.set=zp;ln.exports=de});var fn=u((LS,pn)=>{"use strict";var Gp=Pe();function Kp(){this.__data__=new Gp,this.size=0}pn.exports=Kp});var yn=u((VS,dn)=>{"use strict";function Jp(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}dn.exports=Jp});var gn=u((US,mn)=>{"use strict";function Hp(e){return this.__data__.get(e)}mn.exports=Hp});var bn=u((BS,hn)=>{"use strict";function Wp(e){return this.__data__.has(e)}hn.exports=Wp});var Lt=u((zS,wn)=>{"use strict";var Yp=typeof global=="object"&&global&&global.Object===Object&&global;wn.exports=Yp});var B=u((GS,vn)=>{"use strict";var Zp=Lt(),Xp=typeof self=="object"&&self&&self.Object===Object&&self,Qp=Zp||Xp||Function("return this")();vn.exports=Qp});var oe=u((KS,xn)=>{"use strict";var ef=B(),tf=ef.Symbol;xn.exports=tf});var Sn=u((JS,An)=>{"use strict";var qn=oe(),In=Object.prototype,rf=In.hasOwnProperty,nf=In.toString,ke=qn?qn.toStringTag:void 0;function sf(e){var t=rf.call(e,ke),r=e[ke];try{e[ke]=void 0;var n=!0}catch{}var i=nf.call(e);return n&&(t?e[ke]=r:delete e[ke]),i}An.exports=sf});var kn=u((HS,Pn)=>{"use strict";var of=Object.prototype,af=of.toString;function uf(e){return af.call(e)}Pn.exports=uf});var ae=u((WS,_n)=>{"use strict";var En=oe(),cf=Sn(),lf=kn(),pf="[object Null]",ff="[object Undefined]",On=En?En.toStringTag:void 0;function df(e){return e==null?e===void 0?ff:pf:On&&On in Object(e)?cf(e):lf(e)}_n.exports=df});var ee=u((YS,Tn)=>{"use strict";function yf(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}Tn.exports=yf});var Ee=u((ZS,jn)=>{"use strict";var mf=ae(),gf=ee(),hf="[object AsyncFunction]",bf="[object Function]",wf="[object GeneratorFunction]",vf="[object Proxy]";function xf(e){if(!gf(e))return!1;var t=mf(e);return t==bf||t==wf||t==hf||t==vf}jn.exports=xf});var Rn=u((XS,Nn)=>{"use strict";var qf=B(),If=qf["__core-js_shared__"];Nn.exports=If});var $n=u((QS,Mn)=>{"use strict";var Vt=Rn(),Cn=(function(){var e=/[^.]+$/.exec(Vt&&Vt.keys&&Vt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Af(e){return!!Cn&&Cn in e}Mn.exports=Af});var Ut=u((eP,Dn)=>{"use strict";var Sf=Function.prototype,Pf=Sf.toString;function kf(e){if(e!=null){try{return Pf.call(e)}catch{}try{return e+""}catch{}}return""}Dn.exports=kf});var Ln=u((tP,Fn)=>{"use strict";var Ef=Ee(),Of=$n(),_f=ee(),Tf=Ut(),jf=/[\\^$.*+?()[\]{}|]/g,Nf=/^\[object .+?Constructor\]$/,Rf=Function.prototype,Cf=Object.prototype,Mf=Rf.toString,$f=Cf.hasOwnProperty,Df=RegExp("^"+Mf.call($f).replace(jf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ff(e){if(!_f(e)||Of(e))return!1;var t=Ef(e)?Df:Nf;return t.test(Tf(e))}Fn.exports=Ff});var Un=u((rP,Vn)=>{"use strict";function Lf(e,t){return e?.[t]}Vn.exports=Lf});var te=u((nP,Bn)=>{"use strict";var Vf=Ln(),Uf=Un();function Bf(e,t){var r=Uf(e,t);return Vf(r)?r:void 0}Bn.exports=Bf});var Qe=u((iP,zn)=>{"use strict";var zf=te(),Gf=B(),Kf=zf(Gf,"Map");zn.exports=Kf});var Oe=u((sP,Gn)=>{"use strict";var Jf=te(),Hf=Jf(Object,"create");Gn.exports=Hf});var Hn=u((oP,Jn)=>{"use strict";var Kn=Oe();function Wf(){this.__data__=Kn?Kn(null):{},this.size=0}Jn.exports=Wf});var Yn=u((aP,Wn)=>{"use strict";function Yf(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Wn.exports=Yf});var Xn=u((uP,Zn)=>{"use strict";var Zf=Oe(),Xf="__lodash_hash_undefined__",Qf=Object.prototype,ed=Qf.hasOwnProperty;function td(e){var t=this.__data__;if(Zf){var r=t[e];return r===Xf?void 0:r}return ed.call(t,e)?t[e]:void 0}Zn.exports=td});var ei=u((cP,Qn)=>{"use strict";var rd=Oe(),nd=Object.prototype,id=nd.hasOwnProperty;function sd(e){var t=this.__data__;return rd?t[e]!==void 0:id.call(t,e)}Qn.exports=sd});var ri=u((lP,ti)=>{"use strict";var od=Oe(),ad="__lodash_hash_undefined__";function ud(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=od&&t===void 0?ad:t,this}ti.exports=ud});var ii=u((pP,ni)=>{"use strict";var cd=Hn(),ld=Yn(),pd=Xn(),fd=ei(),dd=ri();function ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ye.prototype.clear=cd;ye.prototype.delete=ld;ye.prototype.get=pd;ye.prototype.has=fd;ye.prototype.set=dd;ni.exports=ye});var ai=u((fP,oi)=>{"use strict";var si=ii(),yd=Pe(),md=Qe();function gd(){this.size=0,this.__data__={hash:new si,map:new(md||yd),string:new si}}oi.exports=gd});var ci=u((dP,ui)=>{"use strict";function hd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}ui.exports=hd});var _e=u((yP,li)=>{"use strict";var bd=ci();function wd(e,t){var r=e.__data__;return bd(t)?r[typeof t=="string"?"string":"hash"]:r.map}li.exports=wd});var fi=u((mP,pi)=>{"use strict";var vd=_e();function xd(e){var t=vd(this,e).delete(e);return this.size-=t?1:0,t}pi.exports=xd});var yi=u((gP,di)=>{"use strict";var qd=_e();function Id(e){return qd(this,e).get(e)}di.exports=Id});var gi=u((hP,mi)=>{"use strict";var Ad=_e();function Sd(e){return Ad(this,e).has(e)}mi.exports=Sd});var bi=u((bP,hi)=>{"use strict";var Pd=_e();function kd(e,t){var r=Pd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}hi.exports=kd});var et=u((wP,wi)=>{"use strict";var Ed=ai(),Od=fi(),_d=yi(),Td=gi(),jd=bi();function me(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}me.prototype.clear=Ed;me.prototype.delete=Od;me.prototype.get=_d;me.prototype.has=Td;me.prototype.set=jd;wi.exports=me});var xi=u((vP,vi)=>{"use strict";var Nd=Pe(),Rd=Qe(),Cd=et(),Md=200;function $d(e,t){var r=this.__data__;if(r instanceof Nd){var n=r.__data__;if(!Rd||n.length<Md-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Cd(n)}return r.set(e,t),this.size=r.size,this}vi.exports=$d});var tt=u((xP,qi)=>{"use strict";var Dd=Pe(),Fd=fn(),Ld=yn(),Vd=gn(),Ud=bn(),Bd=xi();function ge(e){var t=this.__data__=new Dd(e);this.size=t.size}ge.prototype.clear=Fd;ge.prototype.delete=Ld;ge.prototype.get=Vd;ge.prototype.has=Ud;ge.prototype.set=Bd;qi.exports=ge});var rt=u((qP,Ii)=>{"use strict";function zd(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}Ii.exports=zd});var Bt=u((IP,Ai)=>{"use strict";var Gd=te(),Kd=(function(){try{var e=Gd(Object,"defineProperty");return e({},"",{}),e}catch{}})();Ai.exports=Kd});var zt=u((AP,Pi)=>{"use strict";var Si=Bt();function Jd(e,t,r){t=="__proto__"&&Si?Si(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}Pi.exports=Jd});var Gt=u((SP,ki)=>{"use strict";var Hd=zt(),Wd=Xe(),Yd=Object.prototype,Zd=Yd.hasOwnProperty;function Xd(e,t,r){var n=e[t];(!(Zd.call(e,t)&&Wd(n,r))||r===void 0&&!(t in e))&&Hd(e,t,r)}ki.exports=Xd});var Te=u((PP,Ei)=>{"use strict";var Qd=Gt(),ey=zt();function ty(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var a=t[s],c=n?n(r[a],e[a],a,r,e):void 0;c===void 0&&(c=e[a]),i?ey(r,a,c):Qd(r,a,c)}return r}Ei.exports=ty});var _i=u((kP,Oi)=>{"use strict";function ry(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}Oi.exports=ry});var K=u((EP,Ti)=>{"use strict";function ny(e){return e!=null&&typeof e=="object"}Ti.exports=ny});var Ni=u((OP,ji)=>{"use strict";var iy=ae(),sy=K(),oy="[object Arguments]";function ay(e){return sy(e)&&iy(e)==oy}ji.exports=ay});var je=u((_P,Mi)=>{"use strict";var Ri=Ni(),uy=K(),Ci=Object.prototype,cy=Ci.hasOwnProperty,ly=Ci.propertyIsEnumerable,py=Ri((function(){return arguments})())?Ri:function(e){return uy(e)&&cy.call(e,"callee")&&!ly.call(e,"callee")};Mi.exports=py});var N=u((TP,$i)=>{"use strict";var fy=Array.isArray;$i.exports=fy});var Fi=u((jP,Di)=>{"use strict";function dy(){return!1}Di.exports=dy});var be=u((Ne,he)=>{"use strict";var yy=B(),my=Fi(),Ui=typeof Ne=="object"&&Ne&&!Ne.nodeType&&Ne,Li=Ui&&typeof he=="object"&&he&&!he.nodeType&&he,gy=Li&&Li.exports===Ui,Vi=gy?yy.Buffer:void 0,hy=Vi?Vi.isBuffer:void 0,by=hy||my;he.exports=by});var Kt=u((NP,Bi)=>{"use strict";var wy=9007199254740991,vy=/^(?:0|[1-9]\d*)$/;function xy(e,t){var r=typeof e;return t=t??wy,!!t&&(r=="number"||r!="symbol"&&vy.test(e))&&e>-1&&e%1==0&&e<t}Bi.exports=xy});var nt=u((RP,zi)=>{"use strict";var qy=9007199254740991;function Iy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qy}zi.exports=Iy});var Ki=u((CP,Gi)=>{"use strict";var Ay=ae(),Sy=nt(),Py=K(),ky="[object Arguments]",Ey="[object Array]",Oy="[object Boolean]",_y="[object Date]",Ty="[object Error]",jy="[object Function]",Ny="[object Map]",Ry="[object Number]",Cy="[object Object]",My="[object RegExp]",$y="[object Set]",Dy="[object String]",Fy="[object WeakMap]",Ly="[object ArrayBuffer]",Vy="[object DataView]",Uy="[object Float32Array]",By="[object Float64Array]",zy="[object Int8Array]",Gy="[object Int16Array]",Ky="[object Int32Array]",Jy="[object Uint8Array]",Hy="[object Uint8ClampedArray]",Wy="[object Uint16Array]",Yy="[object Uint32Array]",T={};T[Uy]=T[By]=T[zy]=T[Gy]=T[Ky]=T[Jy]=T[Hy]=T[Wy]=T[Yy]=!0;T[ky]=T[Ey]=T[Ly]=T[Oy]=T[Vy]=T[_y]=T[Ty]=T[jy]=T[Ny]=T[Ry]=T[Cy]=T[My]=T[$y]=T[Dy]=T[Fy]=!1;function Zy(e){return Py(e)&&Sy(e.length)&&!!T[Ay(e)]}Gi.exports=Zy});var it=u((MP,Ji)=>{"use strict";function Xy(e){return function(t){return e(t)}}Ji.exports=Xy});var st=u((Re,we)=>{"use strict";var Qy=Lt(),Hi=typeof Re=="object"&&Re&&!Re.nodeType&&Re,Ce=Hi&&typeof we=="object"&&we&&!we.nodeType&&we,em=Ce&&Ce.exports===Hi,Jt=em&&Qy.process,tm=(function(){try{var e=Ce&&Ce.require&&Ce.require("util").types;return e||Jt&&Jt.binding&&Jt.binding("util")}catch{}})();we.exports=tm});var Me=u(($P,Zi)=>{"use strict";var rm=Ki(),nm=it(),Wi=st(),Yi=Wi&&Wi.isTypedArray,im=Yi?nm(Yi):rm;Zi.exports=im});var Ht=u((DP,Xi)=>{"use strict";var sm=_i(),om=je(),am=N(),um=be(),cm=Kt(),lm=Me(),pm=Object.prototype,fm=pm.hasOwnProperty;function dm(e,t){var r=am(e),n=!r&&om(e),i=!r&&!n&&um(e),s=!r&&!n&&!i&&lm(e),o=r||n||i||s,a=o?sm(e.length,String):[],c=a.length;for(var p in e)(t||fm.call(e,p))&&!(o&&(p=="length"||i&&(p=="offset"||p=="parent")||s&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||cm(p,c)))&&a.push(p);return a}Xi.exports=dm});var $e=u((FP,Qi)=>{"use strict";var ym=Object.prototype;function mm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||ym;return e===r}Qi.exports=mm});var Wt=u((LP,es)=>{"use strict";function gm(e,t){return function(r){return e(t(r))}}es.exports=gm});var rs=u((VP,ts)=>{"use strict";var hm=Wt(),bm=hm(Object.keys,Object);ts.exports=bm});var ot=u((UP,ns)=>{"use strict";var wm=$e(),vm=rs(),xm=Object.prototype,qm=xm.hasOwnProperty;function Im(e){if(!wm(e))return vm(e);var t=[];for(var r in Object(e))qm.call(e,r)&&r!="constructor"&&t.push(r);return t}ns.exports=Im});var re=u((BP,is)=>{"use strict";var Am=Ee(),Sm=nt();function Pm(e){return e!=null&&Sm(e.length)&&!Am(e)}is.exports=Pm});var ne=u((zP,ss)=>{"use strict";var km=Ht(),Em=ot(),Om=re();function _m(e){return Om(e)?km(e):Em(e)}ss.exports=_m});var as=u((GP,os)=>{"use strict";var Tm=Te(),jm=ne();function Nm(e,t){return e&&Tm(t,jm(t),e)}os.exports=Nm});var cs=u((KP,us)=>{"use strict";function Rm(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}us.exports=Rm});var ps=u((JP,ls)=>{"use strict";var Cm=ee(),Mm=$e(),$m=cs(),Dm=Object.prototype,Fm=Dm.hasOwnProperty;function Lm(e){if(!Cm(e))return $m(e);var t=Mm(e),r=[];for(var n in e)n=="constructor"&&(t||!Fm.call(e,n))||r.push(n);return r}ls.exports=Lm});var at=u((HP,fs)=>{"use strict";var Vm=Ht(),Um=ps(),Bm=re();function zm(e){return Bm(e)?Vm(e,!0):Um(e)}fs.exports=zm});var ys=u((WP,ds)=>{"use strict";var Gm=Te(),Km=at();function Jm(e,t){return e&&Gm(t,Km(t),e)}ds.exports=Jm});var ws=u((De,ve)=>{"use strict";var Hm=B(),bs=typeof De=="object"&&De&&!De.nodeType&&De,ms=bs&&typeof ve=="object"&&ve&&!ve.nodeType&&ve,Wm=ms&&ms.exports===bs,gs=Wm?Hm.Buffer:void 0,hs=gs?gs.allocUnsafe:void 0;function Ym(e,t){if(t)return e.slice();var r=e.length,n=hs?hs(r):new e.constructor(r);return e.copy(n),n}ve.exports=Ym});var xs=u((YP,vs)=>{"use strict";function Zm(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}vs.exports=Zm});var Yt=u((ZP,qs)=>{"use strict";function Xm(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}qs.exports=Xm});var Zt=u((XP,Is)=>{"use strict";function Qm(){return[]}Is.exports=Qm});var ut=u((QP,Ss)=>{"use strict";var eg=Yt(),tg=Zt(),rg=Object.prototype,ng=rg.propertyIsEnumerable,As=Object.getOwnPropertySymbols,ig=As?function(e){return e==null?[]:(e=Object(e),eg(As(e),function(t){return ng.call(e,t)}))}:tg;Ss.exports=ig});var ks=u((ek,Ps)=>{"use strict";var sg=Te(),og=ut();function ag(e,t){return sg(e,og(e),t)}Ps.exports=ag});var ct=u((tk,Es)=>{"use strict";function ug(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}Es.exports=ug});var lt=u((rk,Os)=>{"use strict";var cg=Wt(),lg=cg(Object.getPrototypeOf,Object);Os.exports=lg});var Xt=u((nk,_s)=>{"use strict";var pg=ct(),fg=lt(),dg=ut(),yg=Zt(),mg=Object.getOwnPropertySymbols,gg=mg?function(e){for(var t=[];e;)pg(t,dg(e)),e=fg(e);return t}:yg;_s.exports=gg});var js=u((ik,Ts)=>{"use strict";var hg=Te(),bg=Xt();function wg(e,t){return hg(e,bg(e),t)}Ts.exports=wg});var Qt=u((sk,Ns)=>{"use strict";var vg=ct(),xg=N();function qg(e,t,r){var n=t(e);return xg(e)?n:vg(n,r(e))}Ns.exports=qg});var er=u((ok,Rs)=>{"use strict";var Ig=Qt(),Ag=ut(),Sg=ne();function Pg(e){return Ig(e,Sg,Ag)}Rs.exports=Pg});var Ms=u((ak,Cs)=>{"use strict";var kg=Qt(),Eg=Xt(),Og=at();function _g(e){return kg(e,Og,Eg)}Cs.exports=_g});var Ds=u((uk,$s)=>{"use strict";var Tg=te(),jg=B(),Ng=Tg(jg,"DataView");$s.exports=Ng});var Ls=u((ck,Fs)=>{"use strict";var Rg=te(),Cg=B(),Mg=Rg(Cg,"Promise");Fs.exports=Mg});var tr=u((lk,Vs)=>{"use strict";var $g=te(),Dg=B(),Fg=$g(Dg,"Set");Vs.exports=Fg});var Bs=u((pk,Us)=>{"use strict";var Lg=te(),Vg=B(),Ug=Lg(Vg,"WeakMap");Us.exports=Ug});var ce=u((fk,Ys)=>{"use strict";var rr=Ds(),nr=Qe(),ir=Ls(),sr=tr(),or=Bs(),Ws=ae(),xe=Ut(),zs="[object Map]",Bg="[object Object]",Gs="[object Promise]",Ks="[object Set]",Js="[object WeakMap]",Hs="[object DataView]",zg=xe(rr),Gg=xe(nr),Kg=xe(ir),Jg=xe(sr),Hg=xe(or),ue=Ws;(rr&&ue(new rr(new ArrayBuffer(1)))!=Hs||nr&&ue(new nr)!=zs||ir&&ue(ir.resolve())!=Gs||sr&&ue(new sr)!=Ks||or&&ue(new or)!=Js)&&(ue=function(e){var t=Ws(e),r=t==Bg?e.constructor:void 0,n=r?xe(r):"";if(n)switch(n){case zg:return Hs;case Gg:return zs;case Kg:return Gs;case Jg:return Ks;case Hg:return Js}return t});Ys.exports=ue});var Xs=u((dk,Zs)=>{"use strict";var Wg=Object.prototype,Yg=Wg.hasOwnProperty;function Zg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Yg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Zs.exports=Zg});var ar=u((yk,Qs)=>{"use strict";var Xg=B(),Qg=Xg.Uint8Array;Qs.exports=Qg});var pt=u((mk,to)=>{"use strict";var eo=ar();function eh(e){var t=new e.constructor(e.byteLength);return new eo(t).set(new eo(e)),t}to.exports=eh});var no=u((gk,ro)=>{"use strict";var th=pt();function rh(e,t){var r=t?th(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}ro.exports=rh});var so=u((hk,io)=>{"use strict";var nh=/\w*$/;function ih(e){var t=new e.constructor(e.source,nh.exec(e));return t.lastIndex=e.lastIndex,t}io.exports=ih});var lo=u((bk,co)=>{"use strict";var oo=oe(),ao=oo?oo.prototype:void 0,uo=ao?ao.valueOf:void 0;function sh(e){return uo?Object(uo.call(e)):{}}co.exports=sh});var fo=u((wk,po)=>{"use strict";var oh=pt();function ah(e,t){var r=t?oh(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}po.exports=ah});var mo=u((vk,yo)=>{"use strict";var uh=pt(),ch=no(),lh=so(),ph=lo(),fh=fo(),dh="[object Boolean]",yh="[object Date]",mh="[object Map]",gh="[object Number]",hh="[object RegExp]",bh="[object Set]",wh="[object String]",vh="[object Symbol]",xh="[object ArrayBuffer]",qh="[object DataView]",Ih="[object Float32Array]",Ah="[object Float64Array]",Sh="[object Int8Array]",Ph="[object Int16Array]",kh="[object Int32Array]",Eh="[object Uint8Array]",Oh="[object Uint8ClampedArray]",_h="[object Uint16Array]",Th="[object Uint32Array]";function jh(e,t,r){var n=e.constructor;switch(t){case xh:return uh(e);case dh:case yh:return new n(+e);case qh:return ch(e,r);case Ih:case Ah:case Sh:case Ph:case kh:case Eh:case Oh:case _h:case Th:return fh(e,r);case mh:return new n;case gh:case wh:return new n(e);case hh:return lh(e);case bh:return new n;case vh:return ph(e)}}yo.exports=jh});var ur=u((xk,ho)=>{"use strict";var Nh=ee(),go=Object.create,Rh=(function(){function e(){}return function(t){if(!Nh(t))return{};if(go)return go(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();ho.exports=Rh});var wo=u((qk,bo)=>{"use strict";var Ch=ur(),Mh=lt(),$h=$e();function Dh(e){return typeof e.constructor=="function"&&!$h(e)?Ch(Mh(e)):{}}bo.exports=Dh});var xo=u((Ik,vo)=>{"use strict";var Fh=ce(),Lh=K(),Vh="[object Map]";function Uh(e){return Lh(e)&&Fh(e)==Vh}vo.exports=Uh});var So=u((Ak,Ao)=>{"use strict";var Bh=xo(),zh=it(),qo=st(),Io=qo&&qo.isMap,Gh=Io?zh(Io):Bh;Ao.exports=Gh});var ko=u((Sk,Po)=>{"use strict";var Kh=ce(),Jh=K(),Hh="[object Set]";function Wh(e){return Jh(e)&&Kh(e)==Hh}Po.exports=Wh});var To=u((Pk,_o)=>{"use strict";var Yh=ko(),Zh=it(),Eo=st(),Oo=Eo&&Eo.isSet,Xh=Oo?Zh(Oo):Yh;_o.exports=Xh});var Mo=u((kk,Co)=>{"use strict";var Qh=tt(),eb=rt(),tb=Gt(),rb=as(),nb=ys(),ib=ws(),sb=xs(),ob=ks(),ab=js(),ub=er(),cb=Ms(),lb=ce(),pb=Xs(),fb=mo(),db=wo(),yb=N(),mb=be(),gb=So(),hb=ee(),bb=To(),wb=ne(),vb=at(),xb=1,qb=2,Ib=4,jo="[object Arguments]",Ab="[object Array]",Sb="[object Boolean]",Pb="[object Date]",kb="[object Error]",No="[object Function]",Eb="[object GeneratorFunction]",Ob="[object Map]",_b="[object Number]",Ro="[object Object]",Tb="[object RegExp]",jb="[object Set]",Nb="[object String]",Rb="[object Symbol]",Cb="[object WeakMap]",Mb="[object ArrayBuffer]",$b="[object DataView]",Db="[object Float32Array]",Fb="[object Float64Array]",Lb="[object Int8Array]",Vb="[object Int16Array]",Ub="[object Int32Array]",Bb="[object Uint8Array]",zb="[object Uint8ClampedArray]",Gb="[object Uint16Array]",Kb="[object Uint32Array]",_={};_[jo]=_[Ab]=_[Mb]=_[$b]=_[Sb]=_[Pb]=_[Db]=_[Fb]=_[Lb]=_[Vb]=_[Ub]=_[Ob]=_[_b]=_[Ro]=_[Tb]=_[jb]=_[Nb]=_[Rb]=_[Bb]=_[zb]=_[Gb]=_[Kb]=!0;_[kb]=_[No]=_[Cb]=!1;function ft(e,t,r,n,i,s){var o,a=t&xb,c=t&qb,p=t&Ib;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!hb(e))return e;var f=yb(e);if(f){if(o=pb(e),!a)return sb(e,o)}else{var b=lb(e),l=b==No||b==Eb;if(mb(e))return ib(e,a);if(b==Ro||b==jo||l&&!i){if(o=c||l?{}:db(e),!a)return c?ab(e,nb(o,e)):ob(e,rb(o,e))}else{if(!_[b])return i?e:{};o=fb(e,b,a)}}s||(s=new Qh);var w=s.get(e);if(w)return w;s.set(e,o),bb(e)?e.forEach(function(d){o.add(ft(d,t,r,d,e,s))}):gb(e)&&e.forEach(function(d,y){o.set(y,ft(d,t,r,y,e,s))});var m=p?c?cb:ub:c?vb:wb,g=f?void 0:m(e);return eb(g||e,function(d,y){g&&(y=d,d=e[y]),tb(o,y,ft(d,t,r,y,e,s))}),o}Co.exports=ft});var Do=u((Ek,$o)=>{"use strict";var Jb=Mo(),Hb=4;function Wb(e){return Jb(e,Hb)}$o.exports=Wb});var cr=u((Ok,Fo)=>{"use strict";function Yb(e){return function(){return e}}Fo.exports=Yb});var Vo=u((_k,Lo)=>{"use strict";function Zb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),a=o.length;a--;){var c=o[e?a:++i];if(r(s[c],c,s)===!1)break}return t}}Lo.exports=Zb});var Bo=u((Tk,Uo)=>{"use strict";var Xb=Vo(),Qb=Xb();Uo.exports=Qb});var lr=u((jk,zo)=>{"use strict";var ew=Bo(),tw=ne();function rw(e,t){return e&&ew(e,t,tw)}zo.exports=rw});var Ko=u((Nk,Go)=>{"use strict";var nw=re();function iw(e,t){return function(r,n){if(r==null)return r;if(!nw(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}Go.exports=iw});var Fe=u((Rk,Jo)=>{"use strict";var sw=lr(),ow=Ko(),aw=ow(sw);Jo.exports=aw});var Le=u((Ck,Ho)=>{"use strict";function uw(e){return e}Ho.exports=uw});var Yo=u((Mk,Wo)=>{"use strict";var cw=Le();function lw(e){return typeof e=="function"?e:cw}Wo.exports=lw});var Xo=u(($k,Zo)=>{"use strict";var pw=rt(),fw=Fe(),dw=Yo(),yw=N();function mw(e,t){var r=yw(e)?pw:fw;return r(e,dw(t))}Zo.exports=mw});var ea=u((Dk,Qo)=>{"use strict";Qo.exports=Xo()});var ra=u((Fk,ta)=>{"use strict";var gw=Fe();function hw(e,t){var r=[];return gw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}ta.exports=hw});var ia=u((Lk,na)=>{"use strict";var bw="__lodash_hash_undefined__";function ww(e){return this.__data__.set(e,bw),this}na.exports=ww});var oa=u((Vk,sa)=>{"use strict";function vw(e){return this.__data__.has(e)}sa.exports=vw});var pr=u((Uk,aa)=>{"use strict";var xw=et(),qw=ia(),Iw=oa();function dt(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new xw;++t<r;)this.add(e[t])}dt.prototype.add=dt.prototype.push=qw;dt.prototype.has=Iw;aa.exports=dt});var ca=u((Bk,ua)=>{"use strict";function Aw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}ua.exports=Aw});var fr=u((zk,la)=>{"use strict";function Sw(e,t){return e.has(t)}la.exports=Sw});var dr=u((Gk,pa)=>{"use strict";var Pw=pr(),kw=ca(),Ew=fr(),Ow=1,_w=2;function Tw(e,t,r,n,i,s){var o=r&Ow,a=e.length,c=t.length;if(a!=c&&!(o&&c>a))return!1;var p=s.get(e),f=s.get(t);if(p&&f)return p==t&&f==e;var b=-1,l=!0,w=r&_w?new Pw:void 0;for(s.set(e,t),s.set(t,e);++b<a;){var m=e[b],g=t[b];if(n)var d=o?n(g,m,b,t,e,s):n(m,g,b,e,t,s);if(d!==void 0){if(d)continue;l=!1;break}if(w){if(!kw(t,function(y,v){if(!Ew(w,v)&&(m===y||i(m,y,r,n,s)))return w.push(v)})){l=!1;break}}else if(!(m===g||i(m,g,r,n,s))){l=!1;break}}return s.delete(e),s.delete(t),l}pa.exports=Tw});var da=u((Kk,fa)=>{"use strict";function jw(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}fa.exports=jw});var yt=u((Jk,ya)=>{"use strict";function Nw(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}ya.exports=Nw});var wa=u((Hk,ba)=>{"use strict";var ma=oe(),ga=ar(),Rw=Xe(),Cw=dr(),Mw=da(),$w=yt(),Dw=1,Fw=2,Lw="[object Boolean]",Vw="[object Date]",Uw="[object Error]",Bw="[object Map]",zw="[object Number]",Gw="[object RegExp]",Kw="[object Set]",Jw="[object String]",Hw="[object Symbol]",Ww="[object ArrayBuffer]",Yw="[object DataView]",ha=ma?ma.prototype:void 0,yr=ha?ha.valueOf:void 0;function Zw(e,t,r,n,i,s,o){switch(r){case Yw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Ww:return!(e.byteLength!=t.byteLength||!s(new ga(e),new ga(t)));case Lw:case Vw:case zw:return Rw(+e,+t);case Uw:return e.name==t.name&&e.message==t.message;case Gw:case Jw:return e==t+"";case Bw:var a=Mw;case Kw:var c=n&Dw;if(a||(a=$w),e.size!=t.size&&!c)return!1;var p=o.get(e);if(p)return p==t;n|=Fw,o.set(e,t);var f=Cw(a(e),a(t),n,i,s,o);return o.delete(e),f;case Hw:if(yr)return yr.call(e)==yr.call(t)}return!1}ba.exports=Zw});var qa=u((Wk,xa)=>{"use strict";var va=er(),Xw=1,Qw=Object.prototype,ev=Qw.hasOwnProperty;function tv(e,t,r,n,i,s){var o=r&Xw,a=va(e),c=a.length,p=va(t),f=p.length;if(c!=f&&!o)return!1;for(var b=c;b--;){var l=a[b];if(!(o?l in t:ev.call(t,l)))return!1}var w=s.get(e),m=s.get(t);if(w&&m)return w==t&&m==e;var g=!0;s.set(e,t),s.set(t,e);for(var d=o;++b<c;){l=a[b];var y=e[l],v=t[l];if(n)var x=o?n(v,y,l,t,e,s):n(y,v,l,e,t,s);if(!(x===void 0?y===v||i(y,v,r,n,s):x)){g=!1;break}d||(d=l=="constructor")}if(g&&!d){var E=e.constructor,O=t.constructor;E!=O&&"constructor"in e&&"constructor"in t&&!(typeof E=="function"&&E instanceof E&&typeof O=="function"&&O instanceof O)&&(g=!1)}return s.delete(e),s.delete(t),g}xa.exports=tv});var _a=u((Yk,Oa)=>{"use strict";var mr=tt(),rv=dr(),nv=wa(),iv=qa(),Ia=ce(),Aa=N(),Sa=be(),sv=Me(),ov=1,Pa="[object Arguments]",ka="[object Array]",mt="[object Object]",av=Object.prototype,Ea=av.hasOwnProperty;function uv(e,t,r,n,i,s){var o=Aa(e),a=Aa(t),c=o?ka:Ia(e),p=a?ka:Ia(t);c=c==Pa?mt:c,p=p==Pa?mt:p;var f=c==mt,b=p==mt,l=c==p;if(l&&Sa(e)){if(!Sa(t))return!1;o=!0,f=!1}if(l&&!f)return s||(s=new mr),o||sv(e)?rv(e,t,r,n,i,s):nv(e,t,c,r,n,i,s);if(!(r&ov)){var w=f&&Ea.call(e,"__wrapped__"),m=b&&Ea.call(t,"__wrapped__");if(w||m){var g=w?e.value():e,d=m?t.value():t;return s||(s=new mr),i(g,d,r,n,s)}}return l?(s||(s=new mr),iv(e,t,r,n,i,s)):!1}Oa.exports=uv});var gr=u((Zk,Na)=>{"use strict";var cv=_a(),Ta=K();function ja(e,t,r,n,i){return e===t?!0:e==null||t==null||!Ta(e)&&!Ta(t)?e!==e&&t!==t:cv(e,t,r,n,ja,i)}Na.exports=ja});var Ca=u((Xk,Ra)=>{"use strict";var lv=tt(),pv=gr(),fv=1,dv=2;function yv(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var a=r[i];if(o&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<s;){a=r[i];var c=a[0],p=e[c],f=a[1];if(o&&a[2]){if(p===void 0&&!(c in e))return!1}else{var b=new lv;if(n)var l=n(p,f,c,e,t,b);if(!(l===void 0?pv(f,p,fv|dv,n,b):l))return!1}}return!0}Ra.exports=yv});var hr=u((Qk,Ma)=>{"use strict";var mv=ee();function gv(e){return e===e&&!mv(e)}Ma.exports=gv});var Da=u((eE,$a)=>{"use strict";var hv=hr(),bv=ne();function wv(e){for(var t=bv(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,hv(i)]}return t}$a.exports=wv});var br=u((tE,Fa)=>{"use strict";function vv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}Fa.exports=vv});var Va=u((rE,La)=>{"use strict";var xv=Ca(),qv=Da(),Iv=br();function Av(e){var t=qv(e);return t.length==1&&t[0][2]?Iv(t[0][0],t[0][1]):function(r){return r===e||xv(r,e,t)}}La.exports=Av});var gt=u((nE,Ua)=>{"use strict";var Sv=ae(),Pv=K(),kv="[object Symbol]";function Ev(e){return typeof e=="symbol"||Pv(e)&&Sv(e)==kv}Ua.exports=Ev});var ht=u((iE,Ba)=>{"use strict";var Ov=N(),_v=gt(),Tv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jv=/^\w*$/;function Nv(e,t){if(Ov(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||_v(e)?!0:jv.test(e)||!Tv.test(e)||t!=null&&e in Object(t)}Ba.exports=Nv});var Ka=u((sE,Ga)=>{"use strict";var za=et(),Rv="Expected a function";function wr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Rv);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(wr.Cache||za),r}wr.Cache=za;Ga.exports=wr});var Ha=u((oE,Ja)=>{"use strict";var Cv=Ka(),Mv=500;function $v(e){var t=Cv(e,function(n){return r.size===Mv&&r.clear(),n}),r=t.cache;return t}Ja.exports=$v});var Ya=u((aE,Wa)=>{"use strict";var Dv=Ha(),Fv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Lv=/\\(\\)?/g,Vv=Dv(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Fv,function(r,n,i,s){t.push(i?s.replace(Lv,"$1"):n||r)}),t});Wa.exports=Vv});var bt=u((uE,Za)=>{"use strict";function Uv(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Za.exports=Uv});var nu=u((cE,ru)=>{"use strict";var Xa=oe(),Bv=bt(),zv=N(),Gv=gt(),Kv=1/0,Qa=Xa?Xa.prototype:void 0,eu=Qa?Qa.toString:void 0;function tu(e){if(typeof e=="string")return e;if(zv(e))return Bv(e,tu)+"";if(Gv(e))return eu?eu.call(e):"";var t=e+"";return t=="0"&&1/e==-Kv?"-0":t}ru.exports=tu});var su=u((lE,iu)=>{"use strict";var Jv=nu();function Hv(e){return e==null?"":Jv(e)}iu.exports=Hv});var vr=u((pE,ou)=>{"use strict";var Wv=N(),Yv=ht(),Zv=Ya(),Xv=su();function Qv(e,t){return Wv(e)?e:Yv(e,t)?[e]:Zv(Xv(e))}ou.exports=Qv});var Ve=u((fE,au)=>{"use strict";var ex=gt(),tx=1/0;function rx(e){if(typeof e=="string"||ex(e))return e;var t=e+"";return t=="0"&&1/e==-tx?"-0":t}au.exports=rx});var xr=u((dE,uu)=>{"use strict";var nx=vr(),ix=Ve();function sx(e,t){t=nx(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[ix(t[r++])];return r&&r==n?e:void 0}uu.exports=sx});var lu=u((yE,cu)=>{"use strict";var ox=xr();function ax(e,t,r){var n=e==null?void 0:ox(e,t);return n===void 0?r:n}cu.exports=ax});var fu=u((mE,pu)=>{"use strict";function ux(e,t){return e!=null&&t in Object(e)}pu.exports=ux});var qr=u((gE,du)=>{"use strict";var cx=vr(),lx=je(),px=N(),fx=Kt(),dx=nt(),yx=Ve();function mx(e,t,r){t=cx(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=yx(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&dx(i)&&fx(o,i)&&(px(e)||lx(e)))}du.exports=mx});var mu=u((hE,yu)=>{"use strict";var gx=fu(),hx=qr();function bx(e,t){return e!=null&&hx(e,t,gx)}yu.exports=bx});var hu=u((bE,gu)=>{"use strict";var wx=gr(),vx=lu(),xx=mu(),qx=ht(),Ix=hr(),Ax=br(),Sx=Ve(),Px=1,kx=2;function Ex(e,t){return qx(e)&&Ix(t)?Ax(Sx(e),t):function(r){var n=vx(r,e);return n===void 0&&n===t?xx(r,e):wx(t,n,Px|kx)}}gu.exports=Ex});var Ir=u((wE,bu)=>{"use strict";function Ox(e){return function(t){return t?.[e]}}bu.exports=Ox});var vu=u((vE,wu)=>{"use strict";var _x=xr();function Tx(e){return function(t){return _x(t,e)}}wu.exports=Tx});var qu=u((xE,xu)=>{"use strict";var jx=Ir(),Nx=vu(),Rx=ht(),Cx=Ve();function Mx(e){return Rx(e)?jx(Cx(e)):Nx(e)}xu.exports=Mx});var Ue=u((qE,Iu)=>{"use strict";var $x=Va(),Dx=hu(),Fx=Le(),Lx=N(),Vx=qu();function Ux(e){return typeof e=="function"?e:e==null?Fx:typeof e=="object"?Lx(e)?Dx(e[0],e[1]):$x(e):Vx(e)}Iu.exports=Ux});var Su=u((IE,Au)=>{"use strict";var Bx=Yt(),zx=ra(),Gx=Ue(),Kx=N();function Jx(e,t){var r=Kx(e)?Bx:zx;return r(e,Gx(t,3))}Au.exports=Jx});var ku=u((AE,Pu)=>{"use strict";var Hx=Object.prototype,Wx=Hx.hasOwnProperty;function Yx(e,t){return e!=null&&Wx.call(e,t)}Pu.exports=Yx});var Ou=u((SE,Eu)=>{"use strict";var Zx=ku(),Xx=qr();function Qx(e,t){return e!=null&&Xx(e,t,Zx)}Eu.exports=Qx});var Tu=u((PE,_u)=>{"use strict";var eq=ot(),tq=ce(),rq=je(),nq=N(),iq=re(),sq=be(),oq=$e(),aq=Me(),uq="[object Map]",cq="[object Set]",lq=Object.prototype,pq=lq.hasOwnProperty;function fq(e){if(e==null)return!0;if(iq(e)&&(nq(e)||typeof e=="string"||typeof e.splice=="function"||sq(e)||aq(e)||rq(e)))return!e.length;var t=tq(e);if(t==uq||t==cq)return!e.size;if(oq(e))return!eq(e).length;for(var r in e)if(pq.call(e,r))return!1;return!0}_u.exports=fq});var Nu=u((kE,ju)=>{"use strict";function dq(e){return e===void 0}ju.exports=dq});var Cu=u((EE,Ru)=>{"use strict";var yq=Fe(),mq=re();function gq(e,t){var r=-1,n=mq(e)?Array(e.length):[];return yq(e,function(i,s,o){n[++r]=t(i,s,o)}),n}Ru.exports=gq});var $u=u((OE,Mu)=>{"use strict";var hq=bt(),bq=Ue(),wq=Cu(),vq=N();function xq(e,t){var r=vq(e)?hq:wq;return r(e,bq(t,3))}Mu.exports=xq});var Fu=u((_E,Du)=>{"use strict";function qq(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}Du.exports=qq});var Vu=u((TE,Lu)=>{"use strict";function Iq(e,t,r,n,i){return i(e,function(s,o,a){r=n?(n=!1,s):t(r,s,o,a)}),r}Lu.exports=Iq});var Bu=u((jE,Uu)=>{"use strict";var Aq=Fu(),Sq=Fe(),Pq=Ue(),kq=Vu(),Eq=N();function Oq(e,t,r){var n=Eq(e)?Aq:kq,i=arguments.length<3;return n(e,Pq(t,4),r,i,Sq)}Uu.exports=Oq});var Gu=u((NE,zu)=>{"use strict";var _q=ae(),Tq=N(),jq=K(),Nq="[object String]";function Rq(e){return typeof e=="string"||!Tq(e)&&jq(e)&&_q(e)==Nq}zu.exports=Rq});var Ju=u((RE,Ku)=>{"use strict";var Cq=Ir(),Mq=Cq("length");Ku.exports=Mq});var Wu=u((CE,Hu)=>{"use strict";var $q="\\ud800-\\udfff",Dq="\\u0300-\\u036f",Fq="\\ufe20-\\ufe2f",Lq="\\u20d0-\\u20ff",Vq=Dq+Fq+Lq,Uq="\\ufe0e\\ufe0f",Bq="\\u200d",zq=RegExp("["+Bq+$q+Vq+Uq+"]");function Gq(e){return zq.test(e)}Hu.exports=Gq});var ic=u((ME,nc)=>{"use strict";var Zu="\\ud800-\\udfff",Kq="\\u0300-\\u036f",Jq="\\ufe20-\\ufe2f",Hq="\\u20d0-\\u20ff",Wq=Kq+Jq+Hq,Yq="\\ufe0e\\ufe0f",Zq="["+Zu+"]",Ar="["+Wq+"]",Sr="\\ud83c[\\udffb-\\udfff]",Xq="(?:"+Ar+"|"+Sr+")",Xu="[^"+Zu+"]",Qu="(?:\\ud83c[\\udde6-\\uddff]){2}",ec="[\\ud800-\\udbff][\\udc00-\\udfff]",Qq="\\u200d",tc=Xq+"?",rc="["+Yq+"]?",eI="(?:"+Qq+"(?:"+[Xu,Qu,ec].join("|")+")"+rc+tc+")*",tI=rc+tc+eI,rI="(?:"+[Xu+Ar+"?",Ar,Qu,ec,Zq].join("|")+")",Yu=RegExp(Sr+"(?="+Sr+")|"+rI+tI,"g");function nI(e){for(var t=Yu.lastIndex=0;Yu.test(e);)++t;return t}nc.exports=nI});var oc=u(($E,sc)=>{"use strict";var iI=Ju(),sI=Wu(),oI=ic();function aI(e){return sI(e)?oI(e):iI(e)}sc.exports=aI});var uc=u((DE,ac)=>{"use strict";var uI=ot(),cI=ce(),lI=re(),pI=Gu(),fI=oc(),dI="[object Map]",yI="[object Set]";function mI(e){if(e==null)return 0;if(lI(e))return pI(e)?fI(e):e.length;var t=cI(e);return t==dI||t==yI?e.size:uI(e).length}ac.exports=mI});var lc=u((FE,cc)=>{"use strict";var gI=rt(),hI=ur(),bI=lr(),wI=Ue(),vI=lt(),xI=N(),qI=be(),II=Ee(),AI=ee(),SI=Me();function PI(e,t,r){var n=xI(e),i=n||qI(e)||SI(e);if(t=wI(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:AI(e)?r=II(s)?hI(vI(e)):{}:r={}}return(i?gI:bI)(e,function(o,a,c){return t(r,o,a,c)}),r}cc.exports=PI});var yc=u((LE,dc)=>{"use strict";var pc=oe(),kI=je(),EI=N(),fc=pc?pc.isConcatSpreadable:void 0;function OI(e){return EI(e)||kI(e)||!!(fc&&e&&e[fc])}dc.exports=OI});var hc=u((VE,gc)=>{"use strict";var _I=ct(),TI=yc();function mc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=TI),i||(i=[]);++s<o;){var a=e[s];t>0&&r(a)?t>1?mc(a,t-1,r,n,i):_I(i,a):n||(i[i.length]=a)}return i}gc.exports=mc});var wc=u((UE,bc)=>{"use strict";function jI(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}bc.exports=jI});var qc=u((BE,xc)=>{"use strict";var NI=wc(),vc=Math.max;function RI(e,t,r){return t=vc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=vc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var a=Array(t+1);++i<t;)a[i]=n[i];return a[t]=r(o),NI(e,this,a)}}xc.exports=RI});var Sc=u((zE,Ac)=>{"use strict";var CI=cr(),Ic=Bt(),MI=Le(),$I=Ic?function(e,t){return Ic(e,"toString",{configurable:!0,enumerable:!1,value:CI(t),writable:!0})}:MI;Ac.exports=$I});var kc=u((GE,Pc)=>{"use strict";var DI=800,FI=16,LI=Date.now;function VI(e){var t=0,r=0;return function(){var n=LI(),i=FI-(n-r);if(r=n,i>0){if(++t>=DI)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Pc.exports=VI});var Oc=u((KE,Ec)=>{"use strict";var UI=Sc(),BI=kc(),zI=BI(UI);Ec.exports=zI});var Tc=u((JE,_c)=>{"use strict";var GI=Le(),KI=qc(),JI=Oc();function HI(e,t){return JI(KI(e,t,GI),e+"")}_c.exports=HI});var Nc=u((HE,jc)=>{"use strict";function WI(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}jc.exports=WI});var Cc=u((WE,Rc)=>{"use strict";function YI(e){return e!==e}Rc.exports=YI});var $c=u((YE,Mc)=>{"use strict";function ZI(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}Mc.exports=ZI});var Fc=u((ZE,Dc)=>{"use strict";var XI=Nc(),QI=Cc(),eA=$c();function tA(e,t,r){return t===t?eA(e,t,r):XI(e,QI,r)}Dc.exports=tA});var Vc=u((XE,Lc)=>{"use strict";var rA=Fc();function nA(e,t){var r=e==null?0:e.length;return!!r&&rA(e,t,0)>-1}Lc.exports=nA});var Bc=u((QE,Uc)=>{"use strict";function iA(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Uc.exports=iA});var Gc=u((eO,zc)=>{"use strict";function sA(){}zc.exports=sA});var Jc=u((tO,Kc)=>{"use strict";var Pr=tr(),oA=Gc(),aA=yt(),uA=1/0,cA=Pr&&1/aA(new Pr([,-0]))[1]==uA?function(e){return new Pr(e)}:oA;Kc.exports=cA});var Wc=u((rO,Hc)=>{"use strict";var lA=pr(),pA=Vc(),fA=Bc(),dA=fr(),yA=Jc(),mA=yt(),gA=200;function hA(e,t,r){var n=-1,i=pA,s=e.length,o=!0,a=[],c=a;if(r)o=!1,i=fA;else if(s>=gA){var p=t?null:yA(e);if(p)return mA(p);o=!1,i=dA,c=new lA}else c=t?[]:a;e:for(;++n<s;){var f=e[n],b=t?t(f):f;if(f=r||f!==0?f:0,o&&b===b){for(var l=c.length;l--;)if(c[l]===b)continue e;t&&c.push(b),a.push(f)}else i(c,b,r)||(c!==a&&c.push(b),a.push(f))}return a}Hc.exports=hA});var Zc=u((nO,Yc)=>{"use strict";var bA=re(),wA=K();function vA(e){return wA(e)&&bA(e)}Yc.exports=vA});var Qc=u((iO,Xc)=>{"use strict";var xA=hc(),qA=Tc(),IA=Wc(),AA=Zc(),SA=qA(function(e){return IA(xA(e,1,AA,!0))});Xc.exports=SA});var tl=u((sO,el)=>{"use strict";var PA=bt();function kA(e,t){return PA(t,function(r){return e[r]})}el.exports=kA});var nl=u((oO,rl)=>{"use strict";var EA=tl(),OA=ne();function _A(e){return e==null?[]:EA(e,OA(e))}rl.exports=_A});var $=u((aO,il)=>{"use strict";var wt;if(typeof Hr=="function")try{wt={clone:Do(),constant:cr(),each:ea(),filter:Su(),has:Ou(),isArray:N(),isEmpty:Tu(),isFunction:Ee(),isUndefined:Nu(),keys:ne(),map:$u(),reduce:Bu(),size:uc(),transform:lc(),union:Qc(),values:nl()}}catch{}wt||(wt=window._);il.exports=wt});var vt=u((cO,ul)=>{"use strict";var A=$();ul.exports=k;var TA="\0",le="\0",sl="";function k(e){this._isDirected=A.has(e,"directed")?e.directed:!0,this._isMultigraph=A.has(e,"multigraph")?e.multigraph:!1,this._isCompound=A.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=A.constant(void 0),this._defaultEdgeLabelFn=A.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[le]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}k.prototype._nodeCount=0;k.prototype._edgeCount=0;k.prototype.isDirected=function(){return this._isDirected};k.prototype.isMultigraph=function(){return this._isMultigraph};k.prototype.isCompound=function(){return this._isCompound};k.prototype.setGraph=function(e){return this._label=e,this};k.prototype.graph=function(){return this._label};k.prototype.setDefaultNodeLabel=function(e){return A.isFunction(e)||(e=A.constant(e)),this._defaultNodeLabelFn=e,this};k.prototype.nodeCount=function(){return this._nodeCount};k.prototype.nodes=function(){return A.keys(this._nodes)};k.prototype.sources=function(){var e=this;return A.filter(this.nodes(),function(t){return A.isEmpty(e._in[t])})};k.prototype.sinks=function(){var e=this;return A.filter(this.nodes(),function(t){return A.isEmpty(e._out[t])})};k.prototype.setNodes=function(e,t){var r=arguments,n=this;return A.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};k.prototype.setNode=function(e,t){return A.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=le,this._children[e]={},this._children[le][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};k.prototype.node=function(e){return this._nodes[e]};k.prototype.hasNode=function(e){return A.has(this._nodes,e)};k.prototype.removeNode=function(e){var t=this;if(A.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],A.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),A.each(A.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],A.each(A.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};k.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(A.isUndefined(t))t=le;else{t+="";for(var r=t;!A.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};k.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};k.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==le)return t}};k.prototype.children=function(e){if(A.isUndefined(e)&&(e=le),this._isCompound){var t=this._children[e];if(t)return A.keys(t)}else{if(e===le)return this.nodes();if(this.hasNode(e))return[]}};k.prototype.predecessors=function(e){var t=this._preds[e];if(t)return A.keys(t)};k.prototype.successors=function(e){var t=this._sucs[e];if(t)return A.keys(t)};k.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return A.union(t,this.successors(e))};k.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};k.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;A.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),A.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&A.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};k.prototype.setDefaultEdgeLabel=function(e){return A.isFunction(e)||(e=A.constant(e)),this._defaultEdgeLabelFn=e,this};k.prototype.edgeCount=function(){return this._edgeCount};k.prototype.edges=function(){return A.values(this._edgeObjs)};k.prototype.setPath=function(e,t){var r=this,n=arguments;return A.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};k.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,A.isUndefined(r)||(r=""+r);var o=Be(this._isDirected,e,t,r);if(A.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!A.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var a=jA(this._isDirected,e,t,r);return e=a.v,t=a.w,Object.freeze(a),this._edgeObjs[o]=a,ol(this._preds[t],e),ol(this._sucs[e],t),this._in[t][o]=a,this._out[e][o]=a,this._edgeCount++,this};k.prototype.edge=function(e,t,r){var n=arguments.length===1?kr(this._isDirected,arguments[0]):Be(this._isDirected,e,t,r);return this._edgeLabels[n]};k.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?kr(this._isDirected,arguments[0]):Be(this._isDirected,e,t,r);return A.has(this._edgeLabels,n)};k.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?kr(this._isDirected,arguments[0]):Be(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],al(this._preds[t],e),al(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};k.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=A.values(r);return t?A.filter(n,function(i){return i.v===t}):n}};k.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=A.values(r);return t?A.filter(n,function(i){return i.w===t}):n}};k.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function ol(e,t){e[t]?e[t]++:e[t]=1}function al(e,t){--e[t]||delete e[t]}function Be(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+sl+s+sl+(A.isUndefined(n)?TA:n)}function jA(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var a={v:i,w:s};return n&&(a.name=n),a}function kr(e,t){return Be(e,t.v,t.w,t.name)}});var ll=u((lO,cl)=>{"use strict";cl.exports="2.1.8"});var fl=u((pO,pl)=>{"use strict";pl.exports={Graph:vt(),version:ll()}});var yl=u((fO,dl)=>{"use strict";var J=$(),NA=vt();dl.exports={write:RA,read:$A};function RA(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:CA(e),edges:MA(e)};return J.isUndefined(e.graph())||(t.value=J.clone(e.graph())),t}function CA(e){return J.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return J.isUndefined(r)||(i.value=r),J.isUndefined(n)||(i.parent=n),i})}function MA(e){return J.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return J.isUndefined(t.name)||(n.name=t.name),J.isUndefined(r)||(n.value=r),n})}function $A(e){var t=new NA(e.options).setGraph(e.value);return J.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),J.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var gl=u((dO,ml)=>{"use strict";var xt=$();ml.exports=DA;function DA(e){var t={},r=[],n;function i(s){xt.has(t,s)||(t[s]=!0,n.push(s),xt.each(e.successors(s),i),xt.each(e.predecessors(s),i))}return xt.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var Er=u((yO,bl)=>{"use strict";var hl=$();bl.exports=F;function F(){this._arr=[],this._keyIndices={}}F.prototype.size=function(){return this._arr.length};F.prototype.keys=function(){return this._arr.map(function(e){return e.key})};F.prototype.has=function(e){return hl.has(this._keyIndices,e)};F.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};F.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};F.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!hl.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};F.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};F.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};F.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};F.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};F.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var Or=u((mO,wl)=>{"use strict";var FA=$(),LA=Er();wl.exports=UA;var VA=FA.constant(1);function UA(e,t,r,n){return BA(e,String(t),r||VA,n||function(i){return e.outEdges(i)})}function BA(e,t,r,n){var i={},s=new LA,o,a,c=function(p){var f=p.v!==o?p.v:p.w,b=i[f],l=r(p),w=a.distance+l;if(l<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+p+" Weight: "+l);w<b.distance&&(b.distance=w,b.predecessor=o,s.decrease(f,w))};for(e.nodes().forEach(function(p){var f=p===t?0:Number.POSITIVE_INFINITY;i[p]={distance:f},s.add(p,f)});s.size()>0&&(o=s.removeMin(),a=i[o],a.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(c);return i}});var xl=u((gO,vl)=>{"use strict";var zA=Or(),GA=$();vl.exports=KA;function KA(e,t,r){return GA.transform(e.nodes(),function(n,i){n[i]=zA(e,i,t,r)},{})}});var _r=u((hO,Il)=>{"use strict";var ql=$();Il.exports=JA;function JA(e){var t=0,r=[],n={},i=[];function s(o){var a=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(f){ql.has(n,f)?n[f].onStack&&(a.lowlink=Math.min(a.lowlink,n[f].index)):(s(f),a.lowlink=Math.min(a.lowlink,n[f].lowlink))}),a.lowlink===a.index){var c=[],p;do p=r.pop(),n[p].onStack=!1,c.push(p);while(o!==p);i.push(c)}}return e.nodes().forEach(function(o){ql.has(n,o)||s(o)}),i}});var Sl=u((bO,Al)=>{"use strict";var HA=$(),WA=_r();Al.exports=YA;function YA(e){return HA.filter(WA(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var kl=u((wO,Pl)=>{"use strict";var ZA=$();Pl.exports=QA;var XA=ZA.constant(1);function QA(e,t,r){return eS(e,t||XA,r||function(n){return e.outEdges(n)})}function eS(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var a=o.v===s?o.w:o.v,c=t(o);n[s][a]={distance:c,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(a){var c=n[a];i.forEach(function(p){var f=c[s],b=o[p],l=c[p],w=f.distance+b.distance;w<l.distance&&(l.distance=w,l.predecessor=b.predecessor)})})}),n}});var Tr=u((vO,Ol)=>{"use strict";var ze=$();Ol.exports=El;El.CycleException=qt;function El(e){var t={},r={},n=[];function i(s){if(ze.has(r,s))throw new qt;ze.has(t,s)||(r[s]=!0,t[s]=!0,ze.each(e.predecessors(s),i),delete r[s],n.push(s))}if(ze.each(e.sinks(),i),ze.size(t)!==e.nodeCount())throw new qt;return n}function qt(){}qt.prototype=new Error});var jl=u((xO,Tl)=>{"use strict";var _l=Tr();Tl.exports=tS;function tS(e){try{_l(e)}catch(t){if(t instanceof _l.CycleException)return!1;throw t}return!0}});var jr=u((qO,Rl)=>{"use strict";var It=$();Rl.exports=rS;function rS(e,t,r){It.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return It.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Nl(e,o,r==="post",s,n,i)}),i}function Nl(e,t,r,n,i,s){It.has(n,t)||(n[t]=!0,r||s.push(t),It.each(i(t),function(o){Nl(e,o,r,n,i,s)}),r&&s.push(t))}});var Ml=u((IO,Cl)=>{"use strict";var nS=jr();Cl.exports=iS;function iS(e,t){return nS(e,t,"post")}});var Dl=u((AO,$l)=>{"use strict";var sS=jr();$l.exports=oS;function oS(e,t){return sS(e,t,"pre")}});var Vl=u((SO,Ll)=>{"use strict";var Fl=$(),aS=vt(),uS=Er();Ll.exports=cS;function cS(e,t){var r=new aS,n={},i=new uS,s;function o(c){var p=c.v===s?c.w:c.v,f=i.priority(p);if(f!==void 0){var b=t(c);b<f&&(n[p]=s,i.decrease(p,b))}}if(e.nodeCount()===0)return r;Fl.each(e.nodes(),function(c){i.add(c,Number.POSITIVE_INFINITY),r.setNode(c)}),i.decrease(e.nodes()[0],0);for(var a=!1;i.size()>0;){if(s=i.removeMin(),Fl.has(n,s))r.setEdge(s,n[s]);else{if(a)throw new Error("Input graph is not connected: "+e);a=!0}e.nodeEdges(s).forEach(o)}return r}});var Bl=u((PO,Ul)=>{"use strict";Ul.exports={components:gl(),dijkstra:Or(),dijkstraAll:xl(),findCycles:Sl(),floydWarshall:kl(),isAcyclic:jl(),postorder:Ml(),preorder:Dl(),prim:Vl(),tarjan:_r(),topsort:Tr()}});var Nr=u((kO,Gl)=>{"use strict";var zl=fl();Gl.exports={Graph:zl.Graph,json:yl(),alg:Bl(),version:zl.version}});var _S={};Ap(_S,{PyretCaptureError:()=>We,PyretDataInstance:()=>Z,SpytialSpecError:()=>X,canon:()=>bp,capturePyret:()=>Ct,constructorDisplayName:()=>V,createPyretDataInstance:()=>vS,createPyretRuntimeAdapter:()=>Ae,diagramTypeNames:()=>AS,generateEdgeId:()=>lp,getSpytialSpec:()=>gp,importPyretCapture:()=>Mt,isPyretDataInstance:()=>xS,prepareDiagram:()=>IS,pyretCaptureSource:()=>fe,readConstructorTypeId:()=>L,reifyToValue:()=>Et,reifyToValues:()=>Je,replit:()=>fe,spytialRulesToYaml:()=>Gr,toDataInstance:()=>qS});var cp=Yr(Nr());var At=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function Kl(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let a=Array.isArray(e.types)?e.types:[],c=e.atoms.map((p,f)=>r(p)??a[f]??"untyped");return{tuple:{...e,types:c},relationTypes:o?[]:c}}function ie(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function Rr(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function Jl(e){if(Rr(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Hl(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function St(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Wl(e,t){let r=[];for(let n in e)(t||!St(e[n]))&&r.push(n);return r}var Pt=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function W(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Yl(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&Pt(t.value))return W(BigInt(t.value));if(t.kind==="rational"&&Pt(t.numerator)&&Pt(t.denominator))return W(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function Zl(e){if(e.startsWith("~"))return Yl({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return W(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?W(i*10n**n):W(i,10n**-n)}function Cr(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(Pt(r))return r}}function Y(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Yl(e.$pyretNumber);if("n"in e&&"d"in e){let n=Cr(e.n),i=Cr(e.d);if(n!==void 0&&i!==void 0)return W(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=Cr(e);if(t!==void 0)return W(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?W(o*10n**BigInt(s)):W(o,10n**BigInt(-s))}}function kt(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function Xl(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var Mr="pyret:field:v1:",$r="pyret:constructor:v1:";function Ql(e,t,r){return $r+JSON.stringify([e,t,r])}function L(e){if(!e.startsWith($r))return;let t=JSON.parse(e.slice($r.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function V(e){return L(e)?.name??e}function z(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,a)=>o?[a]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function ep(e,t){return Mr+JSON.stringify([e.name,t,e.fields[t]])}function qe(e){if(!e.startsWith(Mr))return;let t=JSON.parse(e.slice(Mr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var rp=new Set(["Number","String","Boolean"]),Dr=new Set([...rp,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function Ge(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function tp(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function Ke(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function lS(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=qe(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;tp(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(g=>!r.has(g)))throw new Error("Malformed Pyret relation tuple");let[o,a,c,p]=s.atoms,f=r.get(o).type,b=s.atoms.length;for(let g of s.atoms.slice(1))t.targets.add(g);if(!i&&f!=="Object"){if(n.name==="sealed"&&f==="MutableStringDict"){if(b!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&f==="Reference"){if(b!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Dr.has(f)){if(b!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Dr.has(f)){if(b!==2)throw new Error("Malformed Pyret mutable field positions");let g=t.mutableFields.get(o)??new Set;g.add(Ge(r.get(a))),t.mutableFields.set(o,g);continue}}if(b<2)throw new Error("Malformed Pyret unary relation");if(f==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let g=Ge(r.get(a));if(n.name==="column"&&b===3&&r.get(c)?.type==="String"){let d=t.columns.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret table column positions");d.set(g,c),t.columns.set(o,d)}else if(n.name==="row"){let d=t.rows.get(o)??new Map,y=s.atoms.slice(2);if(d.has(g)&&JSON.stringify(d.get(g))!==JSON.stringify(y))throw new Error("Conflicting Pyret table row positions");if(y.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");d.set(g,y),t.rows.set(o,d)}else throw new Error("Malformed Pyret table relation");continue}if(f==="StringDict"||f==="MutableStringDict"){if(n.name!=="entry"||b!==4||r.get(c)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let g=Ge(r.get(a)),d=t.entries.get(o)??new Map,y=d.get(g);if(y&&(y.key!==c||y.value!==p))throw new Error("Conflicting Pyret dictionary entry positions");d.set(g,{key:c,value:p}),t.entries.set(o,d);continue}if(f==="Reference"){if(n.name!=="target"||b!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==a)throw new Error("Conflicting Pyret reference targets");t.references.set(o,a);continue}if(f==="Tuple"||f==="RawArray"){if(n.name!=="element"||b!==3)throw new Error("Malformed Pyret indexed element");let g=Ge(r.get(a)),d=t.elements.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret element positions");d.set(g,c),t.elements.set(o,d);continue}if(Dr.has(f)&&f!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(f!==i.name||b!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(f==="Object"){if(b!==3||i)throw new Error("Pyret object field must have a position and one value");let g=t.objectPositions.get(o)??new Map;tp(g,n.name,Ge(r.get(a))),t.objectPositions.set(o,g)}let l=t.fields.get(o)??new Map,w=i?.field??n.name,m=l.get(w)??[];for(let g of f==="Object"?[c]:s.atoms.slice(1))m.includes(g)||m.push(g);l.set(w,m),t.fields.set(o,l)}}return t}function pS(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function fS(e){switch(e.type){case"Number":return Xl(Zl(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Fr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function dS(e,t){let n=Z.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Fr)]}return[...t].sort(Fr)}function yS(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function Et(e,t,r={}){let n=Je(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function Je(e,t,r={}){let n=new Map(e.getAtoms().map(y=>[y.id,y])),i=lS(e),{fields:s,targets:o,elements:a,references:c,entries:p}=i,f=new Map,b=0,l=new Set,w=new Map,m=y=>{if(w.has(y)){if(!r.allowContainerCycles&&f.get(y)===b&&l.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(y)}let v=n.get(y);if(!v)throw new Error("Unknown Pyret atom ID: "+y);if(rp.has(v.type)){let S=fS(v);return w.set(y,S),S}let x=pS(v,i);if(x?.kind==="nothing"){let S={$pyretValue:x};return w.set(y,S),S}if(f.set(y,b),x?.kind==="table"){let S=Ke(i.columns.get(y)??new Map,"table columns").map(P=>n.get(P).label);if(new Set(S).size!==S.length)throw new Error("Duplicate Pyret table column name");let h=Ke(i.rows.get(y)??new Map,"table rows");if(h.some(P=>P.length!==S.length))throw new Error("Pyret table row width must match its columns");let q=[],I={$pyretValue:x,dict:{"_header-raw-array":S,"_rows-raw-array":q}};w.set(y,I),l.add(y);for(let P of h)q.push(P.map(m));return l.delete(y),f.delete(y),I}if(x?.kind==="string-dict"){let S=p.get(y)??new Map,h=Ke(S,"dictionary entries"),q={$pyretValue:x,entries:[]};w.set(y,q);let I=new Set;x.mutable&&b++;for(let P of h){let M=n.get(P.key).label;if(I.has(M))throw new Error("Duplicate Pyret dictionary key");I.add(M),q.entries.push([M,m(P.value)])}return x.mutable&&b--,f.delete(y),q}if(x?.kind==="reference"){let S=c.get(y);if(S===void 0)throw new Error("Incomplete Pyret reference target");let h={$pyretValue:x};return w.set(y,h),b++,h.value=m(S),b--,f.delete(y),h}if(x?.kind==="raw-array"||x?.kind==="tuple"){let S=a.get(y)??new Map,h=Ke(S,"container elements"),q=[],I=x.kind==="raw-array"?q:{vals:q};w.set(y,I),l.add(y);for(let P of h)q.push(m(P));return l.delete(y),f.delete(y),I}let E=s.get(y)??new Map,O=Array.from(E.keys()),R=i.constructors.get(v.type),D=x?void 0:i.nullary.has(y)?0:R?.size??(O.length?void 0:-1),G=[...i.mutableFields.get(y)??[]];if(G.some(S=>D===void 0||S>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&yS(O)){let S=[];w.set(y,S);let h=O.slice().sort(Fr);for(let q of h){let I=E.get(q)??[];S.push(I.length===1?m(I[0]):I.map(P=>m(P)))}return f.delete(y),S}let U={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(y,U);let H;if(x?.kind==="object"){let S=i.objectPositions.get(y)??new Map;H=Ke(new Map([...S].map(([h,q])=>[q,h])),"object fields")}else if(D!==void 0){let S=R??new Map,h=Math.max(0,D);if(O.length!==h||S.size!==h||[...S].some(([q,I])=>I>=h||!E.has(q)))throw new Error("Incomplete Pyret constructor fields");H=[...S].sort((q,I)=>q[1]-I[1]).map(([q])=>q),U.$arity=D,U.$constructor={$fieldNames:H},G.length&&(U.$mut_fields_mask=H.map((q,I)=>G.includes(I)))}else H=dS(v.type,O);for(let S of H){let h=E.get(S)??[];if((x?.kind==="object"||D!==void 0)&&h.length!==1)throw new Error("Pyret constructor field must have one value");h.length===1?U.dict[S]=m(h[0]):U.dict[S]=h.map(q=>m(q))}for(let S of G){let h=U.dict[H[S]];if(!h||typeof h!="object"||ie(h)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return f.delete(y),U};if(t!==void 0)return t.map(y=>{if(!n.has(y))throw new Error("Unknown Pyret root ID: "+y);return m(y)});let g=e.getAtoms().map(y=>y.id);if(!g.length)return[];let d=g.filter(y=>!o.has(y));if(d.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[m(d[0])]}function Ie(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||V(String(e.$name))!==t)return!1;let n=z(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function He(e){let t=Ie(e,"list-set",["elems"])?"list-set":Ie(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!Ie(o,"empty",[]);){if(!Ie(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:a,phase:c}=o.pop();if(!Ie(a,"leaf",[])){if(!Ie(a,"branch",["value","h","left","right"]))throw s();if(c==="exit")i.delete(a);else if(c==="emit")n.push(a.dict.value);else{if(i.has(a))throw s();i.add(a),o.push({node:a,phase:"exit"},{node:a.dict.right,phase:"enter"},{node:a,phase:"emit"},{node:a.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function np(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function Ot(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function _t(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function pe(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function ip(e,t,r){let{headers:n,rows:i}=pe(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
|
|
1
|
+
"use strict";var Spyret=(()=>{var xf=Object.create;var Ze=Object.defineProperty;var qf=Object.getOwnPropertyDescriptor;var If=Object.getOwnPropertyNames;var Sf=Object.getPrototypeOf,Af=Object.prototype.hasOwnProperty;var Hr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Pf=(e,t)=>{for(var r in t)Ze(e,r,{get:t[r],enumerable:!0})},Wr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of If(t))!Af.call(e,i)&&i!==r&&Ze(e,i,{get:()=>t[i],enumerable:!(n=qf(t,i))||n.enumerable});return e};var Yr=(e,t,r)=>(r=e!=null?xf(Sf(e)):{},Wr(t||!e||!e.__esModule?Ze(r,"default",{value:e,enumerable:!0}):r,e)),kf=e=>Wr(Ze({},"__esModule",{value:!0}),e);var Xr=a((RA,Zr)=>{"use strict";function Ef(){this.__data__=[],this.size=0}Zr.exports=Ef});var Xe=a((NA,Qr)=>{"use strict";function Of(e,t){return e===t||e!==e&&t!==t}Qr.exports=Of});var Ae=a((CA,en)=>{"use strict";var _f=Xe();function Tf(e,t){for(var r=e.length;r--;)if(_f(e[r][0],t))return r;return-1}en.exports=Tf});var rn=a((MA,tn)=>{"use strict";var jf=Ae(),Rf=Array.prototype,Nf=Rf.splice;function Cf(e){var t=this.__data__,r=jf(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Nf.call(t,r,1),--this.size,!0}tn.exports=Cf});var sn=a(($A,nn)=>{"use strict";var Mf=Ae();function $f(e){var t=this.__data__,r=Mf(t,e);return r<0?void 0:t[r][1]}nn.exports=$f});var an=a((DA,on)=>{"use strict";var Df=Ae();function Ff(e){return Df(this.__data__,e)>-1}on.exports=Ff});var cn=a((FA,un)=>{"use strict";var Lf=Ae();function Vf(e,t){var r=this.__data__,n=Lf(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}un.exports=Vf});var Pe=a((LA,ln)=>{"use strict";var Uf=Xr(),Bf=rn(),Gf=sn(),zf=an(),Kf=cn();function de(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}de.prototype.clear=Uf;de.prototype.delete=Bf;de.prototype.get=Gf;de.prototype.has=zf;de.prototype.set=Kf;ln.exports=de});var pn=a((VA,fn)=>{"use strict";var Jf=Pe();function Hf(){this.__data__=new Jf,this.size=0}fn.exports=Hf});var yn=a((UA,dn)=>{"use strict";function Wf(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}dn.exports=Wf});var gn=a((BA,mn)=>{"use strict";function Yf(e){return this.__data__.get(e)}mn.exports=Yf});var bn=a((GA,hn)=>{"use strict";function Zf(e){return this.__data__.has(e)}hn.exports=Zf});var Lt=a((zA,wn)=>{"use strict";var Xf=typeof global=="object"&&global&&global.Object===Object&&global;wn.exports=Xf});var B=a((KA,vn)=>{"use strict";var Qf=Lt(),ep=typeof self=="object"&&self&&self.Object===Object&&self,tp=Qf||ep||Function("return this")();vn.exports=tp});var oe=a((JA,xn)=>{"use strict";var rp=B(),np=rp.Symbol;xn.exports=np});var An=a((HA,Sn)=>{"use strict";var qn=oe(),In=Object.prototype,ip=In.hasOwnProperty,sp=In.toString,ke=qn?qn.toStringTag:void 0;function op(e){var t=ip.call(e,ke),r=e[ke];try{e[ke]=void 0;var n=!0}catch{}var i=sp.call(e);return n&&(t?e[ke]=r:delete e[ke]),i}Sn.exports=op});var kn=a((WA,Pn)=>{"use strict";var ap=Object.prototype,up=ap.toString;function cp(e){return up.call(e)}Pn.exports=cp});var ae=a((YA,_n)=>{"use strict";var En=oe(),lp=An(),fp=kn(),pp="[object Null]",dp="[object Undefined]",On=En?En.toStringTag:void 0;function yp(e){return e==null?e===void 0?dp:pp:On&&On in Object(e)?lp(e):fp(e)}_n.exports=yp});var ee=a((ZA,Tn)=>{"use strict";function mp(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}Tn.exports=mp});var Ee=a((XA,jn)=>{"use strict";var gp=ae(),hp=ee(),bp="[object AsyncFunction]",wp="[object Function]",vp="[object GeneratorFunction]",xp="[object Proxy]";function qp(e){if(!hp(e))return!1;var t=gp(e);return t==wp||t==vp||t==bp||t==xp}jn.exports=qp});var Nn=a((QA,Rn)=>{"use strict";var Ip=B(),Sp=Ip["__core-js_shared__"];Rn.exports=Sp});var $n=a((eP,Mn)=>{"use strict";var Vt=Nn(),Cn=(function(){var e=/[^.]+$/.exec(Vt&&Vt.keys&&Vt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Ap(e){return!!Cn&&Cn in e}Mn.exports=Ap});var Ut=a((tP,Dn)=>{"use strict";var Pp=Function.prototype,kp=Pp.toString;function Ep(e){if(e!=null){try{return kp.call(e)}catch{}try{return e+""}catch{}}return""}Dn.exports=Ep});var Ln=a((rP,Fn)=>{"use strict";var Op=Ee(),_p=$n(),Tp=ee(),jp=Ut(),Rp=/[\\^$.*+?()[\]{}|]/g,Np=/^\[object .+?Constructor\]$/,Cp=Function.prototype,Mp=Object.prototype,$p=Cp.toString,Dp=Mp.hasOwnProperty,Fp=RegExp("^"+$p.call(Dp).replace(Rp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Lp(e){if(!Tp(e)||_p(e))return!1;var t=Op(e)?Fp:Np;return t.test(jp(e))}Fn.exports=Lp});var Un=a((nP,Vn)=>{"use strict";function Vp(e,t){return e?.[t]}Vn.exports=Vp});var te=a((iP,Bn)=>{"use strict";var Up=Ln(),Bp=Un();function Gp(e,t){var r=Bp(e,t);return Up(r)?r:void 0}Bn.exports=Gp});var Qe=a((sP,Gn)=>{"use strict";var zp=te(),Kp=B(),Jp=zp(Kp,"Map");Gn.exports=Jp});var Oe=a((oP,zn)=>{"use strict";var Hp=te(),Wp=Hp(Object,"create");zn.exports=Wp});var Hn=a((aP,Jn)=>{"use strict";var Kn=Oe();function Yp(){this.__data__=Kn?Kn(null):{},this.size=0}Jn.exports=Yp});var Yn=a((uP,Wn)=>{"use strict";function Zp(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Wn.exports=Zp});var Xn=a((cP,Zn)=>{"use strict";var Xp=Oe(),Qp="__lodash_hash_undefined__",ed=Object.prototype,td=ed.hasOwnProperty;function rd(e){var t=this.__data__;if(Xp){var r=t[e];return r===Qp?void 0:r}return td.call(t,e)?t[e]:void 0}Zn.exports=rd});var ei=a((lP,Qn)=>{"use strict";var nd=Oe(),id=Object.prototype,sd=id.hasOwnProperty;function od(e){var t=this.__data__;return nd?t[e]!==void 0:sd.call(t,e)}Qn.exports=od});var ri=a((fP,ti)=>{"use strict";var ad=Oe(),ud="__lodash_hash_undefined__";function cd(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ad&&t===void 0?ud:t,this}ti.exports=cd});var ii=a((pP,ni)=>{"use strict";var ld=Hn(),fd=Yn(),pd=Xn(),dd=ei(),yd=ri();function ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ye.prototype.clear=ld;ye.prototype.delete=fd;ye.prototype.get=pd;ye.prototype.has=dd;ye.prototype.set=yd;ni.exports=ye});var ai=a((dP,oi)=>{"use strict";var si=ii(),md=Pe(),gd=Qe();function hd(){this.size=0,this.__data__={hash:new si,map:new(gd||md),string:new si}}oi.exports=hd});var ci=a((yP,ui)=>{"use strict";function bd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}ui.exports=bd});var _e=a((mP,li)=>{"use strict";var wd=ci();function vd(e,t){var r=e.__data__;return wd(t)?r[typeof t=="string"?"string":"hash"]:r.map}li.exports=vd});var pi=a((gP,fi)=>{"use strict";var xd=_e();function qd(e){var t=xd(this,e).delete(e);return this.size-=t?1:0,t}fi.exports=qd});var yi=a((hP,di)=>{"use strict";var Id=_e();function Sd(e){return Id(this,e).get(e)}di.exports=Sd});var gi=a((bP,mi)=>{"use strict";var Ad=_e();function Pd(e){return Ad(this,e).has(e)}mi.exports=Pd});var bi=a((wP,hi)=>{"use strict";var kd=_e();function Ed(e,t){var r=kd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}hi.exports=Ed});var et=a((vP,wi)=>{"use strict";var Od=ai(),_d=pi(),Td=yi(),jd=gi(),Rd=bi();function me(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}me.prototype.clear=Od;me.prototype.delete=_d;me.prototype.get=Td;me.prototype.has=jd;me.prototype.set=Rd;wi.exports=me});var xi=a((xP,vi)=>{"use strict";var Nd=Pe(),Cd=Qe(),Md=et(),$d=200;function Dd(e,t){var r=this.__data__;if(r instanceof Nd){var n=r.__data__;if(!Cd||n.length<$d-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Md(n)}return r.set(e,t),this.size=r.size,this}vi.exports=Dd});var tt=a((qP,qi)=>{"use strict";var Fd=Pe(),Ld=pn(),Vd=yn(),Ud=gn(),Bd=bn(),Gd=xi();function ge(e){var t=this.__data__=new Fd(e);this.size=t.size}ge.prototype.clear=Ld;ge.prototype.delete=Vd;ge.prototype.get=Ud;ge.prototype.has=Bd;ge.prototype.set=Gd;qi.exports=ge});var rt=a((IP,Ii)=>{"use strict";function zd(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}Ii.exports=zd});var Bt=a((SP,Si)=>{"use strict";var Kd=te(),Jd=(function(){try{var e=Kd(Object,"defineProperty");return e({},"",{}),e}catch{}})();Si.exports=Jd});var Gt=a((AP,Pi)=>{"use strict";var Ai=Bt();function Hd(e,t,r){t=="__proto__"&&Ai?Ai(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}Pi.exports=Hd});var zt=a((PP,ki)=>{"use strict";var Wd=Gt(),Yd=Xe(),Zd=Object.prototype,Xd=Zd.hasOwnProperty;function Qd(e,t,r){var n=e[t];(!(Xd.call(e,t)&&Yd(n,r))||r===void 0&&!(t in e))&&Wd(e,t,r)}ki.exports=Qd});var Te=a((kP,Ei)=>{"use strict";var ey=zt(),ty=Gt();function ry(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var u=t[s],c=n?n(r[u],e[u],u,r,e):void 0;c===void 0&&(c=e[u]),i?ty(r,u,c):ey(r,u,c)}return r}Ei.exports=ry});var _i=a((EP,Oi)=>{"use strict";function ny(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}Oi.exports=ny});var K=a((OP,Ti)=>{"use strict";function iy(e){return e!=null&&typeof e=="object"}Ti.exports=iy});var Ri=a((_P,ji)=>{"use strict";var sy=ae(),oy=K(),ay="[object Arguments]";function uy(e){return oy(e)&&sy(e)==ay}ji.exports=uy});var je=a((TP,Mi)=>{"use strict";var Ni=Ri(),cy=K(),Ci=Object.prototype,ly=Ci.hasOwnProperty,fy=Ci.propertyIsEnumerable,py=Ni((function(){return arguments})())?Ni:function(e){return cy(e)&&ly.call(e,"callee")&&!fy.call(e,"callee")};Mi.exports=py});var N=a((jP,$i)=>{"use strict";var dy=Array.isArray;$i.exports=dy});var Fi=a((RP,Di)=>{"use strict";function yy(){return!1}Di.exports=yy});var be=a((Re,he)=>{"use strict";var my=B(),gy=Fi(),Ui=typeof Re=="object"&&Re&&!Re.nodeType&&Re,Li=Ui&&typeof he=="object"&&he&&!he.nodeType&&he,hy=Li&&Li.exports===Ui,Vi=hy?my.Buffer:void 0,by=Vi?Vi.isBuffer:void 0,wy=by||gy;he.exports=wy});var Kt=a((NP,Bi)=>{"use strict";var vy=9007199254740991,xy=/^(?:0|[1-9]\d*)$/;function qy(e,t){var r=typeof e;return t=t??vy,!!t&&(r=="number"||r!="symbol"&&xy.test(e))&&e>-1&&e%1==0&&e<t}Bi.exports=qy});var nt=a((CP,Gi)=>{"use strict";var Iy=9007199254740991;function Sy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Iy}Gi.exports=Sy});var Ki=a((MP,zi)=>{"use strict";var Ay=ae(),Py=nt(),ky=K(),Ey="[object Arguments]",Oy="[object Array]",_y="[object Boolean]",Ty="[object Date]",jy="[object Error]",Ry="[object Function]",Ny="[object Map]",Cy="[object Number]",My="[object Object]",$y="[object RegExp]",Dy="[object Set]",Fy="[object String]",Ly="[object WeakMap]",Vy="[object ArrayBuffer]",Uy="[object DataView]",By="[object Float32Array]",Gy="[object Float64Array]",zy="[object Int8Array]",Ky="[object Int16Array]",Jy="[object Int32Array]",Hy="[object Uint8Array]",Wy="[object Uint8ClampedArray]",Yy="[object Uint16Array]",Zy="[object Uint32Array]",T={};T[By]=T[Gy]=T[zy]=T[Ky]=T[Jy]=T[Hy]=T[Wy]=T[Yy]=T[Zy]=!0;T[Ey]=T[Oy]=T[Vy]=T[_y]=T[Uy]=T[Ty]=T[jy]=T[Ry]=T[Ny]=T[Cy]=T[My]=T[$y]=T[Dy]=T[Fy]=T[Ly]=!1;function Xy(e){return ky(e)&&Py(e.length)&&!!T[Ay(e)]}zi.exports=Xy});var it=a(($P,Ji)=>{"use strict";function Qy(e){return function(t){return e(t)}}Ji.exports=Qy});var st=a((Ne,we)=>{"use strict";var em=Lt(),Hi=typeof Ne=="object"&&Ne&&!Ne.nodeType&&Ne,Ce=Hi&&typeof we=="object"&&we&&!we.nodeType&&we,tm=Ce&&Ce.exports===Hi,Jt=tm&&em.process,rm=(function(){try{var e=Ce&&Ce.require&&Ce.require("util").types;return e||Jt&&Jt.binding&&Jt.binding("util")}catch{}})();we.exports=rm});var Me=a((DP,Zi)=>{"use strict";var nm=Ki(),im=it(),Wi=st(),Yi=Wi&&Wi.isTypedArray,sm=Yi?im(Yi):nm;Zi.exports=sm});var Ht=a((FP,Xi)=>{"use strict";var om=_i(),am=je(),um=N(),cm=be(),lm=Kt(),fm=Me(),pm=Object.prototype,dm=pm.hasOwnProperty;function ym(e,t){var r=um(e),n=!r&&am(e),i=!r&&!n&&cm(e),s=!r&&!n&&!i&&fm(e),o=r||n||i||s,u=o?om(e.length,String):[],c=u.length;for(var f in e)(t||dm.call(e,f))&&!(o&&(f=="length"||i&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||lm(f,c)))&&u.push(f);return u}Xi.exports=ym});var $e=a((LP,Qi)=>{"use strict";var mm=Object.prototype;function gm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||mm;return e===r}Qi.exports=gm});var Wt=a((VP,es)=>{"use strict";function hm(e,t){return function(r){return e(t(r))}}es.exports=hm});var rs=a((UP,ts)=>{"use strict";var bm=Wt(),wm=bm(Object.keys,Object);ts.exports=wm});var ot=a((BP,ns)=>{"use strict";var vm=$e(),xm=rs(),qm=Object.prototype,Im=qm.hasOwnProperty;function Sm(e){if(!vm(e))return xm(e);var t=[];for(var r in Object(e))Im.call(e,r)&&r!="constructor"&&t.push(r);return t}ns.exports=Sm});var re=a((GP,is)=>{"use strict";var Am=Ee(),Pm=nt();function km(e){return e!=null&&Pm(e.length)&&!Am(e)}is.exports=km});var ne=a((zP,ss)=>{"use strict";var Em=Ht(),Om=ot(),_m=re();function Tm(e){return _m(e)?Em(e):Om(e)}ss.exports=Tm});var as=a((KP,os)=>{"use strict";var jm=Te(),Rm=ne();function Nm(e,t){return e&&jm(t,Rm(t),e)}os.exports=Nm});var cs=a((JP,us)=>{"use strict";function Cm(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}us.exports=Cm});var fs=a((HP,ls)=>{"use strict";var Mm=ee(),$m=$e(),Dm=cs(),Fm=Object.prototype,Lm=Fm.hasOwnProperty;function Vm(e){if(!Mm(e))return Dm(e);var t=$m(e),r=[];for(var n in e)n=="constructor"&&(t||!Lm.call(e,n))||r.push(n);return r}ls.exports=Vm});var at=a((WP,ps)=>{"use strict";var Um=Ht(),Bm=fs(),Gm=re();function zm(e){return Gm(e)?Um(e,!0):Bm(e)}ps.exports=zm});var ys=a((YP,ds)=>{"use strict";var Km=Te(),Jm=at();function Hm(e,t){return e&&Km(t,Jm(t),e)}ds.exports=Hm});var ws=a((De,ve)=>{"use strict";var Wm=B(),bs=typeof De=="object"&&De&&!De.nodeType&&De,ms=bs&&typeof ve=="object"&&ve&&!ve.nodeType&&ve,Ym=ms&&ms.exports===bs,gs=Ym?Wm.Buffer:void 0,hs=gs?gs.allocUnsafe:void 0;function Zm(e,t){if(t)return e.slice();var r=e.length,n=hs?hs(r):new e.constructor(r);return e.copy(n),n}ve.exports=Zm});var xs=a((ZP,vs)=>{"use strict";function Xm(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}vs.exports=Xm});var Yt=a((XP,qs)=>{"use strict";function Qm(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}qs.exports=Qm});var Zt=a((QP,Is)=>{"use strict";function eg(){return[]}Is.exports=eg});var ut=a((ek,As)=>{"use strict";var tg=Yt(),rg=Zt(),ng=Object.prototype,ig=ng.propertyIsEnumerable,Ss=Object.getOwnPropertySymbols,sg=Ss?function(e){return e==null?[]:(e=Object(e),tg(Ss(e),function(t){return ig.call(e,t)}))}:rg;As.exports=sg});var ks=a((tk,Ps)=>{"use strict";var og=Te(),ag=ut();function ug(e,t){return og(e,ag(e),t)}Ps.exports=ug});var ct=a((rk,Es)=>{"use strict";function cg(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}Es.exports=cg});var lt=a((nk,Os)=>{"use strict";var lg=Wt(),fg=lg(Object.getPrototypeOf,Object);Os.exports=fg});var Xt=a((ik,_s)=>{"use strict";var pg=ct(),dg=lt(),yg=ut(),mg=Zt(),gg=Object.getOwnPropertySymbols,hg=gg?function(e){for(var t=[];e;)pg(t,yg(e)),e=dg(e);return t}:mg;_s.exports=hg});var js=a((sk,Ts)=>{"use strict";var bg=Te(),wg=Xt();function vg(e,t){return bg(e,wg(e),t)}Ts.exports=vg});var Qt=a((ok,Rs)=>{"use strict";var xg=ct(),qg=N();function Ig(e,t,r){var n=t(e);return qg(e)?n:xg(n,r(e))}Rs.exports=Ig});var er=a((ak,Ns)=>{"use strict";var Sg=Qt(),Ag=ut(),Pg=ne();function kg(e){return Sg(e,Pg,Ag)}Ns.exports=kg});var Ms=a((uk,Cs)=>{"use strict";var Eg=Qt(),Og=Xt(),_g=at();function Tg(e){return Eg(e,_g,Og)}Cs.exports=Tg});var Ds=a((ck,$s)=>{"use strict";var jg=te(),Rg=B(),Ng=jg(Rg,"DataView");$s.exports=Ng});var Ls=a((lk,Fs)=>{"use strict";var Cg=te(),Mg=B(),$g=Cg(Mg,"Promise");Fs.exports=$g});var tr=a((fk,Vs)=>{"use strict";var Dg=te(),Fg=B(),Lg=Dg(Fg,"Set");Vs.exports=Lg});var Bs=a((pk,Us)=>{"use strict";var Vg=te(),Ug=B(),Bg=Vg(Ug,"WeakMap");Us.exports=Bg});var ce=a((dk,Ys)=>{"use strict";var rr=Ds(),nr=Qe(),ir=Ls(),sr=tr(),or=Bs(),Ws=ae(),xe=Ut(),Gs="[object Map]",Gg="[object Object]",zs="[object Promise]",Ks="[object Set]",Js="[object WeakMap]",Hs="[object DataView]",zg=xe(rr),Kg=xe(nr),Jg=xe(ir),Hg=xe(sr),Wg=xe(or),ue=Ws;(rr&&ue(new rr(new ArrayBuffer(1)))!=Hs||nr&&ue(new nr)!=Gs||ir&&ue(ir.resolve())!=zs||sr&&ue(new sr)!=Ks||or&&ue(new or)!=Js)&&(ue=function(e){var t=Ws(e),r=t==Gg?e.constructor:void 0,n=r?xe(r):"";if(n)switch(n){case zg:return Hs;case Kg:return Gs;case Jg:return zs;case Hg:return Ks;case Wg:return Js}return t});Ys.exports=ue});var Xs=a((yk,Zs)=>{"use strict";var Yg=Object.prototype,Zg=Yg.hasOwnProperty;function Xg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Zg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Zs.exports=Xg});var ar=a((mk,Qs)=>{"use strict";var Qg=B(),eh=Qg.Uint8Array;Qs.exports=eh});var ft=a((gk,to)=>{"use strict";var eo=ar();function th(e){var t=new e.constructor(e.byteLength);return new eo(t).set(new eo(e)),t}to.exports=th});var no=a((hk,ro)=>{"use strict";var rh=ft();function nh(e,t){var r=t?rh(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}ro.exports=nh});var so=a((bk,io)=>{"use strict";var ih=/\w*$/;function sh(e){var t=new e.constructor(e.source,ih.exec(e));return t.lastIndex=e.lastIndex,t}io.exports=sh});var lo=a((wk,co)=>{"use strict";var oo=oe(),ao=oo?oo.prototype:void 0,uo=ao?ao.valueOf:void 0;function oh(e){return uo?Object(uo.call(e)):{}}co.exports=oh});var po=a((vk,fo)=>{"use strict";var ah=ft();function uh(e,t){var r=t?ah(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}fo.exports=uh});var mo=a((xk,yo)=>{"use strict";var ch=ft(),lh=no(),fh=so(),ph=lo(),dh=po(),yh="[object Boolean]",mh="[object Date]",gh="[object Map]",hh="[object Number]",bh="[object RegExp]",wh="[object Set]",vh="[object String]",xh="[object Symbol]",qh="[object ArrayBuffer]",Ih="[object DataView]",Sh="[object Float32Array]",Ah="[object Float64Array]",Ph="[object Int8Array]",kh="[object Int16Array]",Eh="[object Int32Array]",Oh="[object Uint8Array]",_h="[object Uint8ClampedArray]",Th="[object Uint16Array]",jh="[object Uint32Array]";function Rh(e,t,r){var n=e.constructor;switch(t){case qh:return ch(e);case yh:case mh:return new n(+e);case Ih:return lh(e,r);case Sh:case Ah:case Ph:case kh:case Eh:case Oh:case _h:case Th:case jh:return dh(e,r);case gh:return new n;case hh:case vh:return new n(e);case bh:return fh(e);case wh:return new n;case xh:return ph(e)}}yo.exports=Rh});var ur=a((qk,ho)=>{"use strict";var Nh=ee(),go=Object.create,Ch=(function(){function e(){}return function(t){if(!Nh(t))return{};if(go)return go(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();ho.exports=Ch});var wo=a((Ik,bo)=>{"use strict";var Mh=ur(),$h=lt(),Dh=$e();function Fh(e){return typeof e.constructor=="function"&&!Dh(e)?Mh($h(e)):{}}bo.exports=Fh});var xo=a((Sk,vo)=>{"use strict";var Lh=ce(),Vh=K(),Uh="[object Map]";function Bh(e){return Vh(e)&&Lh(e)==Uh}vo.exports=Bh});var Ao=a((Ak,So)=>{"use strict";var Gh=xo(),zh=it(),qo=st(),Io=qo&&qo.isMap,Kh=Io?zh(Io):Gh;So.exports=Kh});var ko=a((Pk,Po)=>{"use strict";var Jh=ce(),Hh=K(),Wh="[object Set]";function Yh(e){return Hh(e)&&Jh(e)==Wh}Po.exports=Yh});var To=a((kk,_o)=>{"use strict";var Zh=ko(),Xh=it(),Eo=st(),Oo=Eo&&Eo.isSet,Qh=Oo?Xh(Oo):Zh;_o.exports=Qh});var Mo=a((Ek,Co)=>{"use strict";var eb=tt(),tb=rt(),rb=zt(),nb=as(),ib=ys(),sb=ws(),ob=xs(),ab=ks(),ub=js(),cb=er(),lb=Ms(),fb=ce(),pb=Xs(),db=mo(),yb=wo(),mb=N(),gb=be(),hb=Ao(),bb=ee(),wb=To(),vb=ne(),xb=at(),qb=1,Ib=2,Sb=4,jo="[object Arguments]",Ab="[object Array]",Pb="[object Boolean]",kb="[object Date]",Eb="[object Error]",Ro="[object Function]",Ob="[object GeneratorFunction]",_b="[object Map]",Tb="[object Number]",No="[object Object]",jb="[object RegExp]",Rb="[object Set]",Nb="[object String]",Cb="[object Symbol]",Mb="[object WeakMap]",$b="[object ArrayBuffer]",Db="[object DataView]",Fb="[object Float32Array]",Lb="[object Float64Array]",Vb="[object Int8Array]",Ub="[object Int16Array]",Bb="[object Int32Array]",Gb="[object Uint8Array]",zb="[object Uint8ClampedArray]",Kb="[object Uint16Array]",Jb="[object Uint32Array]",_={};_[jo]=_[Ab]=_[$b]=_[Db]=_[Pb]=_[kb]=_[Fb]=_[Lb]=_[Vb]=_[Ub]=_[Bb]=_[_b]=_[Tb]=_[No]=_[jb]=_[Rb]=_[Nb]=_[Cb]=_[Gb]=_[zb]=_[Kb]=_[Jb]=!0;_[Eb]=_[Ro]=_[Mb]=!1;function pt(e,t,r,n,i,s){var o,u=t&qb,c=t&Ib,f=t&Sb;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!bb(e))return e;var p=mb(e);if(p){if(o=pb(e),!u)return ob(e,o)}else{var h=fb(e),l=h==Ro||h==Ob;if(gb(e))return sb(e,u);if(h==No||h==jo||l&&!i){if(o=c||l?{}:yb(e),!u)return c?ub(e,ib(o,e)):ab(e,nb(o,e))}else{if(!_[h])return i?e:{};o=db(e,h,u)}}s||(s=new eb);var w=s.get(e);if(w)return w;s.set(e,o),wb(e)?e.forEach(function(d){o.add(pt(d,t,r,d,e,s))}):hb(e)&&e.forEach(function(d,y){o.set(y,pt(d,t,r,y,e,s))});var m=f?c?lb:cb:c?xb:vb,g=p?void 0:m(e);return tb(g||e,function(d,y){g&&(y=d,d=e[y]),rb(o,y,pt(d,t,r,y,e,s))}),o}Co.exports=pt});var Do=a((Ok,$o)=>{"use strict";var Hb=Mo(),Wb=4;function Yb(e){return Hb(e,Wb)}$o.exports=Yb});var cr=a((_k,Fo)=>{"use strict";function Zb(e){return function(){return e}}Fo.exports=Zb});var Vo=a((Tk,Lo)=>{"use strict";function Xb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),u=o.length;u--;){var c=o[e?u:++i];if(r(s[c],c,s)===!1)break}return t}}Lo.exports=Xb});var Bo=a((jk,Uo)=>{"use strict";var Qb=Vo(),ew=Qb();Uo.exports=ew});var lr=a((Rk,Go)=>{"use strict";var tw=Bo(),rw=ne();function nw(e,t){return e&&tw(e,t,rw)}Go.exports=nw});var Ko=a((Nk,zo)=>{"use strict";var iw=re();function sw(e,t){return function(r,n){if(r==null)return r;if(!iw(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}zo.exports=sw});var Fe=a((Ck,Jo)=>{"use strict";var ow=lr(),aw=Ko(),uw=aw(ow);Jo.exports=uw});var Le=a((Mk,Ho)=>{"use strict";function cw(e){return e}Ho.exports=cw});var Yo=a(($k,Wo)=>{"use strict";var lw=Le();function fw(e){return typeof e=="function"?e:lw}Wo.exports=fw});var Xo=a((Dk,Zo)=>{"use strict";var pw=rt(),dw=Fe(),yw=Yo(),mw=N();function gw(e,t){var r=mw(e)?pw:dw;return r(e,yw(t))}Zo.exports=gw});var ea=a((Fk,Qo)=>{"use strict";Qo.exports=Xo()});var ra=a((Lk,ta)=>{"use strict";var hw=Fe();function bw(e,t){var r=[];return hw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}ta.exports=bw});var ia=a((Vk,na)=>{"use strict";var ww="__lodash_hash_undefined__";function vw(e){return this.__data__.set(e,ww),this}na.exports=vw});var oa=a((Uk,sa)=>{"use strict";function xw(e){return this.__data__.has(e)}sa.exports=xw});var fr=a((Bk,aa)=>{"use strict";var qw=et(),Iw=ia(),Sw=oa();function dt(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new qw;++t<r;)this.add(e[t])}dt.prototype.add=dt.prototype.push=Iw;dt.prototype.has=Sw;aa.exports=dt});var ca=a((Gk,ua)=>{"use strict";function Aw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}ua.exports=Aw});var pr=a((zk,la)=>{"use strict";function Pw(e,t){return e.has(t)}la.exports=Pw});var dr=a((Kk,fa)=>{"use strict";var kw=fr(),Ew=ca(),Ow=pr(),_w=1,Tw=2;function jw(e,t,r,n,i,s){var o=r&_w,u=e.length,c=t.length;if(u!=c&&!(o&&c>u))return!1;var f=s.get(e),p=s.get(t);if(f&&p)return f==t&&p==e;var h=-1,l=!0,w=r&Tw?new kw:void 0;for(s.set(e,t),s.set(t,e);++h<u;){var m=e[h],g=t[h];if(n)var d=o?n(g,m,h,t,e,s):n(m,g,h,e,t,s);if(d!==void 0){if(d)continue;l=!1;break}if(w){if(!Ew(t,function(y,v){if(!Ow(w,v)&&(m===y||i(m,y,r,n,s)))return w.push(v)})){l=!1;break}}else if(!(m===g||i(m,g,r,n,s))){l=!1;break}}return s.delete(e),s.delete(t),l}fa.exports=jw});var da=a((Jk,pa)=>{"use strict";function Rw(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}pa.exports=Rw});var yt=a((Hk,ya)=>{"use strict";function Nw(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}ya.exports=Nw});var wa=a((Wk,ba)=>{"use strict";var ma=oe(),ga=ar(),Cw=Xe(),Mw=dr(),$w=da(),Dw=yt(),Fw=1,Lw=2,Vw="[object Boolean]",Uw="[object Date]",Bw="[object Error]",Gw="[object Map]",zw="[object Number]",Kw="[object RegExp]",Jw="[object Set]",Hw="[object String]",Ww="[object Symbol]",Yw="[object ArrayBuffer]",Zw="[object DataView]",ha=ma?ma.prototype:void 0,yr=ha?ha.valueOf:void 0;function Xw(e,t,r,n,i,s,o){switch(r){case Zw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Yw:return!(e.byteLength!=t.byteLength||!s(new ga(e),new ga(t)));case Vw:case Uw:case zw:return Cw(+e,+t);case Bw:return e.name==t.name&&e.message==t.message;case Kw:case Hw:return e==t+"";case Gw:var u=$w;case Jw:var c=n&Fw;if(u||(u=Dw),e.size!=t.size&&!c)return!1;var f=o.get(e);if(f)return f==t;n|=Lw,o.set(e,t);var p=Mw(u(e),u(t),n,i,s,o);return o.delete(e),p;case Ww:if(yr)return yr.call(e)==yr.call(t)}return!1}ba.exports=Xw});var qa=a((Yk,xa)=>{"use strict";var va=er(),Qw=1,ev=Object.prototype,tv=ev.hasOwnProperty;function rv(e,t,r,n,i,s){var o=r&Qw,u=va(e),c=u.length,f=va(t),p=f.length;if(c!=p&&!o)return!1;for(var h=c;h--;){var l=u[h];if(!(o?l in t:tv.call(t,l)))return!1}var w=s.get(e),m=s.get(t);if(w&&m)return w==t&&m==e;var g=!0;s.set(e,t),s.set(t,e);for(var d=o;++h<c;){l=u[h];var y=e[l],v=t[l];if(n)var x=o?n(v,y,l,t,e,s):n(y,v,l,e,t,s);if(!(x===void 0?y===v||i(y,v,r,n,s):x)){g=!1;break}d||(d=l=="constructor")}if(g&&!d){var E=e.constructor,O=t.constructor;E!=O&&"constructor"in e&&"constructor"in t&&!(typeof E=="function"&&E instanceof E&&typeof O=="function"&&O instanceof O)&&(g=!1)}return s.delete(e),s.delete(t),g}xa.exports=rv});var _a=a((Zk,Oa)=>{"use strict";var mr=tt(),nv=dr(),iv=wa(),sv=qa(),Ia=ce(),Sa=N(),Aa=be(),ov=Me(),av=1,Pa="[object Arguments]",ka="[object Array]",mt="[object Object]",uv=Object.prototype,Ea=uv.hasOwnProperty;function cv(e,t,r,n,i,s){var o=Sa(e),u=Sa(t),c=o?ka:Ia(e),f=u?ka:Ia(t);c=c==Pa?mt:c,f=f==Pa?mt:f;var p=c==mt,h=f==mt,l=c==f;if(l&&Aa(e)){if(!Aa(t))return!1;o=!0,p=!1}if(l&&!p)return s||(s=new mr),o||ov(e)?nv(e,t,r,n,i,s):iv(e,t,c,r,n,i,s);if(!(r&av)){var w=p&&Ea.call(e,"__wrapped__"),m=h&&Ea.call(t,"__wrapped__");if(w||m){var g=w?e.value():e,d=m?t.value():t;return s||(s=new mr),i(g,d,r,n,s)}}return l?(s||(s=new mr),sv(e,t,r,n,i,s)):!1}Oa.exports=cv});var gr=a((Xk,Ra)=>{"use strict";var lv=_a(),Ta=K();function ja(e,t,r,n,i){return e===t?!0:e==null||t==null||!Ta(e)&&!Ta(t)?e!==e&&t!==t:lv(e,t,r,n,ja,i)}Ra.exports=ja});var Ca=a((Qk,Na)=>{"use strict";var fv=tt(),pv=gr(),dv=1,yv=2;function mv(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var u=r[i];if(o&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){u=r[i];var c=u[0],f=e[c],p=u[1];if(o&&u[2]){if(f===void 0&&!(c in e))return!1}else{var h=new fv;if(n)var l=n(f,p,c,e,t,h);if(!(l===void 0?pv(p,f,dv|yv,n,h):l))return!1}}return!0}Na.exports=mv});var hr=a((eE,Ma)=>{"use strict";var gv=ee();function hv(e){return e===e&&!gv(e)}Ma.exports=hv});var Da=a((tE,$a)=>{"use strict";var bv=hr(),wv=ne();function vv(e){for(var t=wv(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,bv(i)]}return t}$a.exports=vv});var br=a((rE,Fa)=>{"use strict";function xv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}Fa.exports=xv});var Va=a((nE,La)=>{"use strict";var qv=Ca(),Iv=Da(),Sv=br();function Av(e){var t=Iv(e);return t.length==1&&t[0][2]?Sv(t[0][0],t[0][1]):function(r){return r===e||qv(r,e,t)}}La.exports=Av});var gt=a((iE,Ua)=>{"use strict";var Pv=ae(),kv=K(),Ev="[object Symbol]";function Ov(e){return typeof e=="symbol"||kv(e)&&Pv(e)==Ev}Ua.exports=Ov});var ht=a((sE,Ba)=>{"use strict";var _v=N(),Tv=gt(),jv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rv=/^\w*$/;function Nv(e,t){if(_v(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Tv(e)?!0:Rv.test(e)||!jv.test(e)||t!=null&&e in Object(t)}Ba.exports=Nv});var Ka=a((oE,za)=>{"use strict";var Ga=et(),Cv="Expected a function";function wr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Cv);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(wr.Cache||Ga),r}wr.Cache=Ga;za.exports=wr});var Ha=a((aE,Ja)=>{"use strict";var Mv=Ka(),$v=500;function Dv(e){var t=Mv(e,function(n){return r.size===$v&&r.clear(),n}),r=t.cache;return t}Ja.exports=Dv});var Ya=a((uE,Wa)=>{"use strict";var Fv=Ha(),Lv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vv=/\\(\\)?/g,Uv=Fv(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Lv,function(r,n,i,s){t.push(i?s.replace(Vv,"$1"):n||r)}),t});Wa.exports=Uv});var bt=a((cE,Za)=>{"use strict";function Bv(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Za.exports=Bv});var nu=a((lE,ru)=>{"use strict";var Xa=oe(),Gv=bt(),zv=N(),Kv=gt(),Jv=1/0,Qa=Xa?Xa.prototype:void 0,eu=Qa?Qa.toString:void 0;function tu(e){if(typeof e=="string")return e;if(zv(e))return Gv(e,tu)+"";if(Kv(e))return eu?eu.call(e):"";var t=e+"";return t=="0"&&1/e==-Jv?"-0":t}ru.exports=tu});var su=a((fE,iu)=>{"use strict";var Hv=nu();function Wv(e){return e==null?"":Hv(e)}iu.exports=Wv});var vr=a((pE,ou)=>{"use strict";var Yv=N(),Zv=ht(),Xv=Ya(),Qv=su();function ex(e,t){return Yv(e)?e:Zv(e,t)?[e]:Xv(Qv(e))}ou.exports=ex});var Ve=a((dE,au)=>{"use strict";var tx=gt(),rx=1/0;function nx(e){if(typeof e=="string"||tx(e))return e;var t=e+"";return t=="0"&&1/e==-rx?"-0":t}au.exports=nx});var xr=a((yE,uu)=>{"use strict";var ix=vr(),sx=Ve();function ox(e,t){t=ix(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[sx(t[r++])];return r&&r==n?e:void 0}uu.exports=ox});var lu=a((mE,cu)=>{"use strict";var ax=xr();function ux(e,t,r){var n=e==null?void 0:ax(e,t);return n===void 0?r:n}cu.exports=ux});var pu=a((gE,fu)=>{"use strict";function cx(e,t){return e!=null&&t in Object(e)}fu.exports=cx});var qr=a((hE,du)=>{"use strict";var lx=vr(),fx=je(),px=N(),dx=Kt(),yx=nt(),mx=Ve();function gx(e,t,r){t=lx(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=mx(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&yx(i)&&dx(o,i)&&(px(e)||fx(e)))}du.exports=gx});var mu=a((bE,yu)=>{"use strict";var hx=pu(),bx=qr();function wx(e,t){return e!=null&&bx(e,t,hx)}yu.exports=wx});var hu=a((wE,gu)=>{"use strict";var vx=gr(),xx=lu(),qx=mu(),Ix=ht(),Sx=hr(),Ax=br(),Px=Ve(),kx=1,Ex=2;function Ox(e,t){return Ix(e)&&Sx(t)?Ax(Px(e),t):function(r){var n=xx(r,e);return n===void 0&&n===t?qx(r,e):vx(t,n,kx|Ex)}}gu.exports=Ox});var Ir=a((vE,bu)=>{"use strict";function _x(e){return function(t){return t?.[e]}}bu.exports=_x});var vu=a((xE,wu)=>{"use strict";var Tx=xr();function jx(e){return function(t){return Tx(t,e)}}wu.exports=jx});var qu=a((qE,xu)=>{"use strict";var Rx=Ir(),Nx=vu(),Cx=ht(),Mx=Ve();function $x(e){return Cx(e)?Rx(Mx(e)):Nx(e)}xu.exports=$x});var Ue=a((IE,Iu)=>{"use strict";var Dx=Va(),Fx=hu(),Lx=Le(),Vx=N(),Ux=qu();function Bx(e){return typeof e=="function"?e:e==null?Lx:typeof e=="object"?Vx(e)?Fx(e[0],e[1]):Dx(e):Ux(e)}Iu.exports=Bx});var Au=a((SE,Su)=>{"use strict";var Gx=Yt(),zx=ra(),Kx=Ue(),Jx=N();function Hx(e,t){var r=Jx(e)?Gx:zx;return r(e,Kx(t,3))}Su.exports=Hx});var ku=a((AE,Pu)=>{"use strict";var Wx=Object.prototype,Yx=Wx.hasOwnProperty;function Zx(e,t){return e!=null&&Yx.call(e,t)}Pu.exports=Zx});var Ou=a((PE,Eu)=>{"use strict";var Xx=ku(),Qx=qr();function eq(e,t){return e!=null&&Qx(e,t,Xx)}Eu.exports=eq});var Tu=a((kE,_u)=>{"use strict";var tq=ot(),rq=ce(),nq=je(),iq=N(),sq=re(),oq=be(),aq=$e(),uq=Me(),cq="[object Map]",lq="[object Set]",fq=Object.prototype,pq=fq.hasOwnProperty;function dq(e){if(e==null)return!0;if(sq(e)&&(iq(e)||typeof e=="string"||typeof e.splice=="function"||oq(e)||uq(e)||nq(e)))return!e.length;var t=rq(e);if(t==cq||t==lq)return!e.size;if(aq(e))return!tq(e).length;for(var r in e)if(pq.call(e,r))return!1;return!0}_u.exports=dq});var Ru=a((EE,ju)=>{"use strict";function yq(e){return e===void 0}ju.exports=yq});var Cu=a((OE,Nu)=>{"use strict";var mq=Fe(),gq=re();function hq(e,t){var r=-1,n=gq(e)?Array(e.length):[];return mq(e,function(i,s,o){n[++r]=t(i,s,o)}),n}Nu.exports=hq});var $u=a((_E,Mu)=>{"use strict";var bq=bt(),wq=Ue(),vq=Cu(),xq=N();function qq(e,t){var r=xq(e)?bq:vq;return r(e,wq(t,3))}Mu.exports=qq});var Fu=a((TE,Du)=>{"use strict";function Iq(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}Du.exports=Iq});var Vu=a((jE,Lu)=>{"use strict";function Sq(e,t,r,n,i){return i(e,function(s,o,u){r=n?(n=!1,s):t(r,s,o,u)}),r}Lu.exports=Sq});var Bu=a((RE,Uu)=>{"use strict";var Aq=Fu(),Pq=Fe(),kq=Ue(),Eq=Vu(),Oq=N();function _q(e,t,r){var n=Oq(e)?Aq:Eq,i=arguments.length<3;return n(e,kq(t,4),r,i,Pq)}Uu.exports=_q});var zu=a((NE,Gu)=>{"use strict";var Tq=ae(),jq=N(),Rq=K(),Nq="[object String]";function Cq(e){return typeof e=="string"||!jq(e)&&Rq(e)&&Tq(e)==Nq}Gu.exports=Cq});var Ju=a((CE,Ku)=>{"use strict";var Mq=Ir(),$q=Mq("length");Ku.exports=$q});var Wu=a((ME,Hu)=>{"use strict";var Dq="\\ud800-\\udfff",Fq="\\u0300-\\u036f",Lq="\\ufe20-\\ufe2f",Vq="\\u20d0-\\u20ff",Uq=Fq+Lq+Vq,Bq="\\ufe0e\\ufe0f",Gq="\\u200d",zq=RegExp("["+Gq+Dq+Uq+Bq+"]");function Kq(e){return zq.test(e)}Hu.exports=Kq});var ic=a(($E,nc)=>{"use strict";var Zu="\\ud800-\\udfff",Jq="\\u0300-\\u036f",Hq="\\ufe20-\\ufe2f",Wq="\\u20d0-\\u20ff",Yq=Jq+Hq+Wq,Zq="\\ufe0e\\ufe0f",Xq="["+Zu+"]",Sr="["+Yq+"]",Ar="\\ud83c[\\udffb-\\udfff]",Qq="(?:"+Sr+"|"+Ar+")",Xu="[^"+Zu+"]",Qu="(?:\\ud83c[\\udde6-\\uddff]){2}",ec="[\\ud800-\\udbff][\\udc00-\\udfff]",eI="\\u200d",tc=Qq+"?",rc="["+Zq+"]?",tI="(?:"+eI+"(?:"+[Xu,Qu,ec].join("|")+")"+rc+tc+")*",rI=rc+tc+tI,nI="(?:"+[Xu+Sr+"?",Sr,Qu,ec,Xq].join("|")+")",Yu=RegExp(Ar+"(?="+Ar+")|"+nI+rI,"g");function iI(e){for(var t=Yu.lastIndex=0;Yu.test(e);)++t;return t}nc.exports=iI});var oc=a((DE,sc)=>{"use strict";var sI=Ju(),oI=Wu(),aI=ic();function uI(e){return oI(e)?aI(e):sI(e)}sc.exports=uI});var uc=a((FE,ac)=>{"use strict";var cI=ot(),lI=ce(),fI=re(),pI=zu(),dI=oc(),yI="[object Map]",mI="[object Set]";function gI(e){if(e==null)return 0;if(fI(e))return pI(e)?dI(e):e.length;var t=lI(e);return t==yI||t==mI?e.size:cI(e).length}ac.exports=gI});var lc=a((LE,cc)=>{"use strict";var hI=rt(),bI=ur(),wI=lr(),vI=Ue(),xI=lt(),qI=N(),II=be(),SI=Ee(),AI=ee(),PI=Me();function kI(e,t,r){var n=qI(e),i=n||II(e)||PI(e);if(t=vI(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:AI(e)?r=SI(s)?bI(xI(e)):{}:r={}}return(i?hI:wI)(e,function(o,u,c){return t(r,o,u,c)}),r}cc.exports=kI});var yc=a((VE,dc)=>{"use strict";var fc=oe(),EI=je(),OI=N(),pc=fc?fc.isConcatSpreadable:void 0;function _I(e){return OI(e)||EI(e)||!!(pc&&e&&e[pc])}dc.exports=_I});var hc=a((UE,gc)=>{"use strict";var TI=ct(),jI=yc();function mc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=jI),i||(i=[]);++s<o;){var u=e[s];t>0&&r(u)?t>1?mc(u,t-1,r,n,i):TI(i,u):n||(i[i.length]=u)}return i}gc.exports=mc});var wc=a((BE,bc)=>{"use strict";function RI(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}bc.exports=RI});var qc=a((GE,xc)=>{"use strict";var NI=wc(),vc=Math.max;function CI(e,t,r){return t=vc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=vc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=r(o),NI(e,this,u)}}xc.exports=CI});var Ac=a((zE,Sc)=>{"use strict";var MI=cr(),Ic=Bt(),$I=Le(),DI=Ic?function(e,t){return Ic(e,"toString",{configurable:!0,enumerable:!1,value:MI(t),writable:!0})}:$I;Sc.exports=DI});var kc=a((KE,Pc)=>{"use strict";var FI=800,LI=16,VI=Date.now;function UI(e){var t=0,r=0;return function(){var n=VI(),i=LI-(n-r);if(r=n,i>0){if(++t>=FI)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Pc.exports=UI});var Oc=a((JE,Ec)=>{"use strict";var BI=Ac(),GI=kc(),zI=GI(BI);Ec.exports=zI});var Tc=a((HE,_c)=>{"use strict";var KI=Le(),JI=qc(),HI=Oc();function WI(e,t){return HI(JI(e,t,KI),e+"")}_c.exports=WI});var Rc=a((WE,jc)=>{"use strict";function YI(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}jc.exports=YI});var Cc=a((YE,Nc)=>{"use strict";function ZI(e){return e!==e}Nc.exports=ZI});var $c=a((ZE,Mc)=>{"use strict";function XI(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}Mc.exports=XI});var Fc=a((XE,Dc)=>{"use strict";var QI=Rc(),eS=Cc(),tS=$c();function rS(e,t,r){return t===t?tS(e,t,r):QI(e,eS,r)}Dc.exports=rS});var Vc=a((QE,Lc)=>{"use strict";var nS=Fc();function iS(e,t){var r=e==null?0:e.length;return!!r&&nS(e,t,0)>-1}Lc.exports=iS});var Bc=a((eO,Uc)=>{"use strict";function sS(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Uc.exports=sS});var zc=a((tO,Gc)=>{"use strict";function oS(){}Gc.exports=oS});var Jc=a((rO,Kc)=>{"use strict";var Pr=tr(),aS=zc(),uS=yt(),cS=1/0,lS=Pr&&1/uS(new Pr([,-0]))[1]==cS?function(e){return new Pr(e)}:aS;Kc.exports=lS});var Wc=a((nO,Hc)=>{"use strict";var fS=fr(),pS=Vc(),dS=Bc(),yS=pr(),mS=Jc(),gS=yt(),hS=200;function bS(e,t,r){var n=-1,i=pS,s=e.length,o=!0,u=[],c=u;if(r)o=!1,i=dS;else if(s>=hS){var f=t?null:mS(e);if(f)return gS(f);o=!1,i=yS,c=new fS}else c=t?[]:u;e:for(;++n<s;){var p=e[n],h=t?t(p):p;if(p=r||p!==0?p:0,o&&h===h){for(var l=c.length;l--;)if(c[l]===h)continue e;t&&c.push(h),u.push(p)}else i(c,h,r)||(c!==u&&c.push(h),u.push(p))}return u}Hc.exports=bS});var Zc=a((iO,Yc)=>{"use strict";var wS=re(),vS=K();function xS(e){return vS(e)&&wS(e)}Yc.exports=xS});var Qc=a((sO,Xc)=>{"use strict";var qS=hc(),IS=Tc(),SS=Wc(),AS=Zc(),PS=IS(function(e){return SS(qS(e,1,AS,!0))});Xc.exports=PS});var tl=a((oO,el)=>{"use strict";var kS=bt();function ES(e,t){return kS(t,function(r){return e[r]})}el.exports=ES});var nl=a((aO,rl)=>{"use strict";var OS=tl(),_S=ne();function TS(e){return e==null?[]:OS(e,_S(e))}rl.exports=TS});var $=a((uO,il)=>{"use strict";var wt;if(typeof Hr=="function")try{wt={clone:Do(),constant:cr(),each:ea(),filter:Au(),has:Ou(),isArray:N(),isEmpty:Tu(),isFunction:Ee(),isUndefined:Ru(),keys:ne(),map:$u(),reduce:Bu(),size:uc(),transform:lc(),union:Qc(),values:nl()}}catch{}wt||(wt=window._);il.exports=wt});var vt=a((lO,ul)=>{"use strict";var S=$();ul.exports=k;var jS="\0",le="\0",sl="";function k(e){this._isDirected=S.has(e,"directed")?e.directed:!0,this._isMultigraph=S.has(e,"multigraph")?e.multigraph:!1,this._isCompound=S.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=S.constant(void 0),this._defaultEdgeLabelFn=S.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[le]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}k.prototype._nodeCount=0;k.prototype._edgeCount=0;k.prototype.isDirected=function(){return this._isDirected};k.prototype.isMultigraph=function(){return this._isMultigraph};k.prototype.isCompound=function(){return this._isCompound};k.prototype.setGraph=function(e){return this._label=e,this};k.prototype.graph=function(){return this._label};k.prototype.setDefaultNodeLabel=function(e){return S.isFunction(e)||(e=S.constant(e)),this._defaultNodeLabelFn=e,this};k.prototype.nodeCount=function(){return this._nodeCount};k.prototype.nodes=function(){return S.keys(this._nodes)};k.prototype.sources=function(){var e=this;return S.filter(this.nodes(),function(t){return S.isEmpty(e._in[t])})};k.prototype.sinks=function(){var e=this;return S.filter(this.nodes(),function(t){return S.isEmpty(e._out[t])})};k.prototype.setNodes=function(e,t){var r=arguments,n=this;return S.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};k.prototype.setNode=function(e,t){return S.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=le,this._children[e]={},this._children[le][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};k.prototype.node=function(e){return this._nodes[e]};k.prototype.hasNode=function(e){return S.has(this._nodes,e)};k.prototype.removeNode=function(e){var t=this;if(S.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],S.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),S.each(S.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],S.each(S.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};k.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(S.isUndefined(t))t=le;else{t+="";for(var r=t;!S.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};k.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};k.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==le)return t}};k.prototype.children=function(e){if(S.isUndefined(e)&&(e=le),this._isCompound){var t=this._children[e];if(t)return S.keys(t)}else{if(e===le)return this.nodes();if(this.hasNode(e))return[]}};k.prototype.predecessors=function(e){var t=this._preds[e];if(t)return S.keys(t)};k.prototype.successors=function(e){var t=this._sucs[e];if(t)return S.keys(t)};k.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return S.union(t,this.successors(e))};k.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};k.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;S.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),S.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&S.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};k.prototype.setDefaultEdgeLabel=function(e){return S.isFunction(e)||(e=S.constant(e)),this._defaultEdgeLabelFn=e,this};k.prototype.edgeCount=function(){return this._edgeCount};k.prototype.edges=function(){return S.values(this._edgeObjs)};k.prototype.setPath=function(e,t){var r=this,n=arguments;return S.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};k.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,S.isUndefined(r)||(r=""+r);var o=Be(this._isDirected,e,t,r);if(S.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!S.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var u=RS(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[o]=u,ol(this._preds[t],e),ol(this._sucs[e],t),this._in[t][o]=u,this._out[e][o]=u,this._edgeCount++,this};k.prototype.edge=function(e,t,r){var n=arguments.length===1?kr(this._isDirected,arguments[0]):Be(this._isDirected,e,t,r);return this._edgeLabels[n]};k.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?kr(this._isDirected,arguments[0]):Be(this._isDirected,e,t,r);return S.has(this._edgeLabels,n)};k.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?kr(this._isDirected,arguments[0]):Be(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],al(this._preds[t],e),al(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};k.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=S.values(r);return t?S.filter(n,function(i){return i.v===t}):n}};k.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=S.values(r);return t?S.filter(n,function(i){return i.w===t}):n}};k.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function ol(e,t){e[t]?e[t]++:e[t]=1}function al(e,t){--e[t]||delete e[t]}function Be(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+sl+s+sl+(S.isUndefined(n)?jS:n)}function RS(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var u={v:i,w:s};return n&&(u.name=n),u}function kr(e,t){return Be(e,t.v,t.w,t.name)}});var ll=a((fO,cl)=>{"use strict";cl.exports="2.1.8"});var pl=a((pO,fl)=>{"use strict";fl.exports={Graph:vt(),version:ll()}});var yl=a((dO,dl)=>{"use strict";var J=$(),NS=vt();dl.exports={write:CS,read:DS};function CS(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:MS(e),edges:$S(e)};return J.isUndefined(e.graph())||(t.value=J.clone(e.graph())),t}function MS(e){return J.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return J.isUndefined(r)||(i.value=r),J.isUndefined(n)||(i.parent=n),i})}function $S(e){return J.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return J.isUndefined(t.name)||(n.name=t.name),J.isUndefined(r)||(n.value=r),n})}function DS(e){var t=new NS(e.options).setGraph(e.value);return J.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),J.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var gl=a((yO,ml)=>{"use strict";var xt=$();ml.exports=FS;function FS(e){var t={},r=[],n;function i(s){xt.has(t,s)||(t[s]=!0,n.push(s),xt.each(e.successors(s),i),xt.each(e.predecessors(s),i))}return xt.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var Er=a((mO,bl)=>{"use strict";var hl=$();bl.exports=F;function F(){this._arr=[],this._keyIndices={}}F.prototype.size=function(){return this._arr.length};F.prototype.keys=function(){return this._arr.map(function(e){return e.key})};F.prototype.has=function(e){return hl.has(this._keyIndices,e)};F.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};F.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};F.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!hl.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};F.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};F.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};F.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};F.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};F.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var Or=a((gO,wl)=>{"use strict";var LS=$(),VS=Er();wl.exports=BS;var US=LS.constant(1);function BS(e,t,r,n){return GS(e,String(t),r||US,n||function(i){return e.outEdges(i)})}function GS(e,t,r,n){var i={},s=new VS,o,u,c=function(f){var p=f.v!==o?f.v:f.w,h=i[p],l=r(f),w=u.distance+l;if(l<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+f+" Weight: "+l);w<h.distance&&(h.distance=w,h.predecessor=o,s.decrease(p,w))};for(e.nodes().forEach(function(f){var p=f===t?0:Number.POSITIVE_INFINITY;i[f]={distance:p},s.add(f,p)});s.size()>0&&(o=s.removeMin(),u=i[o],u.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(c);return i}});var xl=a((hO,vl)=>{"use strict";var zS=Or(),KS=$();vl.exports=JS;function JS(e,t,r){return KS.transform(e.nodes(),function(n,i){n[i]=zS(e,i,t,r)},{})}});var _r=a((bO,Il)=>{"use strict";var ql=$();Il.exports=HS;function HS(e){var t=0,r=[],n={},i=[];function s(o){var u=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(p){ql.has(n,p)?n[p].onStack&&(u.lowlink=Math.min(u.lowlink,n[p].index)):(s(p),u.lowlink=Math.min(u.lowlink,n[p].lowlink))}),u.lowlink===u.index){var c=[],f;do f=r.pop(),n[f].onStack=!1,c.push(f);while(o!==f);i.push(c)}}return e.nodes().forEach(function(o){ql.has(n,o)||s(o)}),i}});var Al=a((wO,Sl)=>{"use strict";var WS=$(),YS=_r();Sl.exports=ZS;function ZS(e){return WS.filter(YS(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var kl=a((vO,Pl)=>{"use strict";var XS=$();Pl.exports=eA;var QS=XS.constant(1);function eA(e,t,r){return tA(e,t||QS,r||function(n){return e.outEdges(n)})}function tA(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var u=o.v===s?o.w:o.v,c=t(o);n[s][u]={distance:c,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(u){var c=n[u];i.forEach(function(f){var p=c[s],h=o[f],l=c[f],w=p.distance+h.distance;w<l.distance&&(l.distance=w,l.predecessor=h.predecessor)})})}),n}});var Tr=a((xO,Ol)=>{"use strict";var Ge=$();Ol.exports=El;El.CycleException=qt;function El(e){var t={},r={},n=[];function i(s){if(Ge.has(r,s))throw new qt;Ge.has(t,s)||(r[s]=!0,t[s]=!0,Ge.each(e.predecessors(s),i),delete r[s],n.push(s))}if(Ge.each(e.sinks(),i),Ge.size(t)!==e.nodeCount())throw new qt;return n}function qt(){}qt.prototype=new Error});var jl=a((qO,Tl)=>{"use strict";var _l=Tr();Tl.exports=rA;function rA(e){try{_l(e)}catch(t){if(t instanceof _l.CycleException)return!1;throw t}return!0}});var jr=a((IO,Nl)=>{"use strict";var It=$();Nl.exports=nA;function nA(e,t,r){It.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return It.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Rl(e,o,r==="post",s,n,i)}),i}function Rl(e,t,r,n,i,s){It.has(n,t)||(n[t]=!0,r||s.push(t),It.each(i(t),function(o){Rl(e,o,r,n,i,s)}),r&&s.push(t))}});var Ml=a((SO,Cl)=>{"use strict";var iA=jr();Cl.exports=sA;function sA(e,t){return iA(e,t,"post")}});var Dl=a((AO,$l)=>{"use strict";var oA=jr();$l.exports=aA;function aA(e,t){return oA(e,t,"pre")}});var Vl=a((PO,Ll)=>{"use strict";var Fl=$(),uA=vt(),cA=Er();Ll.exports=lA;function lA(e,t){var r=new uA,n={},i=new cA,s;function o(c){var f=c.v===s?c.w:c.v,p=i.priority(f);if(p!==void 0){var h=t(c);h<p&&(n[f]=s,i.decrease(f,h))}}if(e.nodeCount()===0)return r;Fl.each(e.nodes(),function(c){i.add(c,Number.POSITIVE_INFINITY),r.setNode(c)}),i.decrease(e.nodes()[0],0);for(var u=!1;i.size()>0;){if(s=i.removeMin(),Fl.has(n,s))r.setEdge(s,n[s]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(s).forEach(o)}return r}});var Bl=a((kO,Ul)=>{"use strict";Ul.exports={components:gl(),dijkstra:Or(),dijkstraAll:xl(),findCycles:Al(),floydWarshall:kl(),isAcyclic:jl(),postorder:Ml(),preorder:Dl(),prim:Vl(),tarjan:_r(),topsort:Tr()}});var Rr=a((EO,zl)=>{"use strict";var Gl=pl();zl.exports={Graph:Gl.Graph,json:yl(),alg:Bl(),version:Gl.version}});var TA={};Pf(TA,{PyretCaptureError:()=>We,PyretDataInstance:()=>Z,SpytialSpecError:()=>X,canon:()=>vf,capturePyret:()=>Ct,constructorDisplayName:()=>V,createPyretDataInstance:()=>xA,createPyretRuntimeAdapter:()=>Se,diagramTypeNames:()=>AA,generateEdgeId:()=>ff,getSpytialSpec:()=>bf,importPyretCapture:()=>Mt,isPyretDataInstance:()=>qA,prepareDiagram:()=>SA,pyretCaptureSource:()=>pe,readConstructorTypeId:()=>L,reifyToValue:()=>Et,reifyToValues:()=>Je,replit:()=>pe,spytialRulesToYaml:()=>zr,toDataInstance:()=>IA});var lf=Yr(Rr());var St=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function Kl(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let u=Array.isArray(e.types)?e.types:[],c=e.atoms.map((f,p)=>r(f)??u[p]??"untyped");return{tuple:{...e,types:c},relationTypes:o?[]:c}}function ie(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function Nr(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function Jl(e){if(Nr(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Hl(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function At(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Wl(e,t){let r=[];for(let n in e)(t||!At(e[n]))&&r.push(n);return r}var Pt=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function W(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Yl(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&Pt(t.value))return W(BigInt(t.value));if(t.kind==="rational"&&Pt(t.numerator)&&Pt(t.denominator))return W(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function Zl(e){if(e.startsWith("~"))return Yl({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return W(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?W(i*10n**n):W(i,10n**-n)}function Cr(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(Pt(r))return r}}function Y(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Yl(e.$pyretNumber);if("n"in e&&"d"in e){let n=Cr(e.n),i=Cr(e.d);if(n!==void 0&&i!==void 0)return W(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=Cr(e);if(t!==void 0)return W(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?W(o*10n**BigInt(s)):W(o,10n**BigInt(-s))}}function kt(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function Xl(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var Mr="pyret:field:v1:",$r="pyret:constructor:v1:";function Ql(e,t,r){return $r+JSON.stringify([e,t,r])}function L(e){if(!e.startsWith($r))return;let t=JSON.parse(e.slice($r.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function V(e){return L(e)?.name??e}function G(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,u)=>o?[u]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function ef(e,t){return Mr+JSON.stringify([e.name,t,e.fields[t]])}function qe(e){if(!e.startsWith(Mr))return;let t=JSON.parse(e.slice(Mr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var rf=new Set(["Number","String","Boolean"]),Dr=new Set([...rf,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function ze(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function tf(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function Ke(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function fA(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=qe(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;tf(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(g=>!r.has(g)))throw new Error("Malformed Pyret relation tuple");let[o,u,c,f]=s.atoms,p=r.get(o).type,h=s.atoms.length;for(let g of s.atoms.slice(1))t.targets.add(g);if(!i&&p!=="Object"){if(n.name==="sealed"&&p==="MutableStringDict"){if(h!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&p==="Reference"){if(h!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Dr.has(p)){if(h!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Dr.has(p)){if(h!==2)throw new Error("Malformed Pyret mutable field positions");let g=t.mutableFields.get(o)??new Set;g.add(ze(r.get(u))),t.mutableFields.set(o,g);continue}}if(h<2)throw new Error("Malformed Pyret unary relation");if(p==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let g=ze(r.get(u));if(n.name==="column"&&h===3&&r.get(c)?.type==="String"){let d=t.columns.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret table column positions");d.set(g,c),t.columns.set(o,d)}else if(n.name==="row"){let d=t.rows.get(o)??new Map,y=s.atoms.slice(2);if(d.has(g)&&JSON.stringify(d.get(g))!==JSON.stringify(y))throw new Error("Conflicting Pyret table row positions");if(y.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");d.set(g,y),t.rows.set(o,d)}else throw new Error("Malformed Pyret table relation");continue}if(p==="StringDict"||p==="MutableStringDict"){if(n.name!=="entry"||h!==4||r.get(c)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let g=ze(r.get(u)),d=t.entries.get(o)??new Map,y=d.get(g);if(y&&(y.key!==c||y.value!==f))throw new Error("Conflicting Pyret dictionary entry positions");d.set(g,{key:c,value:f}),t.entries.set(o,d);continue}if(p==="Reference"){if(n.name!=="target"||h!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==u)throw new Error("Conflicting Pyret reference targets");t.references.set(o,u);continue}if(p==="Tuple"||p==="RawArray"){if(n.name!=="element"||h!==3)throw new Error("Malformed Pyret indexed element");let g=ze(r.get(u)),d=t.elements.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret element positions");d.set(g,c),t.elements.set(o,d);continue}if(Dr.has(p)&&p!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(p!==i.name||h!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(p==="Object"){if(h!==3||i)throw new Error("Pyret object field must have a position and one value");let g=t.objectPositions.get(o)??new Map;tf(g,n.name,ze(r.get(u))),t.objectPositions.set(o,g)}let l=t.fields.get(o)??new Map,w=i?.field??n.name,m=l.get(w)??[];for(let g of p==="Object"?[c]:s.atoms.slice(1))m.includes(g)||m.push(g);l.set(w,m),t.fields.set(o,l)}}return t}function pA(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function dA(e){switch(e.type){case"Number":return Xl(Zl(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Fr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function yA(e,t){let n=Z.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Fr)]}return[...t].sort(Fr)}function mA(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function Et(e,t,r={}){let n=Je(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function Je(e,t,r={}){let n=new Map(e.getAtoms().map(y=>[y.id,y])),i=fA(e),{fields:s,targets:o,elements:u,references:c,entries:f}=i,p=new Map,h=0,l=new Set,w=new Map,m=y=>{if(w.has(y)){if(!r.allowContainerCycles&&p.get(y)===h&&l.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(y)}let v=n.get(y);if(!v)throw new Error("Unknown Pyret atom ID: "+y);if(rf.has(v.type)){let A=dA(v);return w.set(y,A),A}let x=pA(v,i);if(x?.kind==="nothing"){let A={$pyretValue:x};return w.set(y,A),A}if(p.set(y,h),x?.kind==="table"){let A=Ke(i.columns.get(y)??new Map,"table columns").map(P=>n.get(P).label);if(new Set(A).size!==A.length)throw new Error("Duplicate Pyret table column name");let b=Ke(i.rows.get(y)??new Map,"table rows");if(b.some(P=>P.length!==A.length))throw new Error("Pyret table row width must match its columns");let q=[],I={$pyretValue:x,dict:{"_header-raw-array":A,"_rows-raw-array":q}};w.set(y,I),l.add(y);for(let P of b)q.push(P.map(m));return l.delete(y),p.delete(y),I}if(x?.kind==="string-dict"){let A=f.get(y)??new Map,b=Ke(A,"dictionary entries"),q={$pyretValue:x,entries:[]};w.set(y,q);let I=new Set;x.mutable&&h++;for(let P of b){let M=n.get(P.key).label;if(I.has(M))throw new Error("Duplicate Pyret dictionary key");I.add(M),q.entries.push([M,m(P.value)])}return x.mutable&&h--,p.delete(y),q}if(x?.kind==="reference"){let A=c.get(y);if(A===void 0)throw new Error("Incomplete Pyret reference target");let b={$pyretValue:x};return w.set(y,b),h++,b.value=m(A),h--,p.delete(y),b}if(x?.kind==="raw-array"||x?.kind==="tuple"){let A=u.get(y)??new Map,b=Ke(A,"container elements"),q=[],I=x.kind==="raw-array"?q:{vals:q};w.set(y,I),l.add(y);for(let P of b)q.push(m(P));return l.delete(y),p.delete(y),I}let E=s.get(y)??new Map,O=Array.from(E.keys()),C=i.constructors.get(v.type),D=x?void 0:i.nullary.has(y)?0:C?.size??(O.length?void 0:-1),z=[...i.mutableFields.get(y)??[]];if(z.some(A=>D===void 0||A>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&mA(O)){let A=[];w.set(y,A);let b=O.slice().sort(Fr);for(let q of b){let I=E.get(q)??[];A.push(I.length===1?m(I[0]):I.map(P=>m(P)))}return p.delete(y),A}let U={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(y,U);let H;if(x?.kind==="object"){let A=i.objectPositions.get(y)??new Map;H=Ke(new Map([...A].map(([b,q])=>[q,b])),"object fields")}else if(D!==void 0){let A=C??new Map,b=Math.max(0,D);if(O.length!==b||A.size!==b||[...A].some(([q,I])=>I>=b||!E.has(q)))throw new Error("Incomplete Pyret constructor fields");H=[...A].sort((q,I)=>q[1]-I[1]).map(([q])=>q),U.$arity=D,U.$constructor={$fieldNames:H},z.length&&(U.$mut_fields_mask=H.map((q,I)=>z.includes(I)))}else H=yA(v.type,O);for(let A of H){let b=E.get(A)??[];if((x?.kind==="object"||D!==void 0)&&b.length!==1)throw new Error("Pyret constructor field must have one value");b.length===1?U.dict[A]=m(b[0]):U.dict[A]=b.map(q=>m(q))}for(let A of z){let b=U.dict[H[A]];if(!b||typeof b!="object"||ie(b)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return p.delete(y),U};if(t!==void 0)return t.map(y=>{if(!n.has(y))throw new Error("Unknown Pyret root ID: "+y);return m(y)});let g=e.getAtoms().map(y=>y.id);if(!g.length)return[];let d=g.filter(y=>!o.has(y));if(d.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[m(d[0])]}function Ie(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||V(String(e.$name))!==t)return!1;let n=G(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function He(e){let t=Ie(e,"list-set",["elems"])?"list-set":Ie(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!Ie(o,"empty",[]);){if(!Ie(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:u,phase:c}=o.pop();if(!Ie(u,"leaf",[])){if(!Ie(u,"branch",["value","h","left","right"]))throw s();if(c==="exit")i.delete(u);else if(c==="emit")n.push(u.dict.value);else{if(i.has(u))throw s();i.add(u),o.push({node:u,phase:"exit"},{node:u.dict.right,phase:"enter"},{node:u,phase:"emit"},{node:u.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function nf(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function Ot(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function _t(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function fe(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function sf(e,t,r){let{headers:n,rows:i}=fe(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
|
|
2
2
|
spytial-table.add-row([raw-row: ])
|
|
3
3
|
end`:"empty-table([list: ])";let s;try{s=n.map(r)}catch{}return s?`table: ${s.join(", ")}${i.map(o=>`
|
|
4
4
|
row: `+o.map(t).join(", ")).join("")}
|
|
5
|
-
end`:`[table-from-columns: ${n.map((o,
|
|
6
|
-
${x.map(
|
|
5
|
+
end`:`[table-from-columns: ${n.map((o,u)=>`{${t(o)}; [list: ${i.map(c=>t(c[u])).join(", ")}]}`).join(", ")}]`}function of(e,t,r){let n=ie,i=b=>!!b&&typeof b=="object"&&!Y(b)&&n(b)?.kind!=="nothing",s=b=>{if(Array.isArray(b))return b;let q=n(b);if(q?.kind==="reference")return[b.value];if(q?.kind==="string-dict")return b.entries.map(P=>P[1]);if(q?.kind==="table")return fe(b).rows.flat();if(Array.isArray(b.vals))return b.vals;let I=He(b);return I?I.elements:Object.keys(b.dict??{}).map(P=>b.dict[P])},o=new Set,u=new Set,c=new Map,f=!1,p=!1,h=[e];for(;h.length;){let b=h.pop();if(!i(b))continue;if(o.has(b)){f=!0;continue}if(o.add(b),!Array.isArray(b)&&n(b)?.kind==="reference"&&u.add(b),!Array.isArray(b)){let I=n(b);I?.kind==="string-dict"&&I.mutable&&c.set(b,I),I?.kind==="table"&&(p=!0)}let q=s(b);for(let I=q.length-1;I>=0;I--)h.push(q[I])}if(!u.size&&!((c.size||p)&&f))return;let l=new Map,w=new Map,m=new Set(["nothing"]);for(let b of o){if(Array.isArray(b))continue;typeof b.$name=="string"&&m.add(V(b.$name));let q=G(b),I=q?.mutableFields?.map(P=>q.fields[P])??[];w.set(b,I);for(let P of I){let M=b.dict[P];if(!u.has(M))throw new Error("Pyret mutable field must contain a reference");if(l.has(M))throw new Error("A Pyret reference shared by multiple mutable constructor fields cannot be reconstructed");l.set(M,{value:b,field:P})}}let g=0,d=b=>{let q;do q=b+g++;while(m.has(q));return m.add(q),q},y=new Map,v=new Set,x=[],E=new Map,O=b=>!i(b)||v.has(b),C=b=>{if(!i(b))return t(b,C);if(!v.has(b))throw new Error("Unresolved Pyret construction dependency");return y.get(b)};for(let b of o)u.has(b)||y.set(b,d("spytial-value"));if([...u].some(b=>!l.has(b)))throw new Error("Pyret reference source requires a reachable mutable constructor field for each reference");let D=new Map;for(let[b,q]of c){let I=y.get(b),P=q.sealed?d("spytial-dict"):I;x.push(`shadow ${P} = ${t({$pyretValue:{...q,sealed:!1},entries:[]},C)}`),q.sealed&&x.push(`shadow ${I} = ${P}.seal()`),v.add(b),D.set(b,P)}let z=new Map(D),U=()=>{for(let[b,q]of z)if(s(b).every(O)){for(let[I,P]of b.entries)x.push(`${q}.set-now(${C(I)}, ${C(P)})`);z.delete(b)}for(let[b,{owner:q,field:I}]of E)O(b.value)&&(x.push(`${q}!{${r(I)}: ${C(b.value)}}`),E.delete(b))},H=b=>{let q=new Set,I=[b];for(;I.length;){let P=I.pop();if(!(!i(P)||q.has(P))){if(!v.has(P)||z.has(P)||E.has(P))return!1;q.add(P),I.push(...s(P))}}return!0},A=[...o].filter(b=>!u.has(b)&&!c.has(b));for(;A.length;){U();let b=!1;for(let q=0;q<A.length;){let I=A[q],P=Array.isArray(I)?[]:w.get(I)??[],M=I;if(P.length){let Q=I,se={...Q.dict};for(let Kr of P){let Ye=Q.dict[Kr],Jr=n(Ye);se[Kr]=O(Ye.value)?Ye.value:Jr?.kind==="reference"&&Jr.unrestricted?null:Ye.value}M={...Q,dict:se}}if(!s(M).every(O)){q++;continue}if(He(M)&&!s(M).every(H)){q++;continue}let Ft=y.get(I);x.push(`shadow ${Ft} = ${t(M,C)}`),v.add(I);for(let Q of P){let se=I.dict[Q];y.set(se,`${Ft}.${r(Q).trim()}`),v.add(se),(!O(se.value)||M.dict[Q]===null)&&E.set(se,{owner:Ft,field:Q})}A.splice(q,1),b=!0}if(!b)throw new Error("Pyret graph cannot be constructed: cycles need allocatable mutable fields and set elements need complete contents")}return U(),x.push(C(e)),`block:
|
|
6
|
+
${x.map(b=>" "+b).join(`
|
|
7
7
|
`)}
|
|
8
|
-
end`}function Tt(e){let t=n=>{let i=e.dict?.[n];return i&&typeof i.meth=="function"&&typeof i.full_meth=="function"},r=e.$underlyingMap;if(r&&t("keys-list")&&t("get-value")&&t("unfreeze")){if(!Number.isSafeInteger(r.size)||r.size<0||typeof r.keys!="function"||typeof r.get!="function")throw new Error("Malformed Pyret string dictionary backing map");return{kind:"string-dict",mutable:!1,sealed:!1}}if(e.$underlyingDict&&t("keys-list-now")&&t("get-value-now")&&t("freeze")){if(typeof e.$underlyingDict!="object"||e.$sealed!==void 0&&typeof e.$sealed!="boolean")throw new Error("Malformed Pyret mutable string dictionary backing map");return{kind:"string-dict",mutable:!0,sealed:e.$sealed===!0}}}function jt(e,t){let r;if("$pyretValue"in e)r=e.entries;else if(t.mutable)r=Object.entries(e.$underlyingDict);else{let n=e.$underlyingMap,i=n.keys();if(!Array.isArray(i)||i.some(s=>typeof s!="string"))throw new Error("Malformed Pyret dictionary keys");r=i.map(s=>[s,n.get(s)])}if(!Array.isArray(r)||r.some(n=>!Array.isArray(n)||n.length!==2||typeof n[0]!="string")||new Set(r.map(n=>n[0])).size!==r.length)throw new Error("Malformed Pyret dictionary entries");return r}function
|
|
8
|
+
end`}function Tt(e){let t=n=>{let i=e.dict?.[n];return i&&typeof i.meth=="function"&&typeof i.full_meth=="function"},r=e.$underlyingMap;if(r&&t("keys-list")&&t("get-value")&&t("unfreeze")){if(!Number.isSafeInteger(r.size)||r.size<0||typeof r.keys!="function"||typeof r.get!="function")throw new Error("Malformed Pyret string dictionary backing map");return{kind:"string-dict",mutable:!1,sealed:!1}}if(e.$underlyingDict&&t("keys-list-now")&&t("get-value-now")&&t("freeze")){if(typeof e.$underlyingDict!="object"||e.$sealed!==void 0&&typeof e.$sealed!="boolean")throw new Error("Malformed Pyret mutable string dictionary backing map");return{kind:"string-dict",mutable:!0,sealed:e.$sealed===!0}}}function jt(e,t){let r;if("$pyretValue"in e)r=e.entries;else if(t.mutable)r=Object.entries(e.$underlyingDict);else{let n=e.$underlyingMap,i=n.keys();if(!Array.isArray(i)||i.some(s=>typeof s!="string"))throw new Error("Malformed Pyret dictionary keys");r=i.map(s=>[s,n.get(s)])}if(!Array.isArray(r)||r.some(n=>!Array.isArray(n)||n.length!==2||typeof n[0]!="string")||new Set(r.map(n=>n[0])).size!==r.length)throw new Error("Malformed Pyret dictionary entries");return r}function af(e,t,r){let n=e.mutable?"mutable-string-dict":"string-dict",i=[...t];if(!e.mutable&&i.length>8){let s=c=>{let f=0;for(let p=0;p<c.length;p++)f=31*f+c.charCodeAt(p)|0;return f>>>1&1073741824|f&3221225471},o=s(i[8][0]),u=i.findIndex(([c])=>s(c)===o);i.splice(8,0,i.splice(u,1)[0])}return`[${n}: ${i.flatMap(([s,o])=>[r(s),r(o)]).join(", ")}]`+(e.sealed?".seal()":"")}function gA(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"dict"in e}function hA(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/[^\x20-\x7E]/g,t=>"\\u"+t.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0"))+'"'}var bA=new Set(`and as ascending ask by cases check data descending do does-not-raise
|
|
9
9
|
else end examples extend extract false for from fun hiding if import include is is-not is-roughly
|
|
10
10
|
is-not-roughly because lam lazy let letrec load-table method module newtype of or provide provide-types
|
|
11
11
|
raises raises-other-than raises-satisfies raises-violates reactor rec ref sanitize satisfies select
|
|
12
|
-
shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),
|
|
12
|
+
shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),wA=new Set(`function break return do yield throw continue while class interface
|
|
13
13
|
type generator alias extends implements module package namespace public private protected static const
|
|
14
|
-
enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),wS=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function Lr(e){if(hS.has(e)||bS.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return wS.has(e)?e+" ":e}function Vr(e,t,r=n=>Vr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return gS(e);let n=Y(e);if(n)return kt(n);let i=ie(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=ip(e,r,Lr);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=op(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(mS(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=He(e);if(s){let f=np(s,r);return t.delete(e),f}let o=V(e.$name||"object"),a=e.dict||{},c=Object.keys(a),p=i?.kind==="object"?`{${c.map(f=>`${Lr(f)}: ${r(a[f])}`).join(", ")}}`:c.length||e.$arity===0?`${o}(${c.map(f=>r(a[f])).join(", ")})`:o;return t.delete(e),p}return String(e)}function fe(e,t){let r=new Map;for(let i of e.getAtoms()){let s=L(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=Et(e,t);return sp(n,(i,s)=>Vr(i,new Set,s),Lr)??Vr(n,new Set)}function Nt(e){return JSON.stringify(e.atoms)}function ap(e){let t=new Set;return e.filter(r=>{let n=Nt(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function up(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function Ur(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function lp(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var j=class j extends At{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new j,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=j.globalConstructorCache.get(r),s=++j.instantiationCounter;(!i||s>i.instantiation)&&j.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of j.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(j.globalConstructorCache)}static clearGlobalConstructorCache(){j.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await j.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${j.formatError(s.exn)}`);if(j.isPrimitive(s.result)){let o=new j(null,n,i),a=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",c={id:`result_${s.result}`,label:String(s.result),type:a};return o.addAtom(c),o}return new j(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=j.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=j.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:j.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=j.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((a,c)=>a===n.atoms[c])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return fe(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,a,c,p)=>{if(this.isAtomicValue(o)){let f=this.createAtomFromPrimitive(o);this.addRelationTuple(c,{atoms:[...a,f],types:[]},p)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:a,relationId:c,relationName:p}})};for(let o=0;o<i.length;o++){let{obj:a,parentInfo:c}=i[o],p=this.objectToAtomId.get(a);if(p||(p=this.createAtomFromObject(a)),c&&this.addRelationTuple(c.relationId,{atoms:[...c.atoms,p],types:[]},c.relationName),n.has(a))continue;n.add(a);let f=this.valueInfo(a);if(f?.kind==="nothing")continue;if(f?.kind==="table"){this.processTableSemantics(p,a,m=>{if(this.isAtomicValue(m))return this.createAtomFromPrimitive(m);if(St(m)||!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret table cell");let g=m,d=this.objectToAtomId.get(g)??this.createAtomFromObject(g);return i.push({obj:g}),d});continue}if(f?.kind==="string-dict"){f.sealed&&this.addValueFact("sealed",p,"MutableStringDict"),jt(a,f).forEach(([g,d],y)=>{if(!this.isAtomicValue(d)&&!Array.isArray(d)&&!this.isPyretObject(d))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(d,[p,this.createIndexAtom(y),this.createAtomFromPrimitive(g)],v,"entry")});continue}if(f?.kind==="reference"){f.unrestricted&&this.addValueFact("unrestricted",p,"Reference");let m=a.value;if(!this.isAtomicValue(m)&&!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret reference target");let g=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(m,[p],g,"target");continue}if(f?.kind==="tuple"||f?.kind==="raw-array"){let m=Array.isArray(a)?a:a.vals;for(let g=0;g<m.length;g++){let d=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(m[g],[p,this.createIndexAtom(g)],d,"element")}continue}let b=a;this.originalObjects.set(p,b);let l=z(b);l?.arity===0&&this.addValueFact("nullary-constructor",p,"PyretObject");for(let m of l?.mutableFields??[]){let g=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(g,{atoms:[p,this.createIndexAtom(m)],types:[]},"mutable-field")}if(!b.dict||typeof b.dict!="object")continue;let w=l?.fields??(f?.kind==="object"?Wl(b.dict,this.options.showFunctions):Object.keys(b.dict));!f&&!L(this.extractType(b))&&this.cacheConstructorPattern(this.extractType(b),w),w.forEach((m,g)=>{let d=b.dict[m],y=l?ep(l,g):f?.kind==="object"?this.valueRelationId("object-field:"+m,m,["Object","Index","PyretObject"]):m;if(l&&!this.relations.has(y)&&this.relations.set(y,{id:y,name:m,types:[l.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&St(d))return;let v=f?.kind==="object"?[p,this.createIndexAtom(g)]:[p];s(d,v,y,f?.kind==="object"?m:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return ie(r);if(_t(r))throw new Error("Standalone Pyret Row values are not supported");if(Ot(r))return{kind:"table"};let n=Jl(r);if(n)return n;let i=Tt(r);if(i)return i;if(Hl(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!z(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=pe(n),a=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((p,f)=>this.addRelationTuple(a,{atoms:[r,this.createIndexAtom(f),this.createAtomFromPrimitive(p)],types:[]},"column"));let c=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((p,f)=>this.addRelationTuple(c,{atoms:[r,this.createIndexAtom(f),...Array.from(p,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=Y(r),i=n?"Number":this.mapPrimitiveType(r),s=n?kt(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let p=Array.from(this.atoms.values()).find(f=>f.type===i&&f.label===s);if(p)return p.id}let a=this.generateAtomId(i),c={id:a,type:i,label:s};return this.atoms.set(a,c),this.ensureTypeExists(i),a}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let a=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(a){let[,c,p]=a,f=parseInt(p,10);f>n&&(n=f,i=c)}else{let c=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(c){let[,p]=c;(!s||p>s)&&(s=p)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return V(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],a=this.atoms.get(s),c=this.atoms.get(o);if(!a||!c){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let p=this.relations.get(r),f=i??p?.name??qe(r)?.field??r;p&&Ur(p,{...p,name:f});let b=Kl(n,p,w=>this.atoms.get(w)?.type);p?p.types=b.relationTypes:(p={id:r,name:f,types:b.relationTypes,tuples:[]},this.relations.set(r,p)),p.tuples.some(w=>Nt(w)===Nt(n))||(p.tuples.push(b.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:b.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=L(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||Y(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||Rr(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!L(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new cp.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let a=o.atoms[0],c=o.atoms[o.atoms.length-1],p=o.atoms.slice(1,-1),f=s.name;if(p.length>0){let l=p.map(w=>{let m=this.atoms.get(w);return m?m.label:w});f=`${s.name}[${l.join(", ")}]`}let b=lp(s,o);i.setEdge(a,c,f,b)}})}),r||n){let s=[];i.nodes().forEach(o=>{let a=i.inEdges(o)||[],c=i.outEdges(o)||[];if(a.length===0&&c.length===0&&this.atoms.get(o)){let l=this.getAtomType(o).isBuiltin;(r||l&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof j))return!1;let i=r;for(let o of i.getRelations()){let a=this.relations.get(o.id);a&&Ur(a,o)}let s=new Map;return i.getAtoms().forEach(o=>{let a=this.isBuiltinType(o.type);if(n&&a&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let l=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(l){s.set(o.id,l.id);return}}let c=this.generateAtomId(o.type);s.set(o.id,c);let p={...o,id:c};this.addAtom(p);let f=i.originalObjects.get(o.id);f&&this.originalObjects.set(c,f)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(a=>({...a,id:s.get(a.id)||a.id}))});else{let a=this.types.get(o.id),c=o.atoms.map(p=>({...p,id:s.get(p.id)||p.id}));a.atoms.push(...c)}}),i.getRelations().forEach(o=>{let a=o.tuples.map(p=>({atoms:p.atoms.map(f=>s.get(f)||f),types:p.types})),c=this.relations.get(o.id);c?(c.tuples=ap([...c.tuples,...a]),c.types=up(c.tuples,c.types)):this.relations.set(o.id,{...o,tuples:a})}),!0}};j.globalConstructorCache=new Map,j.instantiationCounter=0;var Z=j,vS=(e,t={})=>{try{let r=JSON.parse(e);return new Z(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},xS=e=>e instanceof Z;var pp=Yr(Nr()),Rt=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new pp.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],a=s.atoms[s.atoms.length-1],c=s.atoms.slice(1,-1).map(f=>this.atoms.get(f).label),p=i.name+(c.length?`[${c.join(", ")}]`:"");n.setEdge(o,a,p,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var We=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function fp(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function Ct(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let l of e){if(!l||typeof l.name!="string"||!l.name||n.has(l.name))throw new Error("Capture root names must be nonempty and unique");n.add(l.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,a=[],c=(l,w,m)=>{if(s.has(l))return s.get(l);try{let g=t.observe(l);if(g.kind==="primitive")return g.value;let d;switch(g.kind){case"nothing":d={$pyretValue:{kind:"nothing"}};break;case"raw-array":d=[];break;case"tuple":d={vals:[]};break;case"object":d={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":d={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":d={$pyretValue:{kind:"string-dict",mutable:g.mutable,sealed:g.sealed},entries:[]};break;case"table":d={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let y=JSON.stringify(g.info),v=o.get(g.identity);if(v&&v.schema!==y)throw new Error("Constructor schema changed during capture");v||(v={id:Ql(i,o.size,g.info.name),schema:y},o.set(g.identity,v)),d={$name:v.id,$arity:g.info.arity,$constructor:{$fieldNames:g.info.fields.slice()},$mut_fields_mask:g.info.fields.map((x,E)=>(g.info.mutableFields??[]).includes(E)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(l,d),a.push({carrier:d,observed:g,root:w,path:m}),d}catch(g){throw g instanceof We?g:new We(w,m,g instanceof Error?g.message:String(g))}},p=e.map(l=>c(l.value,l.name,[]));for(let l=0;l<a.length;l++){let{carrier:w,observed:m,root:g,path:d}=a[l],y=(v,...x)=>c(v,g,[...d,...x]);switch(m.kind){case"constructor":m.info.fields.forEach((v,x)=>{w.dict[v]=y(m.values[x],v)});break;case"object":m.fields.forEach(([v,x])=>{w.dict[v]=y(x,v)});break;case"raw-array":m.values.forEach((v,x)=>w.push(y(v,x)));break;case"tuple":m.values.forEach((v,x)=>w.vals.push(y(v,x)));break;case"reference":w.value=y(m.value,"target");break;case"string-dict":m.entries.forEach(([v,x])=>w.entries.push([v,y(x,v)]));break;case"table":w.dict["_header-raw-array"]=m.headers.slice(),w.dict["_rows-raw-array"]=m.rows.map((v,x)=>v.map((E,O)=>y(E,"rows",x,m.headers[O])));break}}let{instance:f,rootIds:b}=Z.fromValues(p);return fp({format:"spytial-pyret-capture",version:1,datum:{atoms:[...f.getAtoms()],relations:[...f.getRelations()],types:[...f.getTypes()]},roots:e.map((l,w)=>({name:l.name,atomId:b[w],...l.observation===void 0?{}:{observation:l.observation}})),...r===void 0?{}:{provenance:r}})}function Mt(e){let t=fp(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let l of t.datum.atoms){if(!l||typeof l.id!="string"||!l.id||r.has(l.id)||typeof l.label!="string"||typeof l.type!="string"||!n.has(l.type)&&!L(l.type))throw new Error("Malformed or duplicate Pyret capture atom");if(l.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(l.label)||!Number.isSafeInteger(Number(l.label))))throw new Error("Malformed Pyret capture index");r.set(l.id,l)}let i=new Set,s=(l,w)=>l===w.type||l==="PyretObject"||!n.has(l)&&l===L(w.type)?.name,o=new Set;for(let l of t.datum.types){if(!l||typeof l.id!="string"||o.has(l.id)||!Array.isArray(l.types)||l.types[0]!==l.id||l.types.some(m=>typeof m!="string")||!Array.isArray(l.atoms)||typeof l.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(l.id);let w=new Set;for(let m of l.atoms){let g=m&&r.get(m.id);if(!g||w.has(m.id)||m.type!==g.type||m.label!==g.label||!s(l.id,g))throw new Error("Invalid Pyret capture type membership");w.add(m.id)}}if([...r.values()].some(l=>!o.has(l.type))||t.datum.types.some(l=>l.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let l of t.datum.relations){if(!l||typeof l.id!="string"||i.has(l.id)||typeof l.name!="string"||!Array.isArray(l.tuples)||!Array.isArray(l.types)||l.types.some(m=>typeof m!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(l.id);let w=new Set;for(let m of l.tuples){if(!m||!Array.isArray(m.atoms)||!m.atoms.length||m.atoms.some(d=>!r.has(d))||!Array.isArray(m.types)||m.types.length!==m.atoms.length||m.types.some((d,y)=>!s(d,r.get(m.atoms[y]))))throw new Error("Malformed Pyret capture tuple");let g=JSON.stringify(m.atoms);if(w.has(g))throw new Error("Duplicate Pyret capture tuple");w.add(g)}}let a=new Set;for(let l of t.roots){if(!l||typeof l.name!="string"||!l.name||a.has(l.name)||!r.has(l.atomId)||r.get(l.atomId).type==="Index")throw new Error("Invalid Pyret capture root");a.add(l.name)}let c=new Rt(t.datum),p=[...r.values()].filter(l=>l.type!=="Index").map(l=>l.id),f=Je(c,p,{allowContainerCycles:!0}),b=new Map(p.map((l,w)=>[l,f[w]]));return{snapshot:t,instance:c,values:new Map(t.roots.map(l=>[l.name,b.get(l.atomId)]))}}function Ae(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=Y(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=z(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i])&&!(i==="_spytial"&&e.isFunction(r.dict[i])))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(_t(r))throw new Error("Unsupported standalone Pyret Row");if(Ot(r))return{kind:"table",...pe(r)};let n=Tt(r);if(n)return{...n,entries:jt(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)s==="_spytial"&&(e.isFunction(r.dict[s])||e.isMethod(r.dict[s]))||i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function qS(e,t){return Mt(Ct([{name:"value",value:e}],Ae(t))).instance}function IS(e,t){let r=Ct([{name:"value",value:e}],Ae(t)),{instance:n}=Mt(r),i;try{i=fe(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function AS(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:V(t.mostSpecificType)}))}}var $t={languageVersion:"2026-09-18",coreVersion:"6.3.2",enums:{TextSize:{"text-size-small":"small","text-size-normal":"normal","text-size-large":"large"},LinePattern:{"line-pattern-solid":"solid","line-pattern-dashed":"dashed","line-pattern-dotted":"dotted"},IconPlacement:{"icon-placement-full":"full","icon-placement-badge":"badge"},Direction:{"direction-above":"above","direction-below":"below","direction-left":"left","direction-right":"right","direction-directly-above":"directlyAbove","direction-directly-below":"directlyBelow","direction-directly-left":"directlyLeft","direction-directly-right":"directlyRight"},Hold:{"hold-always":"always","hold-never":"never"},Rotation:{"rotation-clockwise":"clockwise","rotation-counterclockwise":"counterclockwise"},Alignment:{"alignment-horizontal":"horizontal","alignment-vertical":"vertical"},GroupEdgeDirection:{"group-edge-direction-none":"none","group-edge-direction-togroup":"togroup","group-edge-direction-fromgroup":"fromgroup"},LayoutFlag:{"layout-flag-hide-disconnected":"hideDisconnected","layout-flag-hide-disconnected-built-ins":"hideDisconnectedBuiltIns"}},blocks:{textStyle:{name:"textStyle",typeName:"TextStyle",constructor:"text-style",fields:[{name:"size",pyretName:"size",type:"enum",required:!1,enum:"TextSize"},{name:"color",pyretName:"color",type:"color",required:!1}]},lineStyle:{name:"lineStyle",typeName:"LineStyle",constructor:"line-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"pattern",pyretName:"pattern",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1}]},fillStyle:{name:"fillStyle",typeName:"FillStyle",constructor:"fill-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1}]},borderStyle:{name:"borderStyle",typeName:"BorderStyle",constructor:"border-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"width",pyretName:"width",type:"number",required:!1,exclusiveMinimum:0}]},iconStyle:{name:"iconStyle",typeName:"IconStyle",constructor:"icon-style",fields:[{name:"path",pyretName:"path",type:"icon-path",required:!1},{name:"placement",pyretName:"placement",type:"enum",required:!1,enum:"IconPlacement"},{name:"opacity",pyretName:"opacity",type:"number",required:!1,minimum:0,maximum:1}]},ruleSource:{name:"ruleSource",typeName:"RuleSource",constructor:"rule-source",fields:[{name:"text",pyretName:"text",type:"string",required:!0},{name:"location",pyretName:"location",type:"string",required:!1}]},groupAddEdge:{name:"groupAddEdge",typeName:"GroupAddEdge",constructor:"group-add-edge",fields:[{name:"points",pyretName:"points",type:"enum",required:!1,enum:"GroupEdgeDirection"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"}]}},rules:{orientation:{name:"orientation",yamlKey:"orientation",section:"constraints",shape:"mapping",constructor:"spytial-orientation",optionsConstructor:"orientation-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"directions",pyretName:"directions",type:"enum-list",required:!0,listRules:{atMostOneOf:[["above","below"],["left","right"]],narrowsListTo:{directlyAbove:["above","directlyAbove"],directlyBelow:["below","directlyBelow"],directlyLeft:["left","directlyLeft"],directlyRight:["right","directlyRight"]}},enum:"Direction"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},cyclic:{name:"cyclic",yamlKey:"cyclic",section:"constraints",shape:"mapping",constructor:"spytial-cyclic",optionsConstructor:"cyclic-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!1,enum:"Rotation"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},align:{name:"align",yamlKey:"align",section:"constraints",shape:"mapping",constructor:"spytial-align",optionsConstructor:"align-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!0,enum:"Alignment"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},group:{name:"group",yamlKey:"group",section:"constraints",shape:"mapping",constructor:"spytial-group",optionsConstructor:"group-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"addEdge",pyretName:"add-edge",type:"block",required:!1,block:"groupAddEdge"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},size:{name:"size",yamlKey:"size",section:"constraints",shape:"mapping",constructor:"spytial-size",optionsConstructor:"size-options",fields:[{name:"width",pyretName:"width",type:"number",required:!0,exclusiveMinimum:0},{name:"height",pyretName:"height",type:"number",required:!0,exclusiveMinimum:0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideAtom:{name:"hideAtom",yamlKey:"hideAtom",section:"constraints",shape:"mapping",constructor:"spytial-hide-atom",optionsConstructor:"hide-atom-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},flag:{name:"flag",yamlKey:"flag",section:"directives",shape:"scalar",constructor:"spytial-flag",optionsConstructor:"flag-options",fields:[{name:"flag",pyretName:"name",type:"enum",required:!0,enum:"LayoutFlag"}]},atomStyle:{name:"atomStyle",yamlKey:"atomStyle",section:"directives",shape:"mapping",constructor:"spytial-atom-style",optionsConstructor:"atom-style-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"fillStyle",pyretName:"fill-style",type:"block",required:!1,block:"fillStyle"},{name:"borderStyle",pyretName:"border-style",type:"block",required:!1,block:"borderStyle"},{name:"iconStyle",pyretName:"icon-style",type:"block",required:!1,block:"iconStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeStyle:{name:"edgeStyle",yamlKey:"edgeStyle",section:"directives",shape:"mapping",constructor:"spytial-edge-style",optionsConstructor:"edge-style-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},attribute:{name:"attribute",yamlKey:"attribute",section:"directives",shape:"mapping",constructor:"spytial-attribute",optionsConstructor:"attribute-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},tag:{name:"tag",yamlKey:"tag",section:"directives",shape:"mapping",constructor:"spytial-tag",optionsConstructor:"tag-options",fields:[{name:"toTag",pyretName:"to-tag",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"value",pyretName:"value",type:"selector",required:!0},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideField:{name:"hideField",yamlKey:"hideField",section:"directives",shape:"mapping",constructor:"spytial-hide-field",optionsConstructor:"hide-field-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},inferredEdge:{name:"inferredEdge",yamlKey:"inferredEdge",section:"directives",shape:"mapping",constructor:"spytial-inferred-edge",optionsConstructor:"inferred-edge-options",fields:[{name:"name",pyretName:"name",type:"string",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"draw",pyretName:"draw",type:"string",required:!1,pattern:"^\\s*[^\\s](?:(?!->)[\\s\\S])*->(?:(?!->)[\\s\\S])*[^\\s]\\s*$"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"color",pyretName:"color",type:"color",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},icon:{name:"icon",yamlKey:"icon",section:"directives",shape:"mapping",constructor:"spytial-icon",optionsConstructor:"icon-options",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"path",pyretName:"path",type:"icon-path",required:!0},{name:"showLabels",pyretName:"show-labels",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},atomColor:{name:"atomColor",yamlKey:"atomColor",section:"directives",shape:"mapping",constructor:"spytial-atom-color",optionsConstructor:"atom-color-options",fields:[{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeColor:{name:"edgeColor",yamlKey:"edgeColor",section:"directives",shape:"mapping",constructor:"spytial-edge-color",optionsConstructor:"edge-color-options",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]}}};var X=class extends Error{constructor(r,n){super(`${r}: ${n}`);this.path=r;this.name="SpytialSpecError"}},SS=Object.values($t.rules),PS=$t.blocks,kS=$t.enums;function C(e,t){throw new X(e,t)}function Dt(e,t,r,n,i){if(!t.isDataValue(e))return C(r,`expected ${n}`);let s=e,o=z(s);return s.$name!==n||!o||o.fields.length!==i.length||o.fields.some((a,c)=>a!==i[c])?C(r,`expected ${n}`):s.dict}function dp(e,t,r){let n=new Set,i=[];for(;!t.ffi.isEmpty(e);){if(!t.ffi.isLink(e))return C(r,"expected a Pyret List");if(n.has(e))return C(r,"cyclic rule list");n.add(e);let s=e.dict;i.push(s.first),e=s.rest}return i}function ES(e,t,r,n){if(t.type==="enum"||t.type==="enum-list"){let i=kS[t.enum],s=(a,c)=>{let p=a?.$name;return!p||!Object.prototype.hasOwnProperty.call(i,p)?C(c,`expected ${t.enum}`):(Dt(a,r,c,p,[]),i[p])};if(t.type==="enum")return s(e,n);let o=dp(e,r,n).map((a,c)=>s(a,`${n}[${c}]`));for(let a of t.listRules?.atMostOneOf??[])a.filter(c=>o.includes(c)).length>1&&C(n,"incompatible directions");for(let[a,c]of Object.entries(t.listRules?.narrowsListTo??{}))o.includes(a)&&o.some(p=>!c.includes(p))&&C(n,"incompatible directions");return o}if(t.type==="block")return mp(e,PS[t.block],r,n);if(t.type==="boolean")return typeof e!="boolean"?C(n,"expected Boolean"):e;if(t.type==="number"||t.type==="integer"){if(!r.isNumber(e))return C(n,"expected Number");let i=r.num_to_fixnum(e);return!Number.isFinite(i)||t.type==="integer"&&!Number.isSafeInteger(i)||t.minimum!==void 0&&i<t.minimum||t.maximum!==void 0&&i>t.maximum||t.exclusiveMinimum!==void 0&&i<=t.exclusiveMinimum?C(n,"number is outside the manifest bounds"):i}return typeof e!="string"?C(n,"expected String"):t.required&&!e.trim()?C(n,"required string must not be empty"):t.pattern&&!new RegExp(t.pattern).test(e)?C(n,"string does not match the manifest pattern"):e}function yp(e,t,r,n){let i={};for(let s of t){let o=e[s.pyretName],a=`${n}.${s.pyretName}`;if(!s.required){if(r.ffi.isNone(o))continue;r.ffi.isSome(o)||C(a,"expected Option"),o=o.dict.value}i[s.name]=ES(o,s,r,a)}return i}function mp(e,t,r,n){return yp(Dt(e,r,n,t.constructor,t.fields.map(i=>i.pyretName)),t.fields,r,n)}function zr(e,t=0){let r=" ".repeat(t);if(Array.isArray(e))return e.length?`
|
|
15
|
-
`+e.map(i=>`${r}- ${
|
|
14
|
+
enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),vA=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function Lr(e){if(bA.has(e)||wA.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return vA.has(e)?e+" ":e}function Vr(e,t,r=n=>Vr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return hA(e);let n=Y(e);if(n)return kt(n);let i=ie(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=sf(e,r,Lr);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=af(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(gA(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=He(e);if(s){let p=nf(s,r);return t.delete(e),p}let o=V(e.$name||"object"),u=e.dict||{},c=Object.keys(u),f=i?.kind==="object"?`{${c.map(p=>`${Lr(p)}: ${r(u[p])}`).join(", ")}}`:c.length||e.$arity===0?`${o}(${c.map(p=>r(u[p])).join(", ")})`:o;return t.delete(e),f}return String(e)}function pe(e,t){let r=new Map;for(let i of e.getAtoms()){let s=L(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=Et(e,t);return of(n,(i,s)=>Vr(i,new Set,s),Lr)??Vr(n,new Set)}function Rt(e){return JSON.stringify(e.atoms)}function uf(e){let t=new Set;return e.filter(r=>{let n=Rt(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function cf(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function Ur(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function ff(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var j=class j extends St{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new j,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=j.globalConstructorCache.get(r),s=++j.instantiationCounter;(!i||s>i.instantiation)&&j.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of j.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(j.globalConstructorCache)}static clearGlobalConstructorCache(){j.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await j.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${j.formatError(s.exn)}`);if(j.isPrimitive(s.result)){let o=new j(null,n,i),u=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",c={id:`result_${s.result}`,label:String(s.result),type:u};return o.addAtom(c),o}return new j(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=j.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=j.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:j.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=j.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((u,c)=>u===n.atoms[c])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return pe(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,u,c,f)=>{if(this.isAtomicValue(o)){let p=this.createAtomFromPrimitive(o);this.addRelationTuple(c,{atoms:[...u,p],types:[]},f)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:u,relationId:c,relationName:f}})};for(let o=0;o<i.length;o++){let{obj:u,parentInfo:c}=i[o],f=this.objectToAtomId.get(u);if(f||(f=this.createAtomFromObject(u)),c&&this.addRelationTuple(c.relationId,{atoms:[...c.atoms,f],types:[]},c.relationName),n.has(u))continue;n.add(u);let p=this.valueInfo(u);if(p?.kind==="nothing")continue;if(p?.kind==="table"){this.processTableSemantics(f,u,m=>{if(this.isAtomicValue(m))return this.createAtomFromPrimitive(m);if(At(m)||!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret table cell");let g=m,d=this.objectToAtomId.get(g)??this.createAtomFromObject(g);return i.push({obj:g}),d});continue}if(p?.kind==="string-dict"){p.sealed&&this.addValueFact("sealed",f,"MutableStringDict"),jt(u,p).forEach(([g,d],y)=>{if(!this.isAtomicValue(d)&&!Array.isArray(d)&&!this.isPyretObject(d))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(d,[f,this.createIndexAtom(y),this.createAtomFromPrimitive(g)],v,"entry")});continue}if(p?.kind==="reference"){p.unrestricted&&this.addValueFact("unrestricted",f,"Reference");let m=u.value;if(!this.isAtomicValue(m)&&!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret reference target");let g=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(m,[f],g,"target");continue}if(p?.kind==="tuple"||p?.kind==="raw-array"){let m=Array.isArray(u)?u:u.vals;for(let g=0;g<m.length;g++){let d=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(m[g],[f,this.createIndexAtom(g)],d,"element")}continue}let h=u;this.originalObjects.set(f,h);let l=G(h);l?.arity===0&&this.addValueFact("nullary-constructor",f,"PyretObject");for(let m of l?.mutableFields??[]){let g=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(g,{atoms:[f,this.createIndexAtom(m)],types:[]},"mutable-field")}if(!h.dict||typeof h.dict!="object")continue;let w=l?.fields??(p?.kind==="object"?Wl(h.dict,this.options.showFunctions):Object.keys(h.dict));!p&&!L(this.extractType(h))&&this.cacheConstructorPattern(this.extractType(h),w),w.forEach((m,g)=>{let d=h.dict[m],y=l?ef(l,g):p?.kind==="object"?this.valueRelationId("object-field:"+m,m,["Object","Index","PyretObject"]):m;if(l&&!this.relations.has(y)&&this.relations.set(y,{id:y,name:m,types:[l.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&At(d))return;let v=p?.kind==="object"?[f,this.createIndexAtom(g)]:[f];s(d,v,y,p?.kind==="object"?m:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return ie(r);if(_t(r))throw new Error("Standalone Pyret Row values are not supported");if(Ot(r))return{kind:"table"};let n=Jl(r);if(n)return n;let i=Tt(r);if(i)return i;if(Hl(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!G(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=fe(n),u=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((f,p)=>this.addRelationTuple(u,{atoms:[r,this.createIndexAtom(p),this.createAtomFromPrimitive(f)],types:[]},"column"));let c=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((f,p)=>this.addRelationTuple(c,{atoms:[r,this.createIndexAtom(p),...Array.from(f,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=Y(r),i=n?"Number":this.mapPrimitiveType(r),s=n?kt(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let f=Array.from(this.atoms.values()).find(p=>p.type===i&&p.label===s);if(f)return f.id}let u=this.generateAtomId(i),c={id:u,type:i,label:s};return this.atoms.set(u,c),this.ensureTypeExists(i),u}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let u=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(u){let[,c,f]=u,p=parseInt(f,10);p>n&&(n=p,i=c)}else{let c=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(c){let[,f]=c;(!s||f>s)&&(s=f)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return V(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],u=this.atoms.get(s),c=this.atoms.get(o);if(!u||!c){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let f=this.relations.get(r),p=i??f?.name??qe(r)?.field??r;f&&Ur(f,{...f,name:p});let h=Kl(n,f,w=>this.atoms.get(w)?.type);f?f.types=h.relationTypes:(f={id:r,name:p,types:h.relationTypes,tuples:[]},this.relations.set(r,f)),f.tuples.some(w=>Rt(w)===Rt(n))||(f.tuples.push(h.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:h.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=L(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||Y(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||Nr(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!L(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new lf.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let u=o.atoms[0],c=o.atoms[o.atoms.length-1],f=o.atoms.slice(1,-1),p=s.name;if(f.length>0){let l=f.map(w=>{let m=this.atoms.get(w);return m?m.label:w});p=`${s.name}[${l.join(", ")}]`}let h=ff(s,o);i.setEdge(u,c,p,h)}})}),r||n){let s=[];i.nodes().forEach(o=>{let u=i.inEdges(o)||[],c=i.outEdges(o)||[];if(u.length===0&&c.length===0&&this.atoms.get(o)){let l=this.getAtomType(o).isBuiltin;(r||l&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof j))return!1;let i=r;for(let o of i.getRelations()){let u=this.relations.get(o.id);u&&Ur(u,o)}let s=new Map;return i.getAtoms().forEach(o=>{let u=this.isBuiltinType(o.type);if(n&&u&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let l=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(l){s.set(o.id,l.id);return}}let c=this.generateAtomId(o.type);s.set(o.id,c);let f={...o,id:c};this.addAtom(f);let p=i.originalObjects.get(o.id);p&&this.originalObjects.set(c,p)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(u=>({...u,id:s.get(u.id)||u.id}))});else{let u=this.types.get(o.id),c=o.atoms.map(f=>({...f,id:s.get(f.id)||f.id}));u.atoms.push(...c)}}),i.getRelations().forEach(o=>{let u=o.tuples.map(f=>({atoms:f.atoms.map(p=>s.get(p)||p),types:f.types})),c=this.relations.get(o.id);c?(c.tuples=uf([...c.tuples,...u]),c.types=cf(c.tuples,c.types)):this.relations.set(o.id,{...o,tuples:u})}),!0}};j.globalConstructorCache=new Map,j.instantiationCounter=0;var Z=j,xA=(e,t={})=>{try{let r=JSON.parse(e);return new Z(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},qA=e=>e instanceof Z;var pf=Yr(Rr()),Nt=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new pf.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],u=s.atoms[s.atoms.length-1],c=s.atoms.slice(1,-1).map(p=>this.atoms.get(p).label),f=i.name+(c.length?`[${c.join(", ")}]`:"");n.setEdge(o,u,f,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var We=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function df(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function Ct(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let l of e){if(!l||typeof l.name!="string"||!l.name||n.has(l.name))throw new Error("Capture root names must be nonempty and unique");n.add(l.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,u=[],c=(l,w,m)=>{if(s.has(l))return s.get(l);try{let g=t.observe(l);if(g.kind==="primitive")return g.value;let d;switch(g.kind){case"nothing":d={$pyretValue:{kind:"nothing"}};break;case"raw-array":d=[];break;case"tuple":d={vals:[]};break;case"object":d={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":d={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":d={$pyretValue:{kind:"string-dict",mutable:g.mutable,sealed:g.sealed},entries:[]};break;case"table":d={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let y=JSON.stringify(g.info),v=o.get(g.identity);if(v&&v.schema!==y)throw new Error("Constructor schema changed during capture");v||(v={id:Ql(i,o.size,g.info.name),schema:y},o.set(g.identity,v)),d={$name:v.id,$arity:g.info.arity,$constructor:{$fieldNames:g.info.fields.slice()},$mut_fields_mask:g.info.fields.map((x,E)=>(g.info.mutableFields??[]).includes(E)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(l,d),u.push({carrier:d,observed:g,root:w,path:m}),d}catch(g){throw g instanceof We?g:new We(w,m,g instanceof Error?g.message:String(g))}},f=e.map(l=>c(l.value,l.name,[]));for(let l=0;l<u.length;l++){let{carrier:w,observed:m,root:g,path:d}=u[l],y=(v,...x)=>c(v,g,[...d,...x]);switch(m.kind){case"constructor":m.info.fields.forEach((v,x)=>{w.dict[v]=y(m.values[x],v)});break;case"object":m.fields.forEach(([v,x])=>{w.dict[v]=y(x,v)});break;case"raw-array":m.values.forEach((v,x)=>w.push(y(v,x)));break;case"tuple":m.values.forEach((v,x)=>w.vals.push(y(v,x)));break;case"reference":w.value=y(m.value,"target");break;case"string-dict":m.entries.forEach(([v,x])=>w.entries.push([v,y(x,v)]));break;case"table":w.dict["_header-raw-array"]=m.headers.slice(),w.dict["_rows-raw-array"]=m.rows.map((v,x)=>v.map((E,O)=>y(E,"rows",x,m.headers[O])));break}}let{instance:p,rootIds:h}=Z.fromValues(f);return df({format:"spytial-pyret-capture",version:1,datum:{atoms:[...p.getAtoms()],relations:[...p.getRelations()],types:[...p.getTypes()]},roots:e.map((l,w)=>({name:l.name,atomId:h[w],...l.observation===void 0?{}:{observation:l.observation}})),...r===void 0?{}:{provenance:r}})}function Mt(e){let t=df(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let l of t.datum.atoms){if(!l||typeof l.id!="string"||!l.id||r.has(l.id)||typeof l.label!="string"||typeof l.type!="string"||!n.has(l.type)&&!L(l.type))throw new Error("Malformed or duplicate Pyret capture atom");if(l.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(l.label)||!Number.isSafeInteger(Number(l.label))))throw new Error("Malformed Pyret capture index");r.set(l.id,l)}let i=new Set,s=(l,w)=>l===w.type||l==="PyretObject"||!n.has(l)&&l===L(w.type)?.name,o=new Set;for(let l of t.datum.types){if(!l||typeof l.id!="string"||o.has(l.id)||!Array.isArray(l.types)||l.types[0]!==l.id||l.types.some(m=>typeof m!="string")||!Array.isArray(l.atoms)||typeof l.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(l.id);let w=new Set;for(let m of l.atoms){let g=m&&r.get(m.id);if(!g||w.has(m.id)||m.type!==g.type||m.label!==g.label||!s(l.id,g))throw new Error("Invalid Pyret capture type membership");w.add(m.id)}}if([...r.values()].some(l=>!o.has(l.type))||t.datum.types.some(l=>l.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let l of t.datum.relations){if(!l||typeof l.id!="string"||i.has(l.id)||typeof l.name!="string"||!Array.isArray(l.tuples)||!Array.isArray(l.types)||l.types.some(m=>typeof m!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(l.id);let w=new Set;for(let m of l.tuples){if(!m||!Array.isArray(m.atoms)||!m.atoms.length||m.atoms.some(d=>!r.has(d))||!Array.isArray(m.types)||m.types.length!==m.atoms.length||m.types.some((d,y)=>!s(d,r.get(m.atoms[y]))))throw new Error("Malformed Pyret capture tuple");let g=JSON.stringify(m.atoms);if(w.has(g))throw new Error("Duplicate Pyret capture tuple");w.add(g)}}let u=new Set;for(let l of t.roots){if(!l||typeof l.name!="string"||!l.name||u.has(l.name)||!r.has(l.atomId)||r.get(l.atomId).type==="Index")throw new Error("Invalid Pyret capture root");u.add(l.name)}let c=new Nt(t.datum),f=[...r.values()].filter(l=>l.type!=="Index").map(l=>l.id),p=Je(c,f,{allowContainerCycles:!0}),h=new Map(f.map((l,w)=>[l,p[w]]));return{snapshot:t,instance:c,values:new Map(t.roots.map(l=>[l.name,h.get(l.atomId)]))}}function Se(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=Y(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=G(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i])&&!(i==="_spytial"&&e.isFunction(r.dict[i])))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(_t(r))throw new Error("Unsupported standalone Pyret Row");if(Ot(r))return{kind:"table",...fe(r)};let n=Tt(r);if(n)return{...n,entries:jt(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)s==="_spytial"&&(e.isFunction(r.dict[s])||e.isMethod(r.dict[s]))||i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function IA(e,t){return Mt(Ct([{name:"value",value:e}],Se(t))).instance}function SA(e,t){let r=Ct([{name:"value",value:e}],Se(t)),{instance:n}=Mt(r),i;try{i=pe(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function AA(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:V(t.mostSpecificType)}))}}var $t={languageVersion:"2026-09-18",coreVersion:"6.3.2",enums:{TextSize:{small:"small",normal:"normal",large:"large"},LinePattern:{solid:"solid",dashed:"dashed",dotted:"dotted"},IconPlacement:{full:"full",badge:"badge"},Direction:{above:"above",below:"below",left:"left",right:"right","directly-above":"directlyAbove","directly-below":"directlyBelow","directly-left":"directlyLeft","directly-right":"directlyRight"},Hold:{always:"always",never:"never"},Rotation:{clockwise:"clockwise",counterclockwise:"counterclockwise"},Alignment:{horizontal:"horizontal",vertical:"vertical"},GroupEdgeDirection:{"no-group-edge":"none",togroup:"togroup",fromgroup:"fromgroup"},LayoutFlag:{"hide-disconnected":"hideDisconnected","hide-disconnected-built-ins":"hideDisconnectedBuiltIns"}},blocks:{textStyle:{name:"textStyle",typeName:"TextStyle",constructor:"text-style",fields:[{name:"size",pyretName:"size",type:"enum",required:!1,enum:"TextSize"},{name:"color",pyretName:"color",type:"color",required:!1}]},lineStyle:{name:"lineStyle",typeName:"LineStyle",constructor:"line-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"pattern",pyretName:"pattern",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1}]},fillStyle:{name:"fillStyle",typeName:"FillStyle",constructor:"fill-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1}]},borderStyle:{name:"borderStyle",typeName:"BorderStyle",constructor:"border-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"width",pyretName:"width",type:"number",required:!1,exclusiveMinimum:0}]},iconStyle:{name:"iconStyle",typeName:"IconStyle",constructor:"icon-style",fields:[{name:"path",pyretName:"path",type:"icon-path",required:!1},{name:"placement",pyretName:"placement",type:"enum",required:!1,enum:"IconPlacement"},{name:"opacity",pyretName:"opacity",type:"number",required:!1,minimum:0,maximum:1}]},ruleSource:{name:"ruleSource",typeName:"RuleSource",constructor:"rule-source",fields:[{name:"text",pyretName:"text",type:"string",required:!0},{name:"location",pyretName:"location",type:"string",required:!1}]},groupAddEdge:{name:"groupAddEdge",typeName:"GroupAddEdge",constructor:"group-add-edge",fields:[{name:"points",pyretName:"points",type:"enum",required:!1,enum:"GroupEdgeDirection"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"}]}},rules:{orientation:{name:"orientation",yamlKey:"orientation",section:"constraints",shape:"mapping",constructor:"spytial-orientation",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"directions",pyretName:"directions",type:"enum-list",required:!0,listRules:{atMostOneOf:[["above","below"],["left","right"]],narrowsListTo:{directlyAbove:["above","directlyAbove"],directlyBelow:["below","directlyBelow"],directlyLeft:["left","directlyLeft"],directlyRight:["right","directlyRight"]}},enum:"Direction"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},cyclic:{name:"cyclic",yamlKey:"cyclic",section:"constraints",shape:"mapping",constructor:"spytial-cyclic",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!1,enum:"Rotation"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},align:{name:"align",yamlKey:"align",section:"constraints",shape:"mapping",constructor:"spytial-align",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!0,enum:"Alignment"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},group:{name:"group",yamlKey:"group",section:"constraints",shape:"mapping",constructor:"spytial-group",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"addEdge",pyretName:"add-edge",type:"block",required:!1,block:"groupAddEdge"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},size:{name:"size",yamlKey:"size",section:"constraints",shape:"mapping",constructor:"spytial-size",fields:[{name:"width",pyretName:"width",type:"number",required:!0,exclusiveMinimum:0},{name:"height",pyretName:"height",type:"number",required:!0,exclusiveMinimum:0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideAtom:{name:"hideAtom",yamlKey:"hideAtom",section:"constraints",shape:"mapping",constructor:"spytial-hide-atom",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},flag:{name:"flag",yamlKey:"flag",section:"directives",shape:"scalar",constructor:"spytial-flag",fields:[{name:"flag",pyretName:"name",type:"enum",required:!0,enum:"LayoutFlag"}]},atomStyle:{name:"atomStyle",yamlKey:"atomStyle",section:"directives",shape:"mapping",constructor:"spytial-atom-style",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"fillStyle",pyretName:"fill-style",type:"block",required:!1,block:"fillStyle"},{name:"borderStyle",pyretName:"border-style",type:"block",required:!1,block:"borderStyle"},{name:"iconStyle",pyretName:"icon-style",type:"block",required:!1,block:"iconStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeStyle:{name:"edgeStyle",yamlKey:"edgeStyle",section:"directives",shape:"mapping",constructor:"spytial-edge-style",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},attribute:{name:"attribute",yamlKey:"attribute",section:"directives",shape:"mapping",constructor:"spytial-attribute",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},tag:{name:"tag",yamlKey:"tag",section:"directives",shape:"mapping",constructor:"spytial-tag",fields:[{name:"toTag",pyretName:"to-tag",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"value",pyretName:"value",type:"selector",required:!0},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideField:{name:"hideField",yamlKey:"hideField",section:"directives",shape:"mapping",constructor:"spytial-hide-field",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},inferredEdge:{name:"inferredEdge",yamlKey:"inferredEdge",section:"directives",shape:"mapping",constructor:"spytial-inferred-edge",fields:[{name:"name",pyretName:"name",type:"string",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"draw",pyretName:"draw",type:"string",required:!1,pattern:"^\\s*[^\\s](?:(?!->)[\\s\\S])*->(?:(?!->)[\\s\\S])*[^\\s]\\s*$"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"color",pyretName:"color",type:"color",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},icon:{name:"icon",yamlKey:"icon",section:"directives",shape:"mapping",constructor:"spytial-icon",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"path",pyretName:"path",type:"icon-path",required:!0},{name:"showLabels",pyretName:"show-labels",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},atomColor:{name:"atomColor",yamlKey:"atomColor",section:"directives",shape:"mapping",constructor:"spytial-atom-color",fields:[{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeColor:{name:"edgeColor",yamlKey:"edgeColor",section:"directives",shape:"mapping",constructor:"spytial-edge-color",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]}}};var X=class extends Error{constructor(r,n){super(`${r}: ${n}`);this.path=r;this.name="SpytialSpecError"}},PA=Object.values($t.rules),kA=$t.blocks,EA=$t.enums;function R(e,t){throw new X(e,t)}function Dt(e,t,r,n,i){if(!t.isDataValue(e))return R(r,`expected ${n}`);let s=e,o=G(s);return s.$name!==n||!o||o.fields.length!==i.length||o.fields.some((u,c)=>u!==i[c])?R(r,`expected ${n}`):s.dict}function yf(e,t,r){let n=new Set,i=[];for(;!t.ffi.isEmpty(e);){if(!t.ffi.isLink(e))return R(r,"expected a Pyret List");if(n.has(e))return R(r,"cyclic rule list");n.add(e);let s=e.dict;i.push(s.first),e=s.rest}return i}function mf(e,t,r,n){if(t.type==="enum"||t.type==="enum-list"){let i=EA[t.enum],s=(u,c)=>{let f=u?.$name;return!f||!Object.prototype.hasOwnProperty.call(i,f)?R(c,`expected ${t.enum}`):(Dt(u,r,c,f,[]),i[f])};if(t.type==="enum")return s(e,n);let o=yf(e,r,n).map((u,c)=>s(u,`${n}[${c}]`));for(let u of t.listRules?.atMostOneOf??[])u.filter(c=>o.includes(c)).length>1&&R(n,"incompatible directions");for(let[u,c]of Object.entries(t.listRules?.narrowsListTo??{}))o.includes(u)&&o.some(f=>!c.includes(f))&&R(n,"incompatible directions");return o}if(t.type==="block")return OA(e,kA[t.block],r,n);if(t.type==="boolean")return typeof e!="boolean"?R(n,"expected Boolean"):e;if(t.type==="number"||t.type==="integer"){if(!r.isNumber(e))return R(n,"expected Number");let i=r.num_to_fixnum(e);return!Number.isFinite(i)||t.type==="integer"&&!Number.isSafeInteger(i)||t.minimum!==void 0&&i<t.minimum||t.maximum!==void 0&&i>t.maximum||t.exclusiveMinimum!==void 0&&i<=t.exclusiveMinimum?R(n,"number is outside the manifest bounds"):i}return typeof e!="string"?R(n,"expected String"):t.required&&!e.trim()?R(n,"required string must not be empty"):t.pattern&&!new RegExp(t.pattern).test(e)?R(n,"string does not match the manifest pattern"):e}function gf(e,t,r,n){let i={};for(let s of t){let o=`${n}.${s.pyretName}`;if(!Object.prototype.hasOwnProperty.call(e,s.pyretName)){s.required&&R(o,"missing required field");continue}i[s.name]=mf(e[s.pyretName],s,r,o)}return i}function hf(e,t,r,n){(!r.isObject(e)||r.isDataValue(e))&&R(n,"expected a Pyret record");let i=e.dict,s=new Set(t.map(o=>o.pyretName));for(let o of Object.keys(i))s.has(o)||R(`${n}.${o}`,"unknown field");return gf(i,t,r,n)}function OA(e,t,r,n){let i=Dt(e,r,n,t.constructor,["fields"]);return hf(i.fields,t.fields,r,n)}function Gr(e,t=0){let r=" ".repeat(t);if(Array.isArray(e))return e.length?`
|
|
15
|
+
`+e.map(i=>`${r}- ${Gr(i,t+2).trimStart()}`).join(`
|
|
16
16
|
`):"[]";if(typeof e!="object")return JSON.stringify(e);let n=Object.entries(e);return n.length?`
|
|
17
|
-
`+n.map(([i,s])=>{let o=Array.isArray(s)&&s.every(
|
|
17
|
+
`+n.map(([i,s])=>{let o=Array.isArray(s)&&s.every(u=>typeof u!="object")?JSON.stringify(s):Gr(s,t+2);return`${r}${JSON.stringify(i)}:${o.startsWith(`
|
|
18
18
|
`)?"":" "}${o}`}).join(`
|
|
19
|
-
`):"{}"}function
|
|
20
|
-
`}function Br(e){let t=[];for(;e;e=e.parent)t.push(e.key);return"value"+t.reverse().map(r=>`[${JSON.stringify(r)}]`).join("")}function
|
|
19
|
+
`):"{}"}function zr(e,t){let r={constraints:[],directives:[]};for(let[n,i]of yf(e,t,"rules").entries()){let s=`rules[${n}]`,o=i?.$name;o!=="constraint"&&o!=="directive"&&R(s,"expected SpytialRule");let u=Dt(i,t,s,o,["value"]).value,c=u?.$name,f=PA.find(m=>m.constructor===c);(!f||f.section!==`${o}s`)&&R(s,`invalid ${o} variant`);let p=f.fields.filter(m=>m.required),h=f.fields.filter(m=>!m.required),l=Dt(u,t,s,f.constructor,[...p.map(m=>m.pyretName),...f.name==="atomStyle"?["selector"]:[],...h.length?["options"]:[]]),w=gf(l,p,t,s);if(f.name==="atomStyle"){let m=h.find(g=>g.name==="selector");m||R(s,"missing atomStyle selector schema"),w.selector=mf(l.selector,{...m,required:!0},t,`${s}.selector`)}h.length&&Object.assign(w,hf(l.options,h.filter(m=>f.name!=="atomStyle"||m.name!=="selector"),t,`${s}.options`)),r[f.section].push({[f.yamlKey]:f.shape==="scalar"?w[f.fields[0].name]:w})}return Gr(r).trimStart()+`
|
|
20
|
+
`}function Br(e){let t=[];for(;e;e=e.parent)t.push(e.key);return"value"+t.reverse().map(r=>`[${JSON.stringify(r)}]`).join("")}function _A(e,t,r){let n=Se(t),i=new Set,s=new Set,o=[],u=[{value:e}];for(let l=0;l<u.length;l++){let{value:w,path:m}=u[l];if(i.has(w)||(i.add(w),t.isFunction(w)||t.isMethod(w)))continue;let g=(d,y)=>u.push({value:d,path:{parent:m,key:y}});try{if(t.isObject(w)&&t.hasField(w,"_spytial")){let y=t.getColonField(w,"_spytial");!t.isFunction(y)&&!t.isMethod(y)&&R(Br(m),"_spytial must be a function or method"),s.has(y)||(s.add(y),o.push({fn:t.getField(w,"_spytial"),path:m}))}let d=n.observe(w);switch(d.kind){case"constructor":d.values.forEach((y,v)=>g(y,d.info.fields[v]));break;case"object":d.fields.forEach(([y,v])=>g(v,y));break;case"raw-array":case"tuple":d.values.forEach(g);break;case"reference":g(d.value,"target");break;case"string-dict":d.entries.forEach(([y,v])=>g(v,y));break;case"table":d.rows.forEach((y,v)=>y.forEach((x,E)=>u.push({value:x,path:{parent:{parent:{parent:m,key:"rows"},key:v},key:d.headers[E]}})));break}}catch(d){throw d instanceof X?d:new X(Br(m),d instanceof Error?d.message:String(d))}}let c=[],f=0,p="value",h=()=>{if(f===o.length)return c;let l=o[f++];return p=`${Br(l.path)}._spytial`,t.safeCall(()=>l.fn.app(),w=>{try{c.push(typeof w=="string"?w:zr(w,t))}catch(m){let g=new X(p,m instanceof Error?m.message:String(m));throw r&&r(g),g}return h()},p)};return{next:h,documents:c,hasHooks:o.length>0,activePath:()=>p}}async function bf(e,t){let r=_A(e,t);return r.hasHooks?new Promise((n,i)=>{t.runThunk(r.next,s=>{t.isSuccessResult(s)?n(r.documents):i(new X(r.activePath(),s.exn instanceof Error?s.exn.message:String(s.exn)))})}):[]}var wf=new Set(["Number","String","Boolean","Index"]);function vf(e,t){let r=e.getAtoms(),n=e.getRelations(),i=new Map(r.map(d=>[d.id,d])),s=d=>qe(d.id)?d.id:d.name,o=new Map,u=new Set;for(let d of n)for(let y of d.tuples){if(y.atoms.length<1)continue;let v=y.atoms[0];for(let E=1;E<y.atoms.length;E++)u.add(y.atoms[E]);let x=o.get(v)??[];x.push({rel:s(d),tuple:y.atoms.slice()}),o.set(v,x)}let c=d=>{let y=i.get(d);return y?JSON.stringify([y.type,wf.has(y.type)?y.label:void 0]):"?"},f=t?[t]:r.map(d=>d.id).filter(d=>!u.has(d)),p=(f.length?f:r.map(d=>d.id)).slice().sort((d,y)=>{let v=c(d).localeCompare(c(y));return v!==0?v:d.localeCompare(y)}),h=new Map,l=0,w=d=>{let y=[d];for(;y.length;){let v=y.pop();if(h.has(v))continue;h.set(v,l++);let x=(o.get(v)??[]).slice().sort((E,O)=>{let C=E.rel.localeCompare(O.rel);if(C!==0)return C;let D=E.tuple.slice(1).map(c).join("|"),z=O.tuple.slice(1).map(c).join("|");return D.localeCompare(z)});for(let E=x.length-1;E>=0;E--){let O=x[E].tuple;for(let C=O.length-1;C>=1;C--)y.push(O[C])}}};for(let d of p)w(d);r.map(d=>d.id).sort().forEach(d=>{h.has(d)||h.set(d,l++)});let m=r.map(d=>({id:h.get(d.id),type:d.type,label:wf.has(d.type)?d.label:void 0})).sort((d,y)=>d.id-y.id),g=n.map(d=>{let y=d.tuples.filter(v=>v.atoms.length>=1).map(v=>v.atoms.map(x=>h.get(x)??-1));return y.sort((v,x)=>{let E=Math.min(v.length,x.length);for(let O=0;O<E;O++)if(v[O]!==x[O])return v[O]-x[O];return v.length-x.length}),{name:s(d),tuples:y}}).filter(d=>d.tuples.length>0).sort((d,y)=>d.name.localeCompare(y.name)||JSON.stringify(d.tuples).localeCompare(JSON.stringify(y.tuples)));return JSON.stringify({atoms:m,relations:g})}return kf(TA);})();
|