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