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/dist/spyret.js CHANGED
@@ -1,20 +1,20 @@
1
- "use strict";var bp=Object.create;var Ze=Object.defineProperty;var wp=Object.getOwnPropertyDescriptor;var vp=Object.getOwnPropertyNames;var xp=Object.getPrototypeOf,qp=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ip=(e,t)=>{for(var r in t)Ze(e,r,{get:t[r],enumerable:!0})},Hr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of vp(t))!qp.call(e,i)&&i!==r&&Ze(e,i,{get:()=>t[i],enumerable:!(n=wp(t,i))||n.enumerable});return e};var Wr=(e,t,r)=>(r=e!=null?bp(xp(e)):{},Hr(t||!e||!e.__esModule?Ze(r,"default",{value:e,enumerable:!0}):r,e)),Ap=e=>Hr(Ze({},"__esModule",{value:!0}),e);var Zr=u((TS,Yr)=>{"use strict";function Sp(){this.__data__=[],this.size=0}Yr.exports=Sp});var Xe=u((jS,Xr)=>{"use strict";function Pp(e,t){return e===t||e!==e&&t!==t}Xr.exports=Pp});var Se=u((NS,Qr)=>{"use strict";var kp=Xe();function Ep(e,t){for(var r=e.length;r--;)if(kp(e[r][0],t))return r;return-1}Qr.exports=Ep});var tn=u((RS,en)=>{"use strict";var Op=Se(),_p=Array.prototype,Tp=_p.splice;function jp(e){var t=this.__data__,r=Op(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Tp.call(t,r,1),--this.size,!0}en.exports=jp});var nn=u((CS,rn)=>{"use strict";var Np=Se();function Rp(e){var t=this.__data__,r=Np(t,e);return r<0?void 0:t[r][1]}rn.exports=Rp});var on=u((MS,sn)=>{"use strict";var Cp=Se();function Mp(e){return Cp(this.__data__,e)>-1}sn.exports=Mp});var un=u(($S,an)=>{"use strict";var $p=Se();function Dp(e,t){var r=this.__data__,n=$p(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}an.exports=Dp});var Pe=u((DS,cn)=>{"use strict";var Fp=Zr(),Lp=tn(),Vp=nn(),Up=on(),Bp=un();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=Fp;de.prototype.delete=Lp;de.prototype.get=Vp;de.prototype.has=Up;de.prototype.set=Bp;cn.exports=de});var pn=u((FS,ln)=>{"use strict";var zp=Pe();function Gp(){this.__data__=new zp,this.size=0}ln.exports=Gp});var dn=u((LS,fn)=>{"use strict";function Kp(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}fn.exports=Kp});var mn=u((VS,yn)=>{"use strict";function Jp(e){return this.__data__.get(e)}yn.exports=Jp});var hn=u((US,gn)=>{"use strict";function Hp(e){return this.__data__.has(e)}gn.exports=Hp});var Lt=u((BS,bn)=>{"use strict";var Wp=typeof global=="object"&&global&&global.Object===Object&&global;bn.exports=Wp});var B=u((zS,wn)=>{"use strict";var Yp=Lt(),Zp=typeof self=="object"&&self&&self.Object===Object&&self,Xp=Yp||Zp||Function("return this")();wn.exports=Xp});var oe=u((GS,vn)=>{"use strict";var Qp=B(),ef=Qp.Symbol;vn.exports=ef});var An=u((KS,In)=>{"use strict";var xn=oe(),qn=Object.prototype,tf=qn.hasOwnProperty,rf=qn.toString,ke=xn?xn.toStringTag:void 0;function nf(e){var t=tf.call(e,ke),r=e[ke];try{e[ke]=void 0;var n=!0}catch{}var i=rf.call(e);return n&&(t?e[ke]=r:delete e[ke]),i}In.exports=nf});var Pn=u((JS,Sn)=>{"use strict";var sf=Object.prototype,of=sf.toString;function af(e){return of.call(e)}Sn.exports=af});var ae=u((HS,On)=>{"use strict";var kn=oe(),uf=An(),cf=Pn(),lf="[object Null]",pf="[object Undefined]",En=kn?kn.toStringTag:void 0;function ff(e){return e==null?e===void 0?pf:lf:En&&En in Object(e)?uf(e):cf(e)}On.exports=ff});var ee=u((WS,_n)=>{"use strict";function df(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}_n.exports=df});var Ee=u((YS,Tn)=>{"use strict";var yf=ae(),mf=ee(),gf="[object AsyncFunction]",hf="[object Function]",bf="[object GeneratorFunction]",wf="[object Proxy]";function vf(e){if(!mf(e))return!1;var t=yf(e);return t==hf||t==bf||t==gf||t==wf}Tn.exports=vf});var Nn=u((ZS,jn)=>{"use strict";var xf=B(),qf=xf["__core-js_shared__"];jn.exports=qf});var Mn=u((XS,Cn)=>{"use strict";var Vt=Nn(),Rn=(function(){var e=/[^.]+$/.exec(Vt&&Vt.keys&&Vt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function If(e){return!!Rn&&Rn in e}Cn.exports=If});var Ut=u((QS,$n)=>{"use strict";var Af=Function.prototype,Sf=Af.toString;function Pf(e){if(e!=null){try{return Sf.call(e)}catch{}try{return e+""}catch{}}return""}$n.exports=Pf});var Fn=u((eP,Dn)=>{"use strict";var kf=Ee(),Ef=Mn(),Of=ee(),_f=Ut(),Tf=/[\\^$.*+?()[\]{}|]/g,jf=/^\[object .+?Constructor\]$/,Nf=Function.prototype,Rf=Object.prototype,Cf=Nf.toString,Mf=Rf.hasOwnProperty,$f=RegExp("^"+Cf.call(Mf).replace(Tf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Df(e){if(!Of(e)||Ef(e))return!1;var t=kf(e)?$f:jf;return t.test(_f(e))}Dn.exports=Df});var Vn=u((tP,Ln)=>{"use strict";function Ff(e,t){return e?.[t]}Ln.exports=Ff});var te=u((rP,Un)=>{"use strict";var Lf=Fn(),Vf=Vn();function Uf(e,t){var r=Vf(e,t);return Lf(r)?r:void 0}Un.exports=Uf});var Qe=u((nP,Bn)=>{"use strict";var Bf=te(),zf=B(),Gf=Bf(zf,"Map");Bn.exports=Gf});var Oe=u((iP,zn)=>{"use strict";var Kf=te(),Jf=Kf(Object,"create");zn.exports=Jf});var Jn=u((sP,Kn)=>{"use strict";var Gn=Oe();function Hf(){this.__data__=Gn?Gn(null):{},this.size=0}Kn.exports=Hf});var Wn=u((oP,Hn)=>{"use strict";function Wf(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Hn.exports=Wf});var Zn=u((aP,Yn)=>{"use strict";var Yf=Oe(),Zf="__lodash_hash_undefined__",Xf=Object.prototype,Qf=Xf.hasOwnProperty;function ed(e){var t=this.__data__;if(Yf){var r=t[e];return r===Zf?void 0:r}return Qf.call(t,e)?t[e]:void 0}Yn.exports=ed});var Qn=u((uP,Xn)=>{"use strict";var td=Oe(),rd=Object.prototype,nd=rd.hasOwnProperty;function id(e){var t=this.__data__;return td?t[e]!==void 0:nd.call(t,e)}Xn.exports=id});var ti=u((cP,ei)=>{"use strict";var sd=Oe(),od="__lodash_hash_undefined__";function ad(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=sd&&t===void 0?od:t,this}ei.exports=ad});var ni=u((lP,ri)=>{"use strict";var ud=Jn(),cd=Wn(),ld=Zn(),pd=Qn(),fd=ti();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=ud;ye.prototype.delete=cd;ye.prototype.get=ld;ye.prototype.has=pd;ye.prototype.set=fd;ri.exports=ye});var oi=u((pP,si)=>{"use strict";var ii=ni(),dd=Pe(),yd=Qe();function md(){this.size=0,this.__data__={hash:new ii,map:new(yd||dd),string:new ii}}si.exports=md});var ui=u((fP,ai)=>{"use strict";function gd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}ai.exports=gd});var _e=u((dP,ci)=>{"use strict";var hd=ui();function bd(e,t){var r=e.__data__;return hd(t)?r[typeof t=="string"?"string":"hash"]:r.map}ci.exports=bd});var pi=u((yP,li)=>{"use strict";var wd=_e();function vd(e){var t=wd(this,e).delete(e);return this.size-=t?1:0,t}li.exports=vd});var di=u((mP,fi)=>{"use strict";var xd=_e();function qd(e){return xd(this,e).get(e)}fi.exports=qd});var mi=u((gP,yi)=>{"use strict";var Id=_e();function Ad(e){return Id(this,e).has(e)}yi.exports=Ad});var hi=u((hP,gi)=>{"use strict";var Sd=_e();function Pd(e,t){var r=Sd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}gi.exports=Pd});var et=u((bP,bi)=>{"use strict";var kd=oi(),Ed=pi(),Od=di(),_d=mi(),Td=hi();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=kd;me.prototype.delete=Ed;me.prototype.get=Od;me.prototype.has=_d;me.prototype.set=Td;bi.exports=me});var vi=u((wP,wi)=>{"use strict";var jd=Pe(),Nd=Qe(),Rd=et(),Cd=200;function Md(e,t){var r=this.__data__;if(r instanceof jd){var n=r.__data__;if(!Nd||n.length<Cd-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Rd(n)}return r.set(e,t),this.size=r.size,this}wi.exports=Md});var tt=u((vP,xi)=>{"use strict";var $d=Pe(),Dd=pn(),Fd=dn(),Ld=mn(),Vd=hn(),Ud=vi();function ge(e){var t=this.__data__=new $d(e);this.size=t.size}ge.prototype.clear=Dd;ge.prototype.delete=Fd;ge.prototype.get=Ld;ge.prototype.has=Vd;ge.prototype.set=Ud;xi.exports=ge});var rt=u((xP,qi)=>{"use strict";function Bd(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}qi.exports=Bd});var Bt=u((qP,Ii)=>{"use strict";var zd=te(),Gd=(function(){try{var e=zd(Object,"defineProperty");return e({},"",{}),e}catch{}})();Ii.exports=Gd});var zt=u((IP,Si)=>{"use strict";var Ai=Bt();function Kd(e,t,r){t=="__proto__"&&Ai?Ai(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}Si.exports=Kd});var Gt=u((AP,Pi)=>{"use strict";var Jd=zt(),Hd=Xe(),Wd=Object.prototype,Yd=Wd.hasOwnProperty;function Zd(e,t,r){var n=e[t];(!(Yd.call(e,t)&&Hd(n,r))||r===void 0&&!(t in e))&&Jd(e,t,r)}Pi.exports=Zd});var Te=u((SP,ki)=>{"use strict";var Xd=Gt(),Qd=zt();function ey(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?Qd(r,a,c):Xd(r,a,c)}return r}ki.exports=ey});var Oi=u((PP,Ei)=>{"use strict";function ty(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}Ei.exports=ty});var K=u((kP,_i)=>{"use strict";function ry(e){return e!=null&&typeof e=="object"}_i.exports=ry});var ji=u((EP,Ti)=>{"use strict";var ny=ae(),iy=K(),sy="[object Arguments]";function oy(e){return iy(e)&&ny(e)==sy}Ti.exports=oy});var je=u((OP,Ci)=>{"use strict";var Ni=ji(),ay=K(),Ri=Object.prototype,uy=Ri.hasOwnProperty,cy=Ri.propertyIsEnumerable,ly=Ni((function(){return arguments})())?Ni:function(e){return ay(e)&&uy.call(e,"callee")&&!cy.call(e,"callee")};Ci.exports=ly});var N=u((_P,Mi)=>{"use strict";var py=Array.isArray;Mi.exports=py});var Di=u((TP,$i)=>{"use strict";function fy(){return!1}$i.exports=fy});var be=u((Ne,he)=>{"use strict";var dy=B(),yy=Di(),Vi=typeof Ne=="object"&&Ne&&!Ne.nodeType&&Ne,Fi=Vi&&typeof he=="object"&&he&&!he.nodeType&&he,my=Fi&&Fi.exports===Vi,Li=my?dy.Buffer:void 0,gy=Li?Li.isBuffer:void 0,hy=gy||yy;he.exports=hy});var Kt=u((jP,Ui)=>{"use strict";var by=9007199254740991,wy=/^(?:0|[1-9]\d*)$/;function vy(e,t){var r=typeof e;return t=t??by,!!t&&(r=="number"||r!="symbol"&&wy.test(e))&&e>-1&&e%1==0&&e<t}Ui.exports=vy});var nt=u((NP,Bi)=>{"use strict";var xy=9007199254740991;function qy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xy}Bi.exports=qy});var Gi=u((RP,zi)=>{"use strict";var Iy=ae(),Ay=nt(),Sy=K(),Py="[object Arguments]",ky="[object Array]",Ey="[object Boolean]",Oy="[object Date]",_y="[object Error]",Ty="[object Function]",jy="[object Map]",Ny="[object Number]",Ry="[object Object]",Cy="[object RegExp]",My="[object Set]",$y="[object String]",Dy="[object WeakMap]",Fy="[object ArrayBuffer]",Ly="[object DataView]",Vy="[object Float32Array]",Uy="[object Float64Array]",By="[object Int8Array]",zy="[object Int16Array]",Gy="[object Int32Array]",Ky="[object Uint8Array]",Jy="[object Uint8ClampedArray]",Hy="[object Uint16Array]",Wy="[object Uint32Array]",T={};T[Vy]=T[Uy]=T[By]=T[zy]=T[Gy]=T[Ky]=T[Jy]=T[Hy]=T[Wy]=!0;T[Py]=T[ky]=T[Fy]=T[Ey]=T[Ly]=T[Oy]=T[_y]=T[Ty]=T[jy]=T[Ny]=T[Ry]=T[Cy]=T[My]=T[$y]=T[Dy]=!1;function Yy(e){return Sy(e)&&Ay(e.length)&&!!T[Iy(e)]}zi.exports=Yy});var it=u((CP,Ki)=>{"use strict";function Zy(e){return function(t){return e(t)}}Ki.exports=Zy});var st=u((Re,we)=>{"use strict";var Xy=Lt(),Ji=typeof Re=="object"&&Re&&!Re.nodeType&&Re,Ce=Ji&&typeof we=="object"&&we&&!we.nodeType&&we,Qy=Ce&&Ce.exports===Ji,Jt=Qy&&Xy.process,em=(function(){try{var e=Ce&&Ce.require&&Ce.require("util").types;return e||Jt&&Jt.binding&&Jt.binding("util")}catch{}})();we.exports=em});var Me=u((MP,Yi)=>{"use strict";var tm=Gi(),rm=it(),Hi=st(),Wi=Hi&&Hi.isTypedArray,nm=Wi?rm(Wi):tm;Yi.exports=nm});var Ht=u(($P,Zi)=>{"use strict";var im=Oi(),sm=je(),om=N(),am=be(),um=Kt(),cm=Me(),lm=Object.prototype,pm=lm.hasOwnProperty;function fm(e,t){var r=om(e),n=!r&&sm(e),i=!r&&!n&&am(e),s=!r&&!n&&!i&&cm(e),o=r||n||i||s,a=o?im(e.length,String):[],c=a.length;for(var p in e)(t||pm.call(e,p))&&!(o&&(p=="length"||i&&(p=="offset"||p=="parent")||s&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||um(p,c)))&&a.push(p);return a}Zi.exports=fm});var $e=u((DP,Xi)=>{"use strict";var dm=Object.prototype;function ym(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||dm;return e===r}Xi.exports=ym});var Wt=u((FP,Qi)=>{"use strict";function mm(e,t){return function(r){return e(t(r))}}Qi.exports=mm});var ts=u((LP,es)=>{"use strict";var gm=Wt(),hm=gm(Object.keys,Object);es.exports=hm});var ot=u((VP,rs)=>{"use strict";var bm=$e(),wm=ts(),vm=Object.prototype,xm=vm.hasOwnProperty;function qm(e){if(!bm(e))return wm(e);var t=[];for(var r in Object(e))xm.call(e,r)&&r!="constructor"&&t.push(r);return t}rs.exports=qm});var re=u((UP,ns)=>{"use strict";var Im=Ee(),Am=nt();function Sm(e){return e!=null&&Am(e.length)&&!Im(e)}ns.exports=Sm});var ne=u((BP,is)=>{"use strict";var Pm=Ht(),km=ot(),Em=re();function Om(e){return Em(e)?Pm(e):km(e)}is.exports=Om});var os=u((zP,ss)=>{"use strict";var _m=Te(),Tm=ne();function jm(e,t){return e&&_m(t,Tm(t),e)}ss.exports=jm});var us=u((GP,as)=>{"use strict";function Nm(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}as.exports=Nm});var ls=u((KP,cs)=>{"use strict";var Rm=ee(),Cm=$e(),Mm=us(),$m=Object.prototype,Dm=$m.hasOwnProperty;function Fm(e){if(!Rm(e))return Mm(e);var t=Cm(e),r=[];for(var n in e)n=="constructor"&&(t||!Dm.call(e,n))||r.push(n);return r}cs.exports=Fm});var at=u((JP,ps)=>{"use strict";var Lm=Ht(),Vm=ls(),Um=re();function Bm(e){return Um(e)?Lm(e,!0):Vm(e)}ps.exports=Bm});var ds=u((HP,fs)=>{"use strict";var zm=Te(),Gm=at();function Km(e,t){return e&&zm(t,Gm(t),e)}fs.exports=Km});var bs=u((De,ve)=>{"use strict";var Jm=B(),hs=typeof De=="object"&&De&&!De.nodeType&&De,ys=hs&&typeof ve=="object"&&ve&&!ve.nodeType&&ve,Hm=ys&&ys.exports===hs,ms=Hm?Jm.Buffer:void 0,gs=ms?ms.allocUnsafe:void 0;function Wm(e,t){if(t)return e.slice();var r=e.length,n=gs?gs(r):new e.constructor(r);return e.copy(n),n}ve.exports=Wm});var vs=u((WP,ws)=>{"use strict";function Ym(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}ws.exports=Ym});var Yt=u((YP,xs)=>{"use strict";function Zm(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}xs.exports=Zm});var Zt=u((ZP,qs)=>{"use strict";function Xm(){return[]}qs.exports=Xm});var ut=u((XP,As)=>{"use strict";var Qm=Yt(),eg=Zt(),tg=Object.prototype,rg=tg.propertyIsEnumerable,Is=Object.getOwnPropertySymbols,ng=Is?function(e){return e==null?[]:(e=Object(e),Qm(Is(e),function(t){return rg.call(e,t)}))}:eg;As.exports=ng});var Ps=u((QP,Ss)=>{"use strict";var ig=Te(),sg=ut();function og(e,t){return ig(e,sg(e),t)}Ss.exports=og});var ct=u((ek,ks)=>{"use strict";function ag(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}ks.exports=ag});var lt=u((tk,Es)=>{"use strict";var ug=Wt(),cg=ug(Object.getPrototypeOf,Object);Es.exports=cg});var Xt=u((rk,Os)=>{"use strict";var lg=ct(),pg=lt(),fg=ut(),dg=Zt(),yg=Object.getOwnPropertySymbols,mg=yg?function(e){for(var t=[];e;)lg(t,fg(e)),e=pg(e);return t}:dg;Os.exports=mg});var Ts=u((nk,_s)=>{"use strict";var gg=Te(),hg=Xt();function bg(e,t){return gg(e,hg(e),t)}_s.exports=bg});var Qt=u((ik,js)=>{"use strict";var wg=ct(),vg=N();function xg(e,t,r){var n=t(e);return vg(e)?n:wg(n,r(e))}js.exports=xg});var er=u((sk,Ns)=>{"use strict";var qg=Qt(),Ig=ut(),Ag=ne();function Sg(e){return qg(e,Ag,Ig)}Ns.exports=Sg});var Cs=u((ok,Rs)=>{"use strict";var Pg=Qt(),kg=Xt(),Eg=at();function Og(e){return Pg(e,Eg,kg)}Rs.exports=Og});var $s=u((ak,Ms)=>{"use strict";var _g=te(),Tg=B(),jg=_g(Tg,"DataView");Ms.exports=jg});var Fs=u((uk,Ds)=>{"use strict";var Ng=te(),Rg=B(),Cg=Ng(Rg,"Promise");Ds.exports=Cg});var tr=u((ck,Ls)=>{"use strict";var Mg=te(),$g=B(),Dg=Mg($g,"Set");Ls.exports=Dg});var Us=u((lk,Vs)=>{"use strict";var Fg=te(),Lg=B(),Vg=Fg(Lg,"WeakMap");Vs.exports=Vg});var ce=u((pk,Ws)=>{"use strict";var rr=$s(),nr=Qe(),ir=Fs(),sr=tr(),or=Us(),Hs=ae(),xe=Ut(),Bs="[object Map]",Ug="[object Object]",zs="[object Promise]",Gs="[object Set]",Ks="[object WeakMap]",Js="[object DataView]",Bg=xe(rr),zg=xe(nr),Gg=xe(ir),Kg=xe(sr),Jg=xe(or),ue=Hs;(rr&&ue(new rr(new ArrayBuffer(1)))!=Js||nr&&ue(new nr)!=Bs||ir&&ue(ir.resolve())!=zs||sr&&ue(new sr)!=Gs||or&&ue(new or)!=Ks)&&(ue=function(e){var t=Hs(e),r=t==Ug?e.constructor:void 0,n=r?xe(r):"";if(n)switch(n){case Bg:return Js;case zg:return Bs;case Gg:return zs;case Kg:return Gs;case Jg:return Ks}return t});Ws.exports=ue});var Zs=u((fk,Ys)=>{"use strict";var Hg=Object.prototype,Wg=Hg.hasOwnProperty;function Yg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Wg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Ys.exports=Yg});var ar=u((dk,Xs)=>{"use strict";var Zg=B(),Xg=Zg.Uint8Array;Xs.exports=Xg});var pt=u((yk,eo)=>{"use strict";var Qs=ar();function Qg(e){var t=new e.constructor(e.byteLength);return new Qs(t).set(new Qs(e)),t}eo.exports=Qg});var ro=u((mk,to)=>{"use strict";var eh=pt();function th(e,t){var r=t?eh(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}to.exports=th});var io=u((gk,no)=>{"use strict";var rh=/\w*$/;function nh(e){var t=new e.constructor(e.source,rh.exec(e));return t.lastIndex=e.lastIndex,t}no.exports=nh});var co=u((hk,uo)=>{"use strict";var so=oe(),oo=so?so.prototype:void 0,ao=oo?oo.valueOf:void 0;function ih(e){return ao?Object(ao.call(e)):{}}uo.exports=ih});var po=u((bk,lo)=>{"use strict";var sh=pt();function oh(e,t){var r=t?sh(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}lo.exports=oh});var yo=u((wk,fo)=>{"use strict";var ah=pt(),uh=ro(),ch=io(),lh=co(),ph=po(),fh="[object Boolean]",dh="[object Date]",yh="[object Map]",mh="[object Number]",gh="[object RegExp]",hh="[object Set]",bh="[object String]",wh="[object Symbol]",vh="[object ArrayBuffer]",xh="[object DataView]",qh="[object Float32Array]",Ih="[object Float64Array]",Ah="[object Int8Array]",Sh="[object Int16Array]",Ph="[object Int32Array]",kh="[object Uint8Array]",Eh="[object Uint8ClampedArray]",Oh="[object Uint16Array]",_h="[object Uint32Array]";function Th(e,t,r){var n=e.constructor;switch(t){case vh:return ah(e);case fh:case dh:return new n(+e);case xh:return uh(e,r);case qh:case Ih:case Ah:case Sh:case Ph:case kh:case Eh:case Oh:case _h:return ph(e,r);case yh:return new n;case mh:case bh:return new n(e);case gh:return ch(e);case hh:return new n;case wh:return lh(e)}}fo.exports=Th});var ur=u((vk,go)=>{"use strict";var jh=ee(),mo=Object.create,Nh=(function(){function e(){}return function(t){if(!jh(t))return{};if(mo)return mo(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();go.exports=Nh});var bo=u((xk,ho)=>{"use strict";var Rh=ur(),Ch=lt(),Mh=$e();function $h(e){return typeof e.constructor=="function"&&!Mh(e)?Rh(Ch(e)):{}}ho.exports=$h});var vo=u((qk,wo)=>{"use strict";var Dh=ce(),Fh=K(),Lh="[object Map]";function Vh(e){return Fh(e)&&Dh(e)==Lh}wo.exports=Vh});var Ao=u((Ik,Io)=>{"use strict";var Uh=vo(),Bh=it(),xo=st(),qo=xo&&xo.isMap,zh=qo?Bh(qo):Uh;Io.exports=zh});var Po=u((Ak,So)=>{"use strict";var Gh=ce(),Kh=K(),Jh="[object Set]";function Hh(e){return Kh(e)&&Gh(e)==Jh}So.exports=Hh});var _o=u((Sk,Oo)=>{"use strict";var Wh=Po(),Yh=it(),ko=st(),Eo=ko&&ko.isSet,Zh=Eo?Yh(Eo):Wh;Oo.exports=Zh});var Co=u((Pk,Ro)=>{"use strict";var Xh=tt(),Qh=rt(),eb=Gt(),tb=os(),rb=ds(),nb=bs(),ib=vs(),sb=Ps(),ob=Ts(),ab=er(),ub=Cs(),cb=ce(),lb=Zs(),pb=yo(),fb=bo(),db=N(),yb=be(),mb=Ao(),gb=ee(),hb=_o(),bb=ne(),wb=at(),vb=1,xb=2,qb=4,To="[object Arguments]",Ib="[object Array]",Ab="[object Boolean]",Sb="[object Date]",Pb="[object Error]",jo="[object Function]",kb="[object GeneratorFunction]",Eb="[object Map]",Ob="[object Number]",No="[object Object]",_b="[object RegExp]",Tb="[object Set]",jb="[object String]",Nb="[object Symbol]",Rb="[object WeakMap]",Cb="[object ArrayBuffer]",Mb="[object DataView]",$b="[object Float32Array]",Db="[object Float64Array]",Fb="[object Int8Array]",Lb="[object Int16Array]",Vb="[object Int32Array]",Ub="[object Uint8Array]",Bb="[object Uint8ClampedArray]",zb="[object Uint16Array]",Gb="[object Uint32Array]",_={};_[To]=_[Ib]=_[Cb]=_[Mb]=_[Ab]=_[Sb]=_[$b]=_[Db]=_[Fb]=_[Lb]=_[Vb]=_[Eb]=_[Ob]=_[No]=_[_b]=_[Tb]=_[jb]=_[Nb]=_[Ub]=_[Bb]=_[zb]=_[Gb]=!0;_[Pb]=_[jo]=_[Rb]=!1;function ft(e,t,r,n,i,s){var o,a=t&vb,c=t&xb,p=t&qb;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!gb(e))return e;var f=db(e);if(f){if(o=lb(e),!a)return ib(e,o)}else{var b=cb(e),l=b==jo||b==kb;if(yb(e))return nb(e,a);if(b==No||b==To||l&&!i){if(o=c||l?{}:fb(e),!a)return c?ob(e,rb(o,e)):sb(e,tb(o,e))}else{if(!_[b])return i?e:{};o=pb(e,b,a)}}s||(s=new Xh);var w=s.get(e);if(w)return w;s.set(e,o),hb(e)?e.forEach(function(d){o.add(ft(d,t,r,d,e,s))}):mb(e)&&e.forEach(function(d,y){o.set(y,ft(d,t,r,y,e,s))});var m=p?c?ub:ab:c?wb:bb,g=f?void 0:m(e);return Qh(g||e,function(d,y){g&&(y=d,d=e[y]),eb(o,y,ft(d,t,r,y,e,s))}),o}Ro.exports=ft});var $o=u((kk,Mo)=>{"use strict";var Kb=Co(),Jb=4;function Hb(e){return Kb(e,Jb)}Mo.exports=Hb});var cr=u((Ek,Do)=>{"use strict";function Wb(e){return function(){return e}}Do.exports=Wb});var Lo=u((Ok,Fo)=>{"use strict";function Yb(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}}Fo.exports=Yb});var Uo=u((_k,Vo)=>{"use strict";var Zb=Lo(),Xb=Zb();Vo.exports=Xb});var lr=u((Tk,Bo)=>{"use strict";var Qb=Uo(),ew=ne();function tw(e,t){return e&&Qb(e,t,ew)}Bo.exports=tw});var Go=u((jk,zo)=>{"use strict";var rw=re();function nw(e,t){return function(r,n){if(r==null)return r;if(!rw(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=nw});var Fe=u((Nk,Ko)=>{"use strict";var iw=lr(),sw=Go(),ow=sw(iw);Ko.exports=ow});var Le=u((Rk,Jo)=>{"use strict";function aw(e){return e}Jo.exports=aw});var Wo=u((Ck,Ho)=>{"use strict";var uw=Le();function cw(e){return typeof e=="function"?e:uw}Ho.exports=cw});var Zo=u((Mk,Yo)=>{"use strict";var lw=rt(),pw=Fe(),fw=Wo(),dw=N();function yw(e,t){var r=dw(e)?lw:pw;return r(e,fw(t))}Yo.exports=yw});var Qo=u(($k,Xo)=>{"use strict";Xo.exports=Zo()});var ta=u((Dk,ea)=>{"use strict";var mw=Fe();function gw(e,t){var r=[];return mw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}ea.exports=gw});var na=u((Fk,ra)=>{"use strict";var hw="__lodash_hash_undefined__";function bw(e){return this.__data__.set(e,hw),this}ra.exports=bw});var sa=u((Lk,ia)=>{"use strict";function ww(e){return this.__data__.has(e)}ia.exports=ww});var pr=u((Vk,oa)=>{"use strict";var vw=et(),xw=na(),qw=sa();function dt(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new vw;++t<r;)this.add(e[t])}dt.prototype.add=dt.prototype.push=xw;dt.prototype.has=qw;oa.exports=dt});var ua=u((Uk,aa)=>{"use strict";function Iw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}aa.exports=Iw});var fr=u((Bk,ca)=>{"use strict";function Aw(e,t){return e.has(t)}ca.exports=Aw});var dr=u((zk,la)=>{"use strict";var Sw=pr(),Pw=ua(),kw=fr(),Ew=1,Ow=2;function _w(e,t,r,n,i,s){var o=r&Ew,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&Ow?new Sw: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(!Pw(t,function(y,v){if(!kw(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}la.exports=_w});var fa=u((Gk,pa)=>{"use strict";function Tw(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}pa.exports=Tw});var yt=u((Kk,da)=>{"use strict";function jw(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}da.exports=jw});var ba=u((Jk,ha)=>{"use strict";var ya=oe(),ma=ar(),Nw=Xe(),Rw=dr(),Cw=fa(),Mw=yt(),$w=1,Dw=2,Fw="[object Boolean]",Lw="[object Date]",Vw="[object Error]",Uw="[object Map]",Bw="[object Number]",zw="[object RegExp]",Gw="[object Set]",Kw="[object String]",Jw="[object Symbol]",Hw="[object ArrayBuffer]",Ww="[object DataView]",ga=ya?ya.prototype:void 0,yr=ga?ga.valueOf:void 0;function Yw(e,t,r,n,i,s,o){switch(r){case Ww:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Hw:return!(e.byteLength!=t.byteLength||!s(new ma(e),new ma(t)));case Fw:case Lw:case Bw:return Nw(+e,+t);case Vw:return e.name==t.name&&e.message==t.message;case zw:case Kw:return e==t+"";case Uw:var a=Cw;case Gw:var c=n&$w;if(a||(a=Mw),e.size!=t.size&&!c)return!1;var p=o.get(e);if(p)return p==t;n|=Dw,o.set(e,t);var f=Rw(a(e),a(t),n,i,s,o);return o.delete(e),f;case Jw:if(yr)return yr.call(e)==yr.call(t)}return!1}ha.exports=Yw});var xa=u((Hk,va)=>{"use strict";var wa=er(),Zw=1,Xw=Object.prototype,Qw=Xw.hasOwnProperty;function ev(e,t,r,n,i,s){var o=r&Zw,a=wa(e),c=a.length,p=wa(t),f=p.length;if(c!=f&&!o)return!1;for(var b=c;b--;){var l=a[b];if(!(o?l in t:Qw.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}va.exports=ev});var Oa=u((Wk,Ea)=>{"use strict";var mr=tt(),tv=dr(),rv=ba(),nv=xa(),qa=ce(),Ia=N(),Aa=be(),iv=Me(),sv=1,Sa="[object Arguments]",Pa="[object Array]",mt="[object Object]",ov=Object.prototype,ka=ov.hasOwnProperty;function av(e,t,r,n,i,s){var o=Ia(e),a=Ia(t),c=o?Pa:qa(e),p=a?Pa:qa(t);c=c==Sa?mt:c,p=p==Sa?mt:p;var f=c==mt,b=p==mt,l=c==p;if(l&&Aa(e)){if(!Aa(t))return!1;o=!0,f=!1}if(l&&!f)return s||(s=new mr),o||iv(e)?tv(e,t,r,n,i,s):rv(e,t,c,r,n,i,s);if(!(r&sv)){var w=f&&ka.call(e,"__wrapped__"),m=b&&ka.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),nv(e,t,r,n,i,s)):!1}Ea.exports=av});var gr=u((Yk,ja)=>{"use strict";var uv=Oa(),_a=K();function Ta(e,t,r,n,i){return e===t?!0:e==null||t==null||!_a(e)&&!_a(t)?e!==e&&t!==t:uv(e,t,r,n,Ta,i)}ja.exports=Ta});var Ra=u((Zk,Na)=>{"use strict";var cv=tt(),lv=gr(),pv=1,fv=2;function dv(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 cv;if(n)var l=n(p,f,c,e,t,b);if(!(l===void 0?lv(f,p,pv|fv,n,b):l))return!1}}return!0}Na.exports=dv});var hr=u((Xk,Ca)=>{"use strict";var yv=ee();function mv(e){return e===e&&!yv(e)}Ca.exports=mv});var $a=u((Qk,Ma)=>{"use strict";var gv=hr(),hv=ne();function bv(e){for(var t=hv(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,gv(i)]}return t}Ma.exports=bv});var br=u((eE,Da)=>{"use strict";function wv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}Da.exports=wv});var La=u((tE,Fa)=>{"use strict";var vv=Ra(),xv=$a(),qv=br();function Iv(e){var t=xv(e);return t.length==1&&t[0][2]?qv(t[0][0],t[0][1]):function(r){return r===e||vv(r,e,t)}}Fa.exports=Iv});var gt=u((rE,Va)=>{"use strict";var Av=ae(),Sv=K(),Pv="[object Symbol]";function kv(e){return typeof e=="symbol"||Sv(e)&&Av(e)==Pv}Va.exports=kv});var ht=u((nE,Ua)=>{"use strict";var Ev=N(),Ov=gt(),_v=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Tv=/^\w*$/;function jv(e,t){if(Ev(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Ov(e)?!0:Tv.test(e)||!_v.test(e)||t!=null&&e in Object(t)}Ua.exports=jv});var Ga=u((iE,za)=>{"use strict";var Ba=et(),Nv="Expected a function";function wr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Nv);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||Ba),r}wr.Cache=Ba;za.exports=wr});var Ja=u((sE,Ka)=>{"use strict";var Rv=Ga(),Cv=500;function Mv(e){var t=Rv(e,function(n){return r.size===Cv&&r.clear(),n}),r=t.cache;return t}Ka.exports=Mv});var Wa=u((oE,Ha)=>{"use strict";var $v=Ja(),Dv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fv=/\\(\\)?/g,Lv=$v(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Dv,function(r,n,i,s){t.push(i?s.replace(Fv,"$1"):n||r)}),t});Ha.exports=Lv});var bt=u((aE,Ya)=>{"use strict";function Vv(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}Ya.exports=Vv});var ru=u((uE,tu)=>{"use strict";var Za=oe(),Uv=bt(),Bv=N(),zv=gt(),Gv=1/0,Xa=Za?Za.prototype:void 0,Qa=Xa?Xa.toString:void 0;function eu(e){if(typeof e=="string")return e;if(Bv(e))return Uv(e,eu)+"";if(zv(e))return Qa?Qa.call(e):"";var t=e+"";return t=="0"&&1/e==-Gv?"-0":t}tu.exports=eu});var iu=u((cE,nu)=>{"use strict";var Kv=ru();function Jv(e){return e==null?"":Kv(e)}nu.exports=Jv});var vr=u((lE,su)=>{"use strict";var Hv=N(),Wv=ht(),Yv=Wa(),Zv=iu();function Xv(e,t){return Hv(e)?e:Wv(e,t)?[e]:Yv(Zv(e))}su.exports=Xv});var Ve=u((pE,ou)=>{"use strict";var Qv=gt(),ex=1/0;function tx(e){if(typeof e=="string"||Qv(e))return e;var t=e+"";return t=="0"&&1/e==-ex?"-0":t}ou.exports=tx});var xr=u((fE,au)=>{"use strict";var rx=vr(),nx=Ve();function ix(e,t){t=rx(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[nx(t[r++])];return r&&r==n?e:void 0}au.exports=ix});var cu=u((dE,uu)=>{"use strict";var sx=xr();function ox(e,t,r){var n=e==null?void 0:sx(e,t);return n===void 0?r:n}uu.exports=ox});var pu=u((yE,lu)=>{"use strict";function ax(e,t){return e!=null&&t in Object(e)}lu.exports=ax});var qr=u((mE,fu)=>{"use strict";var ux=vr(),cx=je(),lx=N(),px=Kt(),fx=nt(),dx=Ve();function yx(e,t,r){t=ux(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=dx(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&&fx(i)&&px(o,i)&&(lx(e)||cx(e)))}fu.exports=yx});var yu=u((gE,du)=>{"use strict";var mx=pu(),gx=qr();function hx(e,t){return e!=null&&gx(e,t,mx)}du.exports=hx});var gu=u((hE,mu)=>{"use strict";var bx=gr(),wx=cu(),vx=yu(),xx=ht(),qx=hr(),Ix=br(),Ax=Ve(),Sx=1,Px=2;function kx(e,t){return xx(e)&&qx(t)?Ix(Ax(e),t):function(r){var n=wx(r,e);return n===void 0&&n===t?vx(r,e):bx(t,n,Sx|Px)}}mu.exports=kx});var Ir=u((bE,hu)=>{"use strict";function Ex(e){return function(t){return t?.[e]}}hu.exports=Ex});var wu=u((wE,bu)=>{"use strict";var Ox=xr();function _x(e){return function(t){return Ox(t,e)}}bu.exports=_x});var xu=u((vE,vu)=>{"use strict";var Tx=Ir(),jx=wu(),Nx=ht(),Rx=Ve();function Cx(e){return Nx(e)?Tx(Rx(e)):jx(e)}vu.exports=Cx});var Ue=u((xE,qu)=>{"use strict";var Mx=La(),$x=gu(),Dx=Le(),Fx=N(),Lx=xu();function Vx(e){return typeof e=="function"?e:e==null?Dx:typeof e=="object"?Fx(e)?$x(e[0],e[1]):Mx(e):Lx(e)}qu.exports=Vx});var Au=u((qE,Iu)=>{"use strict";var Ux=Yt(),Bx=ta(),zx=Ue(),Gx=N();function Kx(e,t){var r=Gx(e)?Ux:Bx;return r(e,zx(t,3))}Iu.exports=Kx});var Pu=u((IE,Su)=>{"use strict";var Jx=Object.prototype,Hx=Jx.hasOwnProperty;function Wx(e,t){return e!=null&&Hx.call(e,t)}Su.exports=Wx});var Eu=u((AE,ku)=>{"use strict";var Yx=Pu(),Zx=qr();function Xx(e,t){return e!=null&&Zx(e,t,Yx)}ku.exports=Xx});var _u=u((SE,Ou)=>{"use strict";var Qx=ot(),eq=ce(),tq=je(),rq=N(),nq=re(),iq=be(),sq=$e(),oq=Me(),aq="[object Map]",uq="[object Set]",cq=Object.prototype,lq=cq.hasOwnProperty;function pq(e){if(e==null)return!0;if(nq(e)&&(rq(e)||typeof e=="string"||typeof e.splice=="function"||iq(e)||oq(e)||tq(e)))return!e.length;var t=eq(e);if(t==aq||t==uq)return!e.size;if(sq(e))return!Qx(e).length;for(var r in e)if(lq.call(e,r))return!1;return!0}Ou.exports=pq});var ju=u((PE,Tu)=>{"use strict";function fq(e){return e===void 0}Tu.exports=fq});var Ru=u((kE,Nu)=>{"use strict";var dq=Fe(),yq=re();function mq(e,t){var r=-1,n=yq(e)?Array(e.length):[];return dq(e,function(i,s,o){n[++r]=t(i,s,o)}),n}Nu.exports=mq});var Mu=u((EE,Cu)=>{"use strict";var gq=bt(),hq=Ue(),bq=Ru(),wq=N();function vq(e,t){var r=wq(e)?gq:bq;return r(e,hq(t,3))}Cu.exports=vq});var Du=u((OE,$u)=>{"use strict";function xq(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}$u.exports=xq});var Lu=u((_E,Fu)=>{"use strict";function qq(e,t,r,n,i){return i(e,function(s,o,a){r=n?(n=!1,s):t(r,s,o,a)}),r}Fu.exports=qq});var Uu=u((TE,Vu)=>{"use strict";var Iq=Du(),Aq=Fe(),Sq=Ue(),Pq=Lu(),kq=N();function Eq(e,t,r){var n=kq(e)?Iq:Pq,i=arguments.length<3;return n(e,Sq(t,4),r,i,Aq)}Vu.exports=Eq});var zu=u((jE,Bu)=>{"use strict";var Oq=ae(),_q=N(),Tq=K(),jq="[object String]";function Nq(e){return typeof e=="string"||!_q(e)&&Tq(e)&&Oq(e)==jq}Bu.exports=Nq});var Ku=u((NE,Gu)=>{"use strict";var Rq=Ir(),Cq=Rq("length");Gu.exports=Cq});var Hu=u((RE,Ju)=>{"use strict";var Mq="\\ud800-\\udfff",$q="\\u0300-\\u036f",Dq="\\ufe20-\\ufe2f",Fq="\\u20d0-\\u20ff",Lq=$q+Dq+Fq,Vq="\\ufe0e\\ufe0f",Uq="\\u200d",Bq=RegExp("["+Uq+Mq+Lq+Vq+"]");function zq(e){return Bq.test(e)}Ju.exports=zq});var nc=u((CE,rc)=>{"use strict";var Yu="\\ud800-\\udfff",Gq="\\u0300-\\u036f",Kq="\\ufe20-\\ufe2f",Jq="\\u20d0-\\u20ff",Hq=Gq+Kq+Jq,Wq="\\ufe0e\\ufe0f",Yq="["+Yu+"]",Ar="["+Hq+"]",Sr="\\ud83c[\\udffb-\\udfff]",Zq="(?:"+Ar+"|"+Sr+")",Zu="[^"+Yu+"]",Xu="(?:\\ud83c[\\udde6-\\uddff]){2}",Qu="[\\ud800-\\udbff][\\udc00-\\udfff]",Xq="\\u200d",ec=Zq+"?",tc="["+Wq+"]?",Qq="(?:"+Xq+"(?:"+[Zu,Xu,Qu].join("|")+")"+tc+ec+")*",eI=tc+ec+Qq,tI="(?:"+[Zu+Ar+"?",Ar,Xu,Qu,Yq].join("|")+")",Wu=RegExp(Sr+"(?="+Sr+")|"+tI+eI,"g");function rI(e){for(var t=Wu.lastIndex=0;Wu.test(e);)++t;return t}rc.exports=rI});var sc=u((ME,ic)=>{"use strict";var nI=Ku(),iI=Hu(),sI=nc();function oI(e){return iI(e)?sI(e):nI(e)}ic.exports=oI});var ac=u(($E,oc)=>{"use strict";var aI=ot(),uI=ce(),cI=re(),lI=zu(),pI=sc(),fI="[object Map]",dI="[object Set]";function yI(e){if(e==null)return 0;if(cI(e))return lI(e)?pI(e):e.length;var t=uI(e);return t==fI||t==dI?e.size:aI(e).length}oc.exports=yI});var cc=u((DE,uc)=>{"use strict";var mI=rt(),gI=ur(),hI=lr(),bI=Ue(),wI=lt(),vI=N(),xI=be(),qI=Ee(),II=ee(),AI=Me();function SI(e,t,r){var n=vI(e),i=n||xI(e)||AI(e);if(t=bI(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:II(e)?r=qI(s)?gI(wI(e)):{}:r={}}return(i?mI:hI)(e,function(o,a,c){return t(r,o,a,c)}),r}uc.exports=SI});var dc=u((FE,fc)=>{"use strict";var lc=oe(),PI=je(),kI=N(),pc=lc?lc.isConcatSpreadable:void 0;function EI(e){return kI(e)||PI(e)||!!(pc&&e&&e[pc])}fc.exports=EI});var gc=u((LE,mc)=>{"use strict";var OI=ct(),_I=dc();function yc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=_I),i||(i=[]);++s<o;){var a=e[s];t>0&&r(a)?t>1?yc(a,t-1,r,n,i):OI(i,a):n||(i[i.length]=a)}return i}mc.exports=yc});var bc=u((VE,hc)=>{"use strict";function TI(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)}hc.exports=TI});var xc=u((UE,vc)=>{"use strict";var jI=bc(),wc=Math.max;function NI(e,t,r){return t=wc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=wc(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),jI(e,this,a)}}vc.exports=NI});var Ac=u((BE,Ic)=>{"use strict";var RI=cr(),qc=Bt(),CI=Le(),MI=qc?function(e,t){return qc(e,"toString",{configurable:!0,enumerable:!1,value:RI(t),writable:!0})}:CI;Ic.exports=MI});var Pc=u((zE,Sc)=>{"use strict";var $I=800,DI=16,FI=Date.now;function LI(e){var t=0,r=0;return function(){var n=FI(),i=DI-(n-r);if(r=n,i>0){if(++t>=$I)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Sc.exports=LI});var Ec=u((GE,kc)=>{"use strict";var VI=Ac(),UI=Pc(),BI=UI(VI);kc.exports=BI});var _c=u((KE,Oc)=>{"use strict";var zI=Le(),GI=xc(),KI=Ec();function JI(e,t){return KI(GI(e,t,zI),e+"")}Oc.exports=JI});var jc=u((JE,Tc)=>{"use strict";function HI(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}Tc.exports=HI});var Rc=u((HE,Nc)=>{"use strict";function WI(e){return e!==e}Nc.exports=WI});var Mc=u((WE,Cc)=>{"use strict";function YI(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}Cc.exports=YI});var Dc=u((YE,$c)=>{"use strict";var ZI=jc(),XI=Rc(),QI=Mc();function eA(e,t,r){return t===t?QI(e,t,r):ZI(e,XI,r)}$c.exports=eA});var Lc=u((ZE,Fc)=>{"use strict";var tA=Dc();function rA(e,t){var r=e==null?0:e.length;return!!r&&tA(e,t,0)>-1}Fc.exports=rA});var Uc=u((XE,Vc)=>{"use strict";function nA(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Vc.exports=nA});var zc=u((QE,Bc)=>{"use strict";function iA(){}Bc.exports=iA});var Kc=u((eO,Gc)=>{"use strict";var Pr=tr(),sA=zc(),oA=yt(),aA=1/0,uA=Pr&&1/oA(new Pr([,-0]))[1]==aA?function(e){return new Pr(e)}:sA;Gc.exports=uA});var Hc=u((tO,Jc)=>{"use strict";var cA=pr(),lA=Lc(),pA=Uc(),fA=fr(),dA=Kc(),yA=yt(),mA=200;function gA(e,t,r){var n=-1,i=lA,s=e.length,o=!0,a=[],c=a;if(r)o=!1,i=pA;else if(s>=mA){var p=t?null:dA(e);if(p)return yA(p);o=!1,i=fA,c=new cA}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}Jc.exports=gA});var Yc=u((rO,Wc)=>{"use strict";var hA=re(),bA=K();function wA(e){return bA(e)&&hA(e)}Wc.exports=wA});var Xc=u((nO,Zc)=>{"use strict";var vA=gc(),xA=_c(),qA=Hc(),IA=Yc(),AA=xA(function(e){return qA(vA(e,1,IA,!0))});Zc.exports=AA});var el=u((iO,Qc)=>{"use strict";var SA=bt();function PA(e,t){return SA(t,function(r){return e[r]})}Qc.exports=PA});var rl=u((sO,tl)=>{"use strict";var kA=el(),EA=ne();function OA(e){return e==null?[]:kA(e,EA(e))}tl.exports=OA});var $=u((oO,nl)=>{"use strict";var wt;if(typeof require=="function")try{wt={clone:$o(),constant:cr(),each:Qo(),filter:Au(),has:Eu(),isArray:N(),isEmpty:_u(),isFunction:Ee(),isUndefined:ju(),keys:ne(),map:Mu(),reduce:Uu(),size:ac(),transform:cc(),union:Xc(),values:rl()}}catch{}wt||(wt=window._);nl.exports=wt});var vt=u((aO,al)=>{"use strict";var A=$();al.exports=k;var _A="\0",le="\0",il="";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=TA(this._isDirected,e,t,r);return e=a.v,t=a.w,Object.freeze(a),this._edgeObjs[o]=a,sl(this._preds[t],e),sl(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],ol(this._preds[t],e),ol(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 sl(e,t){e[t]?e[t]++:e[t]=1}function ol(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+il+s+il+(A.isUndefined(n)?_A:n)}function TA(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 cl=u((uO,ul)=>{"use strict";ul.exports="2.1.8"});var pl=u((cO,ll)=>{"use strict";ll.exports={Graph:vt(),version:cl()}});var dl=u((lO,fl)=>{"use strict";var J=$(),jA=vt();fl.exports={write:NA,read:MA};function NA(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:RA(e),edges:CA(e)};return J.isUndefined(e.graph())||(t.value=J.clone(e.graph())),t}function RA(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 CA(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 MA(e){var t=new jA(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 ml=u((pO,yl)=>{"use strict";var xt=$();yl.exports=$A;function $A(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((fO,hl)=>{"use strict";var gl=$();hl.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 gl.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),!gl.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((dO,bl)=>{"use strict";var DA=$(),FA=Er();bl.exports=VA;var LA=DA.constant(1);function VA(e,t,r,n){return UA(e,String(t),r||LA,n||function(i){return e.outEdges(i)})}function UA(e,t,r,n){var i={},s=new FA,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 vl=u((yO,wl)=>{"use strict";var BA=Or(),zA=$();wl.exports=GA;function GA(e,t,r){return zA.transform(e.nodes(),function(n,i){n[i]=BA(e,i,t,r)},{})}});var _r=u((mO,ql)=>{"use strict";var xl=$();ql.exports=KA;function KA(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){xl.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){xl.has(n,o)||s(o)}),i}});var Al=u((gO,Il)=>{"use strict";var JA=$(),HA=_r();Il.exports=WA;function WA(e){return JA.filter(HA(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var Pl=u((hO,Sl)=>{"use strict";var YA=$();Sl.exports=XA;var ZA=YA.constant(1);function XA(e,t,r){return QA(e,t||ZA,r||function(n){return e.outEdges(n)})}function QA(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((bO,El)=>{"use strict";var ze=$();El.exports=kl;kl.CycleException=qt;function kl(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 Tl=u((wO,_l)=>{"use strict";var Ol=Tr();_l.exports=eS;function eS(e){try{Ol(e)}catch(t){if(t instanceof Ol.CycleException)return!1;throw t}return!0}});var jr=u((vO,Nl)=>{"use strict";var It=$();Nl.exports=tS;function tS(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);jl(e,o,r==="post",s,n,i)}),i}function jl(e,t,r,n,i,s){It.has(n,t)||(n[t]=!0,r||s.push(t),It.each(i(t),function(o){jl(e,o,r,n,i,s)}),r&&s.push(t))}});var Cl=u((xO,Rl)=>{"use strict";var rS=jr();Rl.exports=nS;function nS(e,t){return rS(e,t,"post")}});var $l=u((qO,Ml)=>{"use strict";var iS=jr();Ml.exports=sS;function sS(e,t){return iS(e,t,"pre")}});var Ll=u((IO,Fl)=>{"use strict";var Dl=$(),oS=vt(),aS=Er();Fl.exports=uS;function uS(e,t){var r=new oS,n={},i=new aS,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;Dl.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(),Dl.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 Ul=u((AO,Vl)=>{"use strict";Vl.exports={components:ml(),dijkstra:Or(),dijkstraAll:vl(),findCycles:Al(),floydWarshall:Pl(),isAcyclic:Tl(),postorder:Cl(),preorder:$l(),prim:Ll(),tarjan:_r(),topsort:Tr()}});var Nr=u((SO,zl)=>{"use strict";var Bl=pl();zl.exports={Graph:Bl.Graph,json:dl(),alg:Ul(),version:Bl.version}});var OS={};Ip(OS,{PyretCaptureError:()=>We,PyretDataInstance:()=>Z,SpytialSpecError:()=>X,canon:()=>hp,capturePyret:()=>Ct,constructorDisplayName:()=>V,createPyretDataInstance:()=>wS,createPyretRuntimeAdapter:()=>Ae,diagramTypeNames:()=>IS,generateEdgeId:()=>cp,getSpytialSpec:()=>mp,importPyretCapture:()=>Mt,isPyretDataInstance:()=>vS,prepareDiagram:()=>qS,pyretCaptureSource:()=>fe,readConstructorTypeId:()=>L,reifyToValue:()=>Et,reifyToValues:()=>Je,replit:()=>fe,spytialRulesToYaml:()=>Gr,toDataInstance:()=>xS});module.exports=Ap(OS);var up=Wr(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 Gl(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 Kl(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 Jl(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 Hl(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 Wl(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 Yl(e){if(e.startsWith("~"))return Wl({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 Wl(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 Zl(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 Xl(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 Ql(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 tp=new Set(["Number","String","Boolean"]),Dr=new Set([...tp,"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 ep(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 cS(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;ep(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;ep(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 lS(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 pS(e){switch(e.type){case"Number":return Zl(Yl(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 fS(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 dS(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=cS(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(tp.has(v.type)){let S=pS(v);return w.set(y,S),S}let x=lS(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&&dS(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=fS(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 rp(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 np(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 vf=Object.create;var Ze=Object.defineProperty;var xf=Object.getOwnPropertyDescriptor;var qf=Object.getOwnPropertyNames;var If=Object.getPrototypeOf,Sf=Object.prototype.hasOwnProperty;var a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Af=(e,t)=>{for(var r in t)Ze(e,r,{get:t[r],enumerable:!0})},Hr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of qf(t))!Sf.call(e,i)&&i!==r&&Ze(e,i,{get:()=>t[i],enumerable:!(n=xf(t,i))||n.enumerable});return e};var Wr=(e,t,r)=>(r=e!=null?vf(If(e)):{},Hr(t||!e||!e.__esModule?Ze(r,"default",{value:e,enumerable:!0}):r,e)),Pf=e=>Hr(Ze({},"__esModule",{value:!0}),e);var Zr=a((jA,Yr)=>{"use strict";function kf(){this.__data__=[],this.size=0}Yr.exports=kf});var Xe=a((RA,Xr)=>{"use strict";function Ef(e,t){return e===t||e!==e&&t!==t}Xr.exports=Ef});var Ae=a((NA,Qr)=>{"use strict";var Of=Xe();function _f(e,t){for(var r=e.length;r--;)if(Of(e[r][0],t))return r;return-1}Qr.exports=_f});var tn=a((CA,en)=>{"use strict";var Tf=Ae(),jf=Array.prototype,Rf=jf.splice;function Nf(e){var t=this.__data__,r=Tf(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Rf.call(t,r,1),--this.size,!0}en.exports=Nf});var nn=a((MA,rn)=>{"use strict";var Cf=Ae();function Mf(e){var t=this.__data__,r=Cf(t,e);return r<0?void 0:t[r][1]}rn.exports=Mf});var on=a(($A,sn)=>{"use strict";var $f=Ae();function Df(e){return $f(this.__data__,e)>-1}sn.exports=Df});var un=a((DA,an)=>{"use strict";var Ff=Ae();function Lf(e,t){var r=this.__data__,n=Ff(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}an.exports=Lf});var Pe=a((FA,cn)=>{"use strict";var Vf=Zr(),Uf=tn(),Bf=nn(),Gf=on(),zf=un();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=Vf;de.prototype.delete=Uf;de.prototype.get=Bf;de.prototype.has=Gf;de.prototype.set=zf;cn.exports=de});var fn=a((LA,ln)=>{"use strict";var Kf=Pe();function Jf(){this.__data__=new Kf,this.size=0}ln.exports=Jf});var dn=a((VA,pn)=>{"use strict";function Hf(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}pn.exports=Hf});var mn=a((UA,yn)=>{"use strict";function Wf(e){return this.__data__.get(e)}yn.exports=Wf});var hn=a((BA,gn)=>{"use strict";function Yf(e){return this.__data__.has(e)}gn.exports=Yf});var Lt=a((GA,bn)=>{"use strict";var Zf=typeof global=="object"&&global&&global.Object===Object&&global;bn.exports=Zf});var B=a((zA,wn)=>{"use strict";var Xf=Lt(),Qf=typeof self=="object"&&self&&self.Object===Object&&self,ep=Xf||Qf||Function("return this")();wn.exports=ep});var oe=a((KA,vn)=>{"use strict";var tp=B(),rp=tp.Symbol;vn.exports=rp});var Sn=a((JA,In)=>{"use strict";var xn=oe(),qn=Object.prototype,np=qn.hasOwnProperty,ip=qn.toString,ke=xn?xn.toStringTag:void 0;function sp(e){var t=np.call(e,ke),r=e[ke];try{e[ke]=void 0;var n=!0}catch{}var i=ip.call(e);return n&&(t?e[ke]=r:delete e[ke]),i}In.exports=sp});var Pn=a((HA,An)=>{"use strict";var op=Object.prototype,ap=op.toString;function up(e){return ap.call(e)}An.exports=up});var ae=a((WA,On)=>{"use strict";var kn=oe(),cp=Sn(),lp=Pn(),fp="[object Null]",pp="[object Undefined]",En=kn?kn.toStringTag:void 0;function dp(e){return e==null?e===void 0?pp:fp:En&&En in Object(e)?cp(e):lp(e)}On.exports=dp});var ee=a((YA,_n)=>{"use strict";function yp(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}_n.exports=yp});var Ee=a((ZA,Tn)=>{"use strict";var mp=ae(),gp=ee(),hp="[object AsyncFunction]",bp="[object Function]",wp="[object GeneratorFunction]",vp="[object Proxy]";function xp(e){if(!gp(e))return!1;var t=mp(e);return t==bp||t==wp||t==hp||t==vp}Tn.exports=xp});var Rn=a((XA,jn)=>{"use strict";var qp=B(),Ip=qp["__core-js_shared__"];jn.exports=Ip});var Mn=a((QA,Cn)=>{"use strict";var Vt=Rn(),Nn=(function(){var e=/[^.]+$/.exec(Vt&&Vt.keys&&Vt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Sp(e){return!!Nn&&Nn in e}Cn.exports=Sp});var Ut=a((eP,$n)=>{"use strict";var Ap=Function.prototype,Pp=Ap.toString;function kp(e){if(e!=null){try{return Pp.call(e)}catch{}try{return e+""}catch{}}return""}$n.exports=kp});var Fn=a((tP,Dn)=>{"use strict";var Ep=Ee(),Op=Mn(),_p=ee(),Tp=Ut(),jp=/[\\^$.*+?()[\]{}|]/g,Rp=/^\[object .+?Constructor\]$/,Np=Function.prototype,Cp=Object.prototype,Mp=Np.toString,$p=Cp.hasOwnProperty,Dp=RegExp("^"+Mp.call($p).replace(jp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Fp(e){if(!_p(e)||Op(e))return!1;var t=Ep(e)?Dp:Rp;return t.test(Tp(e))}Dn.exports=Fp});var Vn=a((rP,Ln)=>{"use strict";function Lp(e,t){return e?.[t]}Ln.exports=Lp});var te=a((nP,Un)=>{"use strict";var Vp=Fn(),Up=Vn();function Bp(e,t){var r=Up(e,t);return Vp(r)?r:void 0}Un.exports=Bp});var Qe=a((iP,Bn)=>{"use strict";var Gp=te(),zp=B(),Kp=Gp(zp,"Map");Bn.exports=Kp});var Oe=a((sP,Gn)=>{"use strict";var Jp=te(),Hp=Jp(Object,"create");Gn.exports=Hp});var Jn=a((oP,Kn)=>{"use strict";var zn=Oe();function Wp(){this.__data__=zn?zn(null):{},this.size=0}Kn.exports=Wp});var Wn=a((aP,Hn)=>{"use strict";function Yp(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Hn.exports=Yp});var Zn=a((uP,Yn)=>{"use strict";var Zp=Oe(),Xp="__lodash_hash_undefined__",Qp=Object.prototype,ed=Qp.hasOwnProperty;function td(e){var t=this.__data__;if(Zp){var r=t[e];return r===Xp?void 0:r}return ed.call(t,e)?t[e]:void 0}Yn.exports=td});var Qn=a((cP,Xn)=>{"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)}Xn.exports=sd});var ti=a((lP,ei)=>{"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}ei.exports=ud});var ni=a((fP,ri)=>{"use strict";var cd=Jn(),ld=Wn(),fd=Zn(),pd=Qn(),dd=ti();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=fd;ye.prototype.has=pd;ye.prototype.set=dd;ri.exports=ye});var oi=a((pP,si)=>{"use strict";var ii=ni(),yd=Pe(),md=Qe();function gd(){this.size=0,this.__data__={hash:new ii,map:new(md||yd),string:new ii}}si.exports=gd});var ui=a((dP,ai)=>{"use strict";function hd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}ai.exports=hd});var _e=a((yP,ci)=>{"use strict";var bd=ui();function wd(e,t){var r=e.__data__;return bd(t)?r[typeof t=="string"?"string":"hash"]:r.map}ci.exports=wd});var fi=a((mP,li)=>{"use strict";var vd=_e();function xd(e){var t=vd(this,e).delete(e);return this.size-=t?1:0,t}li.exports=xd});var di=a((gP,pi)=>{"use strict";var qd=_e();function Id(e){return qd(this,e).get(e)}pi.exports=Id});var mi=a((hP,yi)=>{"use strict";var Sd=_e();function Ad(e){return Sd(this,e).has(e)}yi.exports=Ad});var hi=a((bP,gi)=>{"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}gi.exports=kd});var et=a((wP,bi)=>{"use strict";var Ed=oi(),Od=fi(),_d=di(),Td=mi(),jd=hi();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;bi.exports=me});var vi=a((vP,wi)=>{"use strict";var Rd=Pe(),Nd=Qe(),Cd=et(),Md=200;function $d(e,t){var r=this.__data__;if(r instanceof Rd){var n=r.__data__;if(!Nd||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}wi.exports=$d});var tt=a((xP,xi)=>{"use strict";var Dd=Pe(),Fd=fn(),Ld=dn(),Vd=mn(),Ud=hn(),Bd=vi();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;xi.exports=ge});var rt=a((qP,qi)=>{"use strict";function Gd(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}qi.exports=Gd});var Bt=a((IP,Ii)=>{"use strict";var zd=te(),Kd=(function(){try{var e=zd(Object,"defineProperty");return e({},"",{}),e}catch{}})();Ii.exports=Kd});var Gt=a((SP,Ai)=>{"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}Ai.exports=Jd});var zt=a((AP,Pi)=>{"use strict";var Hd=Gt(),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)}Pi.exports=Xd});var Te=a((PP,ki)=>{"use strict";var Qd=zt(),ey=Gt();function ty(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?ey(r,u,c):Qd(r,u,c)}return r}ki.exports=ty});var Oi=a((kP,Ei)=>{"use strict";function ry(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}Ei.exports=ry});var K=a((EP,_i)=>{"use strict";function ny(e){return e!=null&&typeof e=="object"}_i.exports=ny});var ji=a((OP,Ti)=>{"use strict";var iy=ae(),sy=K(),oy="[object Arguments]";function ay(e){return sy(e)&&iy(e)==oy}Ti.exports=ay});var je=a((_P,Ci)=>{"use strict";var Ri=ji(),uy=K(),Ni=Object.prototype,cy=Ni.hasOwnProperty,ly=Ni.propertyIsEnumerable,fy=Ri((function(){return arguments})())?Ri:function(e){return uy(e)&&cy.call(e,"callee")&&!ly.call(e,"callee")};Ci.exports=fy});var N=a((TP,Mi)=>{"use strict";var py=Array.isArray;Mi.exports=py});var Di=a((jP,$i)=>{"use strict";function dy(){return!1}$i.exports=dy});var be=a((Re,he)=>{"use strict";var yy=B(),my=Di(),Vi=typeof Re=="object"&&Re&&!Re.nodeType&&Re,Fi=Vi&&typeof he=="object"&&he&&!he.nodeType&&he,gy=Fi&&Fi.exports===Vi,Li=gy?yy.Buffer:void 0,hy=Li?Li.isBuffer:void 0,by=hy||my;he.exports=by});var Kt=a((RP,Ui)=>{"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}Ui.exports=xy});var nt=a((NP,Bi)=>{"use strict";var qy=9007199254740991;function Iy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qy}Bi.exports=Iy});var zi=a((CP,Gi)=>{"use strict";var Sy=ae(),Ay=nt(),Py=K(),ky="[object Arguments]",Ey="[object Array]",Oy="[object Boolean]",_y="[object Date]",Ty="[object Error]",jy="[object Function]",Ry="[object Map]",Ny="[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]",Gy="[object Int8Array]",zy="[object Int16Array]",Ky="[object Int32Array]",Jy="[object Uint8Array]",Hy="[object Uint8ClampedArray]",Wy="[object Uint16Array]",Yy="[object Uint32Array]",T={};T[Uy]=T[By]=T[Gy]=T[zy]=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[Ry]=T[Ny]=T[Cy]=T[My]=T[$y]=T[Dy]=T[Fy]=!1;function Zy(e){return Py(e)&&Ay(e.length)&&!!T[Sy(e)]}Gi.exports=Zy});var it=a((MP,Ki)=>{"use strict";function Xy(e){return function(t){return e(t)}}Ki.exports=Xy});var st=a((Ne,we)=>{"use strict";var Qy=Lt(),Ji=typeof Ne=="object"&&Ne&&!Ne.nodeType&&Ne,Ce=Ji&&typeof we=="object"&&we&&!we.nodeType&&we,em=Ce&&Ce.exports===Ji,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=a(($P,Yi)=>{"use strict";var rm=zi(),nm=it(),Hi=st(),Wi=Hi&&Hi.isTypedArray,im=Wi?nm(Wi):rm;Yi.exports=im});var Ht=a((DP,Zi)=>{"use strict";var sm=Oi(),om=je(),am=N(),um=be(),cm=Kt(),lm=Me(),fm=Object.prototype,pm=fm.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,u=o?sm(e.length,String):[],c=u.length;for(var f in e)(t||pm.call(e,f))&&!(o&&(f=="length"||i&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||cm(f,c)))&&u.push(f);return u}Zi.exports=dm});var $e=a((FP,Xi)=>{"use strict";var ym=Object.prototype;function mm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||ym;return e===r}Xi.exports=mm});var Wt=a((LP,Qi)=>{"use strict";function gm(e,t){return function(r){return e(t(r))}}Qi.exports=gm});var ts=a((VP,es)=>{"use strict";var hm=Wt(),bm=hm(Object.keys,Object);es.exports=bm});var ot=a((UP,rs)=>{"use strict";var wm=$e(),vm=ts(),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}rs.exports=Im});var re=a((BP,ns)=>{"use strict";var Sm=Ee(),Am=nt();function Pm(e){return e!=null&&Am(e.length)&&!Sm(e)}ns.exports=Pm});var ne=a((GP,is)=>{"use strict";var km=Ht(),Em=ot(),Om=re();function _m(e){return Om(e)?km(e):Em(e)}is.exports=_m});var os=a((zP,ss)=>{"use strict";var Tm=Te(),jm=ne();function Rm(e,t){return e&&Tm(t,jm(t),e)}ss.exports=Rm});var us=a((KP,as)=>{"use strict";function Nm(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}as.exports=Nm});var ls=a((JP,cs)=>{"use strict";var Cm=ee(),Mm=$e(),$m=us(),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}cs.exports=Lm});var at=a((HP,fs)=>{"use strict";var Vm=Ht(),Um=ls(),Bm=re();function Gm(e){return Bm(e)?Vm(e,!0):Um(e)}fs.exports=Gm});var ds=a((WP,ps)=>{"use strict";var zm=Te(),Km=at();function Jm(e,t){return e&&zm(t,Km(t),e)}ps.exports=Jm});var bs=a((De,ve)=>{"use strict";var Hm=B(),hs=typeof De=="object"&&De&&!De.nodeType&&De,ys=hs&&typeof ve=="object"&&ve&&!ve.nodeType&&ve,Wm=ys&&ys.exports===hs,ms=Wm?Hm.Buffer:void 0,gs=ms?ms.allocUnsafe:void 0;function Ym(e,t){if(t)return e.slice();var r=e.length,n=gs?gs(r):new e.constructor(r);return e.copy(n),n}ve.exports=Ym});var vs=a((YP,ws)=>{"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}ws.exports=Zm});var Yt=a((ZP,xs)=>{"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}xs.exports=Xm});var Zt=a((XP,qs)=>{"use strict";function Qm(){return[]}qs.exports=Qm});var ut=a((QP,Ss)=>{"use strict";var eg=Yt(),tg=Zt(),rg=Object.prototype,ng=rg.propertyIsEnumerable,Is=Object.getOwnPropertySymbols,ig=Is?function(e){return e==null?[]:(e=Object(e),eg(Is(e),function(t){return ng.call(e,t)}))}:tg;Ss.exports=ig});var Ps=a((ek,As)=>{"use strict";var sg=Te(),og=ut();function ag(e,t){return sg(e,og(e),t)}As.exports=ag});var ct=a((tk,ks)=>{"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}ks.exports=ug});var lt=a((rk,Es)=>{"use strict";var cg=Wt(),lg=cg(Object.getPrototypeOf,Object);Es.exports=lg});var Xt=a((nk,Os)=>{"use strict";var fg=ct(),pg=lt(),dg=ut(),yg=Zt(),mg=Object.getOwnPropertySymbols,gg=mg?function(e){for(var t=[];e;)fg(t,dg(e)),e=pg(e);return t}:yg;Os.exports=gg});var Ts=a((ik,_s)=>{"use strict";var hg=Te(),bg=Xt();function wg(e,t){return hg(e,bg(e),t)}_s.exports=wg});var Qt=a((sk,js)=>{"use strict";var vg=ct(),xg=N();function qg(e,t,r){var n=t(e);return xg(e)?n:vg(n,r(e))}js.exports=qg});var er=a((ok,Rs)=>{"use strict";var Ig=Qt(),Sg=ut(),Ag=ne();function Pg(e){return Ig(e,Ag,Sg)}Rs.exports=Pg});var Cs=a((ak,Ns)=>{"use strict";var kg=Qt(),Eg=Xt(),Og=at();function _g(e){return kg(e,Og,Eg)}Ns.exports=_g});var $s=a((uk,Ms)=>{"use strict";var Tg=te(),jg=B(),Rg=Tg(jg,"DataView");Ms.exports=Rg});var Fs=a((ck,Ds)=>{"use strict";var Ng=te(),Cg=B(),Mg=Ng(Cg,"Promise");Ds.exports=Mg});var tr=a((lk,Ls)=>{"use strict";var $g=te(),Dg=B(),Fg=$g(Dg,"Set");Ls.exports=Fg});var Us=a((fk,Vs)=>{"use strict";var Lg=te(),Vg=B(),Ug=Lg(Vg,"WeakMap");Vs.exports=Ug});var ce=a((pk,Ws)=>{"use strict";var rr=$s(),nr=Qe(),ir=Fs(),sr=tr(),or=Us(),Hs=ae(),xe=Ut(),Bs="[object Map]",Bg="[object Object]",Gs="[object Promise]",zs="[object Set]",Ks="[object WeakMap]",Js="[object DataView]",Gg=xe(rr),zg=xe(nr),Kg=xe(ir),Jg=xe(sr),Hg=xe(or),ue=Hs;(rr&&ue(new rr(new ArrayBuffer(1)))!=Js||nr&&ue(new nr)!=Bs||ir&&ue(ir.resolve())!=Gs||sr&&ue(new sr)!=zs||or&&ue(new or)!=Ks)&&(ue=function(e){var t=Hs(e),r=t==Bg?e.constructor:void 0,n=r?xe(r):"";if(n)switch(n){case Gg:return Js;case zg:return Bs;case Kg:return Gs;case Jg:return zs;case Hg:return Ks}return t});Ws.exports=ue});var Zs=a((dk,Ys)=>{"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}Ys.exports=Zg});var ar=a((yk,Xs)=>{"use strict";var Xg=B(),Qg=Xg.Uint8Array;Xs.exports=Qg});var ft=a((mk,eo)=>{"use strict";var Qs=ar();function eh(e){var t=new e.constructor(e.byteLength);return new Qs(t).set(new Qs(e)),t}eo.exports=eh});var ro=a((gk,to)=>{"use strict";var th=ft();function rh(e,t){var r=t?th(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}to.exports=rh});var io=a((hk,no)=>{"use strict";var nh=/\w*$/;function ih(e){var t=new e.constructor(e.source,nh.exec(e));return t.lastIndex=e.lastIndex,t}no.exports=ih});var co=a((bk,uo)=>{"use strict";var so=oe(),oo=so?so.prototype:void 0,ao=oo?oo.valueOf:void 0;function sh(e){return ao?Object(ao.call(e)):{}}uo.exports=sh});var fo=a((wk,lo)=>{"use strict";var oh=ft();function ah(e,t){var r=t?oh(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}lo.exports=ah});var yo=a((vk,po)=>{"use strict";var uh=ft(),ch=ro(),lh=io(),fh=co(),ph=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]",Sh="[object Float64Array]",Ah="[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 Sh:case Ah:case Ph:case kh:case Eh:case Oh:case _h:case Th:return ph(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 fh(e)}}po.exports=jh});var ur=a((xk,go)=>{"use strict";var Rh=ee(),mo=Object.create,Nh=(function(){function e(){}return function(t){if(!Rh(t))return{};if(mo)return mo(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();go.exports=Nh});var bo=a((qk,ho)=>{"use strict";var Ch=ur(),Mh=lt(),$h=$e();function Dh(e){return typeof e.constructor=="function"&&!$h(e)?Ch(Mh(e)):{}}ho.exports=Dh});var vo=a((Ik,wo)=>{"use strict";var Fh=ce(),Lh=K(),Vh="[object Map]";function Uh(e){return Lh(e)&&Fh(e)==Vh}wo.exports=Uh});var So=a((Sk,Io)=>{"use strict";var Bh=vo(),Gh=it(),xo=st(),qo=xo&&xo.isMap,zh=qo?Gh(qo):Bh;Io.exports=zh});var Po=a((Ak,Ao)=>{"use strict";var Kh=ce(),Jh=K(),Hh="[object Set]";function Wh(e){return Jh(e)&&Kh(e)==Hh}Ao.exports=Wh});var _o=a((Pk,Oo)=>{"use strict";var Yh=Po(),Zh=it(),ko=st(),Eo=ko&&ko.isSet,Xh=Eo?Zh(Eo):Yh;Oo.exports=Xh});var Co=a((kk,No)=>{"use strict";var Qh=tt(),eb=rt(),tb=zt(),rb=os(),nb=ds(),ib=bs(),sb=vs(),ob=Ps(),ab=Ts(),ub=er(),cb=Cs(),lb=ce(),fb=Zs(),pb=yo(),db=bo(),yb=N(),mb=be(),gb=So(),hb=ee(),bb=_o(),wb=ne(),vb=at(),xb=1,qb=2,Ib=4,To="[object Arguments]",Sb="[object Array]",Ab="[object Boolean]",Pb="[object Date]",kb="[object Error]",jo="[object Function]",Eb="[object GeneratorFunction]",Ob="[object Map]",_b="[object Number]",Ro="[object Object]",Tb="[object RegExp]",jb="[object Set]",Rb="[object String]",Nb="[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]",Gb="[object Uint8ClampedArray]",zb="[object Uint16Array]",Kb="[object Uint32Array]",_={};_[To]=_[Sb]=_[Mb]=_[$b]=_[Ab]=_[Pb]=_[Db]=_[Fb]=_[Lb]=_[Vb]=_[Ub]=_[Ob]=_[_b]=_[Ro]=_[Tb]=_[jb]=_[Rb]=_[Nb]=_[Bb]=_[Gb]=_[zb]=_[Kb]=!0;_[kb]=_[jo]=_[Cb]=!1;function pt(e,t,r,n,i,s){var o,u=t&xb,c=t&qb,f=t&Ib;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!hb(e))return e;var p=yb(e);if(p){if(o=fb(e),!u)return sb(e,o)}else{var h=lb(e),l=h==jo||h==Eb;if(mb(e))return ib(e,u);if(h==Ro||h==To||l&&!i){if(o=c||l?{}:db(e),!u)return c?ab(e,nb(o,e)):ob(e,rb(o,e))}else{if(!_[h])return i?e:{};o=pb(e,h,u)}}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(pt(d,t,r,d,e,s))}):gb(e)&&e.forEach(function(d,y){o.set(y,pt(d,t,r,y,e,s))});var m=f?c?cb:ub:c?vb:wb,g=p?void 0:m(e);return eb(g||e,function(d,y){g&&(y=d,d=e[y]),tb(o,y,pt(d,t,r,y,e,s))}),o}No.exports=pt});var $o=a((Ek,Mo)=>{"use strict";var Jb=Co(),Hb=4;function Wb(e){return Jb(e,Hb)}Mo.exports=Wb});var cr=a((Ok,Do)=>{"use strict";function Yb(e){return function(){return e}}Do.exports=Yb});var Lo=a((_k,Fo)=>{"use strict";function Zb(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}}Fo.exports=Zb});var Uo=a((Tk,Vo)=>{"use strict";var Xb=Lo(),Qb=Xb();Vo.exports=Qb});var lr=a((jk,Bo)=>{"use strict";var ew=Uo(),tw=ne();function rw(e,t){return e&&ew(e,t,tw)}Bo.exports=rw});var zo=a((Rk,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=a((Nk,Ko)=>{"use strict";var sw=lr(),ow=zo(),aw=ow(sw);Ko.exports=aw});var Le=a((Ck,Jo)=>{"use strict";function uw(e){return e}Jo.exports=uw});var Wo=a((Mk,Ho)=>{"use strict";var cw=Le();function lw(e){return typeof e=="function"?e:cw}Ho.exports=lw});var Zo=a(($k,Yo)=>{"use strict";var fw=rt(),pw=Fe(),dw=Wo(),yw=N();function mw(e,t){var r=yw(e)?fw:pw;return r(e,dw(t))}Yo.exports=mw});var Qo=a((Dk,Xo)=>{"use strict";Xo.exports=Zo()});var ta=a((Fk,ea)=>{"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}ea.exports=hw});var na=a((Lk,ra)=>{"use strict";var bw="__lodash_hash_undefined__";function ww(e){return this.__data__.set(e,bw),this}ra.exports=ww});var sa=a((Vk,ia)=>{"use strict";function vw(e){return this.__data__.has(e)}ia.exports=vw});var fr=a((Uk,oa)=>{"use strict";var xw=et(),qw=na(),Iw=sa();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;oa.exports=dt});var ua=a((Bk,aa)=>{"use strict";function Sw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}aa.exports=Sw});var pr=a((Gk,ca)=>{"use strict";function Aw(e,t){return e.has(t)}ca.exports=Aw});var dr=a((zk,la)=>{"use strict";var Pw=fr(),kw=ua(),Ew=pr(),Ow=1,_w=2;function Tw(e,t,r,n,i,s){var o=r&Ow,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&_w?new Pw: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(!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}la.exports=Tw});var pa=a((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=a((Jk,da)=>{"use strict";function Rw(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}da.exports=Rw});var ba=a((Hk,ha)=>{"use strict";var ya=oe(),ma=ar(),Nw=Xe(),Cw=dr(),Mw=pa(),$w=yt(),Dw=1,Fw=2,Lw="[object Boolean]",Vw="[object Date]",Uw="[object Error]",Bw="[object Map]",Gw="[object Number]",zw="[object RegExp]",Kw="[object Set]",Jw="[object String]",Hw="[object Symbol]",Ww="[object ArrayBuffer]",Yw="[object DataView]",ga=ya?ya.prototype:void 0,yr=ga?ga.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 ma(e),new ma(t)));case Lw:case Vw:case Gw:return Nw(+e,+t);case Uw:return e.name==t.name&&e.message==t.message;case zw:case Jw:return e==t+"";case Bw:var u=Mw;case Kw:var c=n&Dw;if(u||(u=$w),e.size!=t.size&&!c)return!1;var f=o.get(e);if(f)return f==t;n|=Fw,o.set(e,t);var p=Cw(u(e),u(t),n,i,s,o);return o.delete(e),p;case Hw:if(yr)return yr.call(e)==yr.call(t)}return!1}ha.exports=Zw});var xa=a((Wk,va)=>{"use strict";var wa=er(),Xw=1,Qw=Object.prototype,ev=Qw.hasOwnProperty;function tv(e,t,r,n,i,s){var o=r&Xw,u=wa(e),c=u.length,f=wa(t),p=f.length;if(c!=p&&!o)return!1;for(var h=c;h--;){var l=u[h];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;++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}va.exports=tv});var Oa=a((Yk,Ea)=>{"use strict";var mr=tt(),rv=dr(),nv=ba(),iv=xa(),qa=ce(),Ia=N(),Sa=be(),sv=Me(),ov=1,Aa="[object Arguments]",Pa="[object Array]",mt="[object Object]",av=Object.prototype,ka=av.hasOwnProperty;function uv(e,t,r,n,i,s){var o=Ia(e),u=Ia(t),c=o?Pa:qa(e),f=u?Pa:qa(t);c=c==Aa?mt:c,f=f==Aa?mt:f;var p=c==mt,h=f==mt,l=c==f;if(l&&Sa(e)){if(!Sa(t))return!1;o=!0,p=!1}if(l&&!p)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=p&&ka.call(e,"__wrapped__"),m=h&&ka.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}Ea.exports=uv});var gr=a((Zk,ja)=>{"use strict";var cv=Oa(),_a=K();function Ta(e,t,r,n,i){return e===t?!0:e==null||t==null||!_a(e)&&!_a(t)?e!==e&&t!==t:cv(e,t,r,n,Ta,i)}ja.exports=Ta});var Na=a((Xk,Ra)=>{"use strict";var lv=tt(),fv=gr(),pv=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 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 lv;if(n)var l=n(f,p,c,e,t,h);if(!(l===void 0?fv(p,f,pv|dv,n,h):l))return!1}}return!0}Ra.exports=yv});var hr=a((Qk,Ca)=>{"use strict";var mv=ee();function gv(e){return e===e&&!mv(e)}Ca.exports=gv});var $a=a((eE,Ma)=>{"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}Ma.exports=wv});var br=a((tE,Da)=>{"use strict";function vv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}Da.exports=vv});var La=a((rE,Fa)=>{"use strict";var xv=Na(),qv=$a(),Iv=br();function Sv(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)}}Fa.exports=Sv});var gt=a((nE,Va)=>{"use strict";var Av=ae(),Pv=K(),kv="[object Symbol]";function Ev(e){return typeof e=="symbol"||Pv(e)&&Av(e)==kv}Va.exports=Ev});var ht=a((iE,Ua)=>{"use strict";var Ov=N(),_v=gt(),Tv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jv=/^\w*$/;function Rv(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)}Ua.exports=Rv});var za=a((sE,Ga)=>{"use strict";var Ba=et(),Nv="Expected a function";function wr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Nv);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||Ba),r}wr.Cache=Ba;Ga.exports=wr});var Ja=a((oE,Ka)=>{"use strict";var Cv=za(),Mv=500;function $v(e){var t=Cv(e,function(n){return r.size===Mv&&r.clear(),n}),r=t.cache;return t}Ka.exports=$v});var Wa=a((aE,Ha)=>{"use strict";var Dv=Ja(),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});Ha.exports=Vv});var bt=a((uE,Ya)=>{"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}Ya.exports=Uv});var ru=a((cE,tu)=>{"use strict";var Za=oe(),Bv=bt(),Gv=N(),zv=gt(),Kv=1/0,Xa=Za?Za.prototype:void 0,Qa=Xa?Xa.toString:void 0;function eu(e){if(typeof e=="string")return e;if(Gv(e))return Bv(e,eu)+"";if(zv(e))return Qa?Qa.call(e):"";var t=e+"";return t=="0"&&1/e==-Kv?"-0":t}tu.exports=eu});var iu=a((lE,nu)=>{"use strict";var Jv=ru();function Hv(e){return e==null?"":Jv(e)}nu.exports=Hv});var vr=a((fE,su)=>{"use strict";var Wv=N(),Yv=ht(),Zv=Wa(),Xv=iu();function Qv(e,t){return Wv(e)?e:Yv(e,t)?[e]:Zv(Xv(e))}su.exports=Qv});var Ve=a((pE,ou)=>{"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}ou.exports=rx});var xr=a((dE,au)=>{"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}au.exports=sx});var cu=a((yE,uu)=>{"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}uu.exports=ax});var fu=a((mE,lu)=>{"use strict";function ux(e,t){return e!=null&&t in Object(e)}lu.exports=ux});var qr=a((gE,pu)=>{"use strict";var cx=vr(),lx=je(),fx=N(),px=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)&&px(o,i)&&(fx(e)||lx(e)))}pu.exports=mx});var yu=a((hE,du)=>{"use strict";var gx=fu(),hx=qr();function bx(e,t){return e!=null&&hx(e,t,gx)}du.exports=bx});var gu=a((bE,mu)=>{"use strict";var wx=gr(),vx=cu(),xx=yu(),qx=ht(),Ix=hr(),Sx=br(),Ax=Ve(),Px=1,kx=2;function Ex(e,t){return qx(e)&&Ix(t)?Sx(Ax(e),t):function(r){var n=vx(r,e);return n===void 0&&n===t?xx(r,e):wx(t,n,Px|kx)}}mu.exports=Ex});var Ir=a((wE,hu)=>{"use strict";function Ox(e){return function(t){return t?.[e]}}hu.exports=Ox});var wu=a((vE,bu)=>{"use strict";var _x=xr();function Tx(e){return function(t){return _x(t,e)}}bu.exports=Tx});var xu=a((xE,vu)=>{"use strict";var jx=Ir(),Rx=wu(),Nx=ht(),Cx=Ve();function Mx(e){return Nx(e)?jx(Cx(e)):Rx(e)}vu.exports=Mx});var Ue=a((qE,qu)=>{"use strict";var $x=La(),Dx=gu(),Fx=Le(),Lx=N(),Vx=xu();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)}qu.exports=Ux});var Su=a((IE,Iu)=>{"use strict";var Bx=Yt(),Gx=ta(),zx=Ue(),Kx=N();function Jx(e,t){var r=Kx(e)?Bx:Gx;return r(e,zx(t,3))}Iu.exports=Jx});var Pu=a((SE,Au)=>{"use strict";var Hx=Object.prototype,Wx=Hx.hasOwnProperty;function Yx(e,t){return e!=null&&Wx.call(e,t)}Au.exports=Yx});var Eu=a((AE,ku)=>{"use strict";var Zx=Pu(),Xx=qr();function Qx(e,t){return e!=null&&Xx(e,t,Zx)}ku.exports=Qx});var _u=a((PE,Ou)=>{"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,fq=lq.hasOwnProperty;function pq(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(fq.call(e,r))return!1;return!0}Ou.exports=pq});var ju=a((kE,Tu)=>{"use strict";function dq(e){return e===void 0}Tu.exports=dq});var Nu=a((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 Mu=a((OE,Cu)=>{"use strict";var hq=bt(),bq=Ue(),wq=Nu(),vq=N();function xq(e,t){var r=vq(e)?hq:wq;return r(e,bq(t,3))}Cu.exports=xq});var Du=a((_E,$u)=>{"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}$u.exports=qq});var Lu=a((TE,Fu)=>{"use strict";function Iq(e,t,r,n,i){return i(e,function(s,o,u){r=n?(n=!1,s):t(r,s,o,u)}),r}Fu.exports=Iq});var Uu=a((jE,Vu)=>{"use strict";var Sq=Du(),Aq=Fe(),Pq=Ue(),kq=Lu(),Eq=N();function Oq(e,t,r){var n=Eq(e)?Sq:kq,i=arguments.length<3;return n(e,Pq(t,4),r,i,Aq)}Vu.exports=Oq});var Gu=a((RE,Bu)=>{"use strict";var _q=ae(),Tq=N(),jq=K(),Rq="[object String]";function Nq(e){return typeof e=="string"||!Tq(e)&&jq(e)&&_q(e)==Rq}Bu.exports=Nq});var Ku=a((NE,zu)=>{"use strict";var Cq=Ir(),Mq=Cq("length");zu.exports=Mq});var Hu=a((CE,Ju)=>{"use strict";var $q="\\ud800-\\udfff",Dq="\\u0300-\\u036f",Fq="\\ufe20-\\ufe2f",Lq="\\u20d0-\\u20ff",Vq=Dq+Fq+Lq,Uq="\\ufe0e\\ufe0f",Bq="\\u200d",Gq=RegExp("["+Bq+$q+Vq+Uq+"]");function zq(e){return Gq.test(e)}Ju.exports=zq});var nc=a((ME,rc)=>{"use strict";var Yu="\\ud800-\\udfff",Kq="\\u0300-\\u036f",Jq="\\ufe20-\\ufe2f",Hq="\\u20d0-\\u20ff",Wq=Kq+Jq+Hq,Yq="\\ufe0e\\ufe0f",Zq="["+Yu+"]",Sr="["+Wq+"]",Ar="\\ud83c[\\udffb-\\udfff]",Xq="(?:"+Sr+"|"+Ar+")",Zu="[^"+Yu+"]",Xu="(?:\\ud83c[\\udde6-\\uddff]){2}",Qu="[\\ud800-\\udbff][\\udc00-\\udfff]",Qq="\\u200d",ec=Xq+"?",tc="["+Yq+"]?",eI="(?:"+Qq+"(?:"+[Zu,Xu,Qu].join("|")+")"+tc+ec+")*",tI=tc+ec+eI,rI="(?:"+[Zu+Sr+"?",Sr,Xu,Qu,Zq].join("|")+")",Wu=RegExp(Ar+"(?="+Ar+")|"+rI+tI,"g");function nI(e){for(var t=Wu.lastIndex=0;Wu.test(e);)++t;return t}rc.exports=nI});var sc=a(($E,ic)=>{"use strict";var iI=Ku(),sI=Hu(),oI=nc();function aI(e){return sI(e)?oI(e):iI(e)}ic.exports=aI});var ac=a((DE,oc)=>{"use strict";var uI=ot(),cI=ce(),lI=re(),fI=Gu(),pI=sc(),dI="[object Map]",yI="[object Set]";function mI(e){if(e==null)return 0;if(lI(e))return fI(e)?pI(e):e.length;var t=cI(e);return t==dI||t==yI?e.size:uI(e).length}oc.exports=mI});var cc=a((FE,uc)=>{"use strict";var gI=rt(),hI=ur(),bI=lr(),wI=Ue(),vI=lt(),xI=N(),qI=be(),II=Ee(),SI=ee(),AI=Me();function PI(e,t,r){var n=xI(e),i=n||qI(e)||AI(e);if(t=wI(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:SI(e)?r=II(s)?hI(vI(e)):{}:r={}}return(i?gI:bI)(e,function(o,u,c){return t(r,o,u,c)}),r}uc.exports=PI});var dc=a((LE,pc)=>{"use strict";var lc=oe(),kI=je(),EI=N(),fc=lc?lc.isConcatSpreadable:void 0;function OI(e){return EI(e)||kI(e)||!!(fc&&e&&e[fc])}pc.exports=OI});var gc=a((VE,mc)=>{"use strict";var _I=ct(),TI=dc();function yc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=TI),i||(i=[]);++s<o;){var u=e[s];t>0&&r(u)?t>1?yc(u,t-1,r,n,i):_I(i,u):n||(i[i.length]=u)}return i}mc.exports=yc});var bc=a((UE,hc)=>{"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)}hc.exports=jI});var xc=a((BE,vc)=>{"use strict";var RI=bc(),wc=Math.max;function NI(e,t,r){return t=wc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=wc(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),RI(e,this,u)}}vc.exports=NI});var Sc=a((GE,Ic)=>{"use strict";var CI=cr(),qc=Bt(),MI=Le(),$I=qc?function(e,t){return qc(e,"toString",{configurable:!0,enumerable:!1,value:CI(t),writable:!0})}:MI;Ic.exports=$I});var Pc=a((zE,Ac)=>{"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)}}Ac.exports=VI});var Ec=a((KE,kc)=>{"use strict";var UI=Sc(),BI=Pc(),GI=BI(UI);kc.exports=GI});var _c=a((JE,Oc)=>{"use strict";var zI=Le(),KI=xc(),JI=Ec();function HI(e,t){return JI(KI(e,t,zI),e+"")}Oc.exports=HI});var jc=a((HE,Tc)=>{"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}Tc.exports=WI});var Nc=a((WE,Rc)=>{"use strict";function YI(e){return e!==e}Rc.exports=YI});var Mc=a((YE,Cc)=>{"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}Cc.exports=ZI});var Dc=a((ZE,$c)=>{"use strict";var XI=jc(),QI=Nc(),eS=Mc();function tS(e,t,r){return t===t?eS(e,t,r):XI(e,QI,r)}$c.exports=tS});var Lc=a((XE,Fc)=>{"use strict";var rS=Dc();function nS(e,t){var r=e==null?0:e.length;return!!r&&rS(e,t,0)>-1}Fc.exports=nS});var Uc=a((QE,Vc)=>{"use strict";function iS(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Vc.exports=iS});var Gc=a((eO,Bc)=>{"use strict";function sS(){}Bc.exports=sS});var Kc=a((tO,zc)=>{"use strict";var Pr=tr(),oS=Gc(),aS=yt(),uS=1/0,cS=Pr&&1/aS(new Pr([,-0]))[1]==uS?function(e){return new Pr(e)}:oS;zc.exports=cS});var Hc=a((rO,Jc)=>{"use strict";var lS=fr(),fS=Lc(),pS=Uc(),dS=pr(),yS=Kc(),mS=yt(),gS=200;function hS(e,t,r){var n=-1,i=fS,s=e.length,o=!0,u=[],c=u;if(r)o=!1,i=pS;else if(s>=gS){var f=t?null:yS(e);if(f)return mS(f);o=!1,i=dS,c=new lS}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}Jc.exports=hS});var Yc=a((nO,Wc)=>{"use strict";var bS=re(),wS=K();function vS(e){return wS(e)&&bS(e)}Wc.exports=vS});var Xc=a((iO,Zc)=>{"use strict";var xS=gc(),qS=_c(),IS=Hc(),SS=Yc(),AS=qS(function(e){return IS(xS(e,1,SS,!0))});Zc.exports=AS});var el=a((sO,Qc)=>{"use strict";var PS=bt();function kS(e,t){return PS(t,function(r){return e[r]})}Qc.exports=kS});var rl=a((oO,tl)=>{"use strict";var ES=el(),OS=ne();function _S(e){return e==null?[]:ES(e,OS(e))}tl.exports=_S});var $=a((aO,nl)=>{"use strict";var wt;if(typeof require=="function")try{wt={clone:$o(),constant:cr(),each:Qo(),filter:Su(),has:Eu(),isArray:N(),isEmpty:_u(),isFunction:Ee(),isUndefined:ju(),keys:ne(),map:Mu(),reduce:Uu(),size:ac(),transform:cc(),union:Xc(),values:rl()}}catch{}wt||(wt=window._);nl.exports=wt});var vt=a((uO,al)=>{"use strict";var S=$();al.exports=k;var TS="\0",le="\0",il="";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=jS(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[o]=u,sl(this._preds[t],e),sl(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],ol(this._preds[t],e),ol(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 sl(e,t){e[t]?e[t]++:e[t]=1}function ol(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+il+s+il+(S.isUndefined(n)?TS:n)}function jS(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 cl=a((cO,ul)=>{"use strict";ul.exports="2.1.8"});var fl=a((lO,ll)=>{"use strict";ll.exports={Graph:vt(),version:cl()}});var dl=a((fO,pl)=>{"use strict";var J=$(),RS=vt();pl.exports={write:NS,read:$S};function NS(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:CS(e),edges:MS(e)};return J.isUndefined(e.graph())||(t.value=J.clone(e.graph())),t}function CS(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 MS(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 $S(e){var t=new RS(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 ml=a((pO,yl)=>{"use strict";var xt=$();yl.exports=DS;function DS(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((dO,hl)=>{"use strict";var gl=$();hl.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 gl.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),!gl.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((yO,bl)=>{"use strict";var FS=$(),LS=Er();bl.exports=US;var VS=FS.constant(1);function US(e,t,r,n){return BS(e,String(t),r||VS,n||function(i){return e.outEdges(i)})}function BS(e,t,r,n){var i={},s=new LS,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 vl=a((mO,wl)=>{"use strict";var GS=Or(),zS=$();wl.exports=KS;function KS(e,t,r){return zS.transform(e.nodes(),function(n,i){n[i]=GS(e,i,t,r)},{})}});var _r=a((gO,ql)=>{"use strict";var xl=$();ql.exports=JS;function JS(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){xl.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){xl.has(n,o)||s(o)}),i}});var Sl=a((hO,Il)=>{"use strict";var HS=$(),WS=_r();Il.exports=YS;function YS(e){return HS.filter(WS(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var Pl=a((bO,Al)=>{"use strict";var ZS=$();Al.exports=QS;var XS=ZS.constant(1);function QS(e,t,r){return eA(e,t||XS,r||function(n){return e.outEdges(n)})}function eA(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((wO,El)=>{"use strict";var Ge=$();El.exports=kl;kl.CycleException=qt;function kl(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 Tl=a((vO,_l)=>{"use strict";var Ol=Tr();_l.exports=tA;function tA(e){try{Ol(e)}catch(t){if(t instanceof Ol.CycleException)return!1;throw t}return!0}});var jr=a((xO,Rl)=>{"use strict";var It=$();Rl.exports=rA;function rA(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);jl(e,o,r==="post",s,n,i)}),i}function jl(e,t,r,n,i,s){It.has(n,t)||(n[t]=!0,r||s.push(t),It.each(i(t),function(o){jl(e,o,r,n,i,s)}),r&&s.push(t))}});var Cl=a((qO,Nl)=>{"use strict";var nA=jr();Nl.exports=iA;function iA(e,t){return nA(e,t,"post")}});var $l=a((IO,Ml)=>{"use strict";var sA=jr();Ml.exports=oA;function oA(e,t){return sA(e,t,"pre")}});var Ll=a((SO,Fl)=>{"use strict";var Dl=$(),aA=vt(),uA=Er();Fl.exports=cA;function cA(e,t){var r=new aA,n={},i=new uA,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;Dl.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(),Dl.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 Ul=a((AO,Vl)=>{"use strict";Vl.exports={components:ml(),dijkstra:Or(),dijkstraAll:vl(),findCycles:Sl(),floydWarshall:Pl(),isAcyclic:Tl(),postorder:Cl(),preorder:$l(),prim:Ll(),tarjan:_r(),topsort:Tr()}});var Rr=a((PO,Gl)=>{"use strict";var Bl=fl();Gl.exports={Graph:Bl.Graph,json:dl(),alg:Ul(),version:Bl.version}});var _A={};Af(_A,{PyretCaptureError:()=>We,PyretDataInstance:()=>Z,SpytialSpecError:()=>X,canon:()=>wf,capturePyret:()=>Ct,constructorDisplayName:()=>V,createPyretDataInstance:()=>vA,createPyretRuntimeAdapter:()=>Se,diagramTypeNames:()=>SA,generateEdgeId:()=>lf,getSpytialSpec:()=>hf,importPyretCapture:()=>Mt,isPyretDataInstance:()=>xA,prepareDiagram:()=>IA,pyretCaptureSource:()=>pe,readConstructorTypeId:()=>L,reifyToValue:()=>Et,reifyToValues:()=>Je,replit:()=>pe,spytialRulesToYaml:()=>zr,toDataInstance:()=>qA});module.exports=Pf(_A);var cf=Wr(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 zl(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 Kl(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 Jl(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 Hl(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 Wl(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 Yl(e){if(e.startsWith("~"))return Wl({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 Wl(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 Zl(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 Xl(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 Ql(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 tf=new Set(["Number","String","Boolean"]),Dr=new Set([...tf,"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 ef(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 lA(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;ef(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;ef(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 fA(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 pA(e){switch(e.type){case"Number":return Zl(Yl(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 dA(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 yA(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=lA(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(tf.has(v.type)){let A=pA(v);return w.set(y,A),A}let x=fA(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&&yA(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=dA(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 rf(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 nf(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,a)=>`{${t(o)}; [list: ${i.map(c=>t(c[a])).join(", ")}]}`).join(", ")}]`}function ip(e,t,r){let n=ie,i=h=>!!h&&typeof h=="object"&&!Y(h)&&n(h)?.kind!=="nothing",s=h=>{if(Array.isArray(h))return h;let q=n(h);if(q?.kind==="reference")return[h.value];if(q?.kind==="string-dict")return h.entries.map(P=>P[1]);if(q?.kind==="table")return pe(h).rows.flat();if(Array.isArray(h.vals))return h.vals;let I=He(h);return I?I.elements:Object.keys(h.dict??{}).map(P=>h.dict[P])},o=new Set,a=new Set,c=new Map,p=!1,f=!1,b=[e];for(;b.length;){let h=b.pop();if(!i(h))continue;if(o.has(h)){p=!0;continue}if(o.add(h),!Array.isArray(h)&&n(h)?.kind==="reference"&&a.add(h),!Array.isArray(h)){let I=n(h);I?.kind==="string-dict"&&I.mutable&&c.set(h,I),I?.kind==="table"&&(f=!0)}let q=s(h);for(let I=q.length-1;I>=0;I--)b.push(q[I])}if(!a.size&&!((c.size||f)&&p))return;let l=new Map,w=new Map,m=new Set(["nothing"]);for(let h of o){if(Array.isArray(h))continue;typeof h.$name=="string"&&m.add(V(h.$name));let q=z(h),I=q?.mutableFields?.map(P=>q.fields[P])??[];w.set(h,I);for(let P of I){let M=h.dict[P];if(!a.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:h,field:P})}}let g=0,d=h=>{let q;do q=h+g++;while(m.has(q));return m.add(q),q},y=new Map,v=new Set,x=[],E=new Map,O=h=>!i(h)||v.has(h),R=h=>{if(!i(h))return t(h,R);if(!v.has(h))throw new Error("Unresolved Pyret construction dependency");return y.get(h)};for(let h of o)a.has(h)||y.set(h,d("spytial-value"));if([...a].some(h=>!l.has(h)))throw new Error("Pyret reference source requires a reachable mutable constructor field for each reference");let D=new Map;for(let[h,q]of c){let I=y.get(h),P=q.sealed?d("spytial-dict"):I;x.push(`shadow ${P} = ${t({$pyretValue:{...q,sealed:!1},entries:[]},R)}`),q.sealed&&x.push(`shadow ${I} = ${P}.seal()`),v.add(h),D.set(h,P)}let G=new Map(D),U=()=>{for(let[h,q]of G)if(s(h).every(O)){for(let[I,P]of h.entries)x.push(`${q}.set-now(${R(I)}, ${R(P)})`);G.delete(h)}for(let[h,{owner:q,field:I}]of E)O(h.value)&&(x.push(`${q}!{${r(I)}: ${R(h.value)}}`),E.delete(h))},H=h=>{let q=new Set,I=[h];for(;I.length;){let P=I.pop();if(!(!i(P)||q.has(P))){if(!v.has(P)||G.has(P)||E.has(P))return!1;q.add(P),I.push(...s(P))}}return!0},S=[...o].filter(h=>!a.has(h)&&!c.has(h));for(;S.length;){U();let h=!1;for(let q=0;q<S.length;){let I=S[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,R)}`),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})}S.splice(q,1),h=!0}if(!h)throw new Error("Pyret graph cannot be constructed: cycles need allocatable mutable fields and set elements need complete contents")}return U(),x.push(R(e)),`block:
6
- ${x.map(h=>" "+h).join(`
5
+ end`:`[table-from-columns: ${n.map((o,u)=>`{${t(o)}; [list: ${i.map(c=>t(c[u])).join(", ")}]}`).join(", ")}]`}function sf(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 sp(e,t,r){let n=e.mutable?"mutable-string-dict":"string-dict",i=[...t];if(!e.mutable&&i.length>8){let s=c=>{let p=0;for(let f=0;f<c.length;f++)p=31*p+c.charCodeAt(f)|0;return p>>>1&1073741824|p&3221225471},o=s(i[8][0]),a=i.findIndex(([c])=>s(c)===o);i.splice(8,0,i.splice(a,1)[0])}return`[${n}: ${i.flatMap(([s,o])=>[r(s),r(o)]).join(", ")}]`+(e.sealed?".seal()":"")}function yS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"dict"in e}function mS(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 gS=new Set(`and as ascending ask by cases check data descending do does-not-raise
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 of(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 mA(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"dict"in e}function gA(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 hA=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+/)),hS=new Set(`function break return do yield throw continue while class interface
12
+ shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),bA=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+/)),bS=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function Lr(e){if(gS.has(e)||hS.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 bS.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 mS(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=np(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=sp(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(yS(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=He(e);if(s){let f=rp(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 ip(n,(i,s)=>Vr(i,new Set,s),Lr)??Vr(n,new Set)}function Nt(e){return JSON.stringify(e.atoms)}function op(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 ap(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 cp(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"?Hl(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?Ql(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=Kl(r);if(n)return n;let i=Tt(r);if(i)return i;if(Jl(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=Gl(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 up.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=cp(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=op([...c.tuples,...a]),c.types=ap(c.tuples,c.types)):this.relations.set(o.id,{...o,tuples:a})}),!0}};j.globalConstructorCache=new Map,j.instantiationCounter=0;var Z=j,wS=(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"}`)}},vS=e=>e instanceof Z;var lp=Wr(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 lp.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 pp(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:Xl(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 pp({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=pp(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 xS(e,t){return Mt(Ct([{name:"value",value:e}],Ae(t))).instance}function qS(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 IS(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"}},AS=Object.values($t.rules),SS=$t.blocks,PS=$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 fp(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 kS(e,t,r,n){if(t.type==="enum"||t.type==="enum-list"){let i=PS[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=fp(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 yp(e,SS[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 dp(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]=kS(o,s,r,a)}return i}function yp(e,t,r,n){return dp(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}- ${zr(i,t+2).trimStart()}`).join(`
14
+ enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),wA=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function Lr(e){if(hA.has(e)||bA.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 wA.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 gA(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=nf(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=of(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(mA(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=He(e);if(s){let p=rf(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 sf(n,(i,s)=>Vr(i,new Set,s),Lr)??Vr(n,new Set)}function Rt(e){return JSON.stringify(e.atoms)}function af(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 uf(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 lf(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"?Hl(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?Ql(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=Kl(r);if(n)return n;let i=Tt(r);if(i)return i;if(Jl(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=zl(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 cf.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=lf(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=af([...c.tuples,...u]),c.types=uf(c.tuples,c.types)):this.relations.set(o.id,{...o,tuples:u})}),!0}};j.globalConstructorCache=new Map,j.instantiationCounter=0;var Z=j,vA=(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"}`)}},xA=e=>e instanceof Z;var ff=Wr(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 ff.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 pf(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:Xl(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 pf({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=pf(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 qA(e,t){return Mt(Ct([{name:"value",value:e}],Se(t))).instance}function IA(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 SA(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"}},AA=Object.values($t.rules),PA=$t.blocks,kA=$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 df(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 yf(e,t,r,n){if(t.type==="enum"||t.type==="enum-list"){let i=kA[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=df(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 EA(e,PA[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 mf(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]=yf(e[s.pyretName],s,r,o)}return i}function gf(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 mf(i,t,r,n)}function EA(e,t,r,n){let i=Dt(e,r,n,t.constructor,["fields"]);return gf(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(a=>typeof a!="object")?JSON.stringify(s):zr(s,t+2);return`${r}${JSON.stringify(i)}:${o.startsWith(`
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 Gr(e,t){let r={constraints:[],directives:[]};for(let[n,i]of fp(e,t,"rules").entries()){let s=`rules[${n}]`,o=i?.$name;o!=="constraint"&&o!=="directive"&&C(s,"expected SpytialRule");let a=Dt(i,t,s,o,["value"]).value,c=a?.$name,p=AS.find(m=>m.constructor===c);(!p||p.section!==`${o}s`)&&C(s,`invalid ${o} variant`);let f=p.fields.filter(m=>m.required),b=p.fields.filter(m=>!m.required),l=Dt(a,t,s,p.constructor,[...f.map(m=>m.pyretName),...b.length?["options"]:[]]),w=dp(l,f,t,s);b.length&&Object.assign(w,yp(l.options,{constructor:p.optionsConstructor,fields:b},t,`${s}.options`)),r[p.section].push({[p.yamlKey]:p.shape==="scalar"?w[p.fields[0].name]:w})}return zr(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 ES(e,t,r){let n=Ae(t),i=new Set,s=new Set,o=[],a=[{value:e}];for(let l=0;l<a.length;l++){let{value:w,path:m}=a[l];if(i.has(w)||(i.add(w),t.isFunction(w)||t.isMethod(w)))continue;let g=(d,y)=>a.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)&&C(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)=>a.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=[],p=0,f="value",b=()=>{if(p===o.length)return c;let l=o[p++];return f=`${Br(l.path)}._spytial`,t.safeCall(()=>l.fn.app(),w=>{try{c.push(typeof w=="string"?w:Gr(w,t))}catch(m){let g=new X(f,m instanceof Error?m.message:String(m));throw r&&r(g),g}return b()},f)};return{next:b,documents:c,hasHooks:o.length>0,activePath:()=>f}}async function mp(e,t){let r=ES(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 gp=new Set(["Number","String","Boolean","Index"]);function hp(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,a=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++)a.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,gp.has(y.type)?y.label:void 0]):"?"},p=t?[t]:r.map(d=>d.id).filter(d=>!a.has(d)),f=(p.length?p:r.map(d=>d.id)).slice().sort((d,y)=>{let v=c(d).localeCompare(c(y));return v!==0?v:d.localeCompare(y)}),b=new Map,l=0,w=d=>{let y=[d];for(;y.length;){let v=y.pop();if(b.has(v))continue;b.set(v,l++);let x=(o.get(v)??[]).slice().sort((E,O)=>{let R=E.rel.localeCompare(O.rel);if(R!==0)return R;let D=E.tuple.slice(1).map(c).join("|"),G=O.tuple.slice(1).map(c).join("|");return D.localeCompare(G)});for(let E=x.length-1;E>=0;E--){let O=x[E].tuple;for(let R=O.length-1;R>=1;R--)y.push(O[R])}}};for(let d of f)w(d);r.map(d=>d.id).sort().forEach(d=>{b.has(d)||b.set(d,l++)});let m=r.map(d=>({id:b.get(d.id),type:d.type,label:gp.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=>b.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})}
19
+ `):"{}"}function zr(e,t){let r={constraints:[],directives:[]};for(let[n,i]of df(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=AA.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=mf(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=yf(l.selector,{...m,required:!0},t,`${s}.selector`)}h.length&&Object.assign(w,gf(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 OA(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 hf(e,t){let r=OA(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 bf=new Set(["Number","String","Boolean","Index"]);function wf(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,bf.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:bf.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})}