@rse/gradia 1.3.0 → 1.4.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 +64 -38
- package/dst/gradia-api-config.d.ts +7 -0
- package/dst/gradia-api-config.js +9 -0
- package/dst/gradia-api-render-base.d.ts +4 -6
- package/dst/gradia-api-render-base.js +9 -6
- package/dst/gradia-api-render-container.js +5 -5
- package/dst/gradia-api-render-edge.d.ts +3 -0
- package/dst/gradia-api-render-edge.js +11 -1
- package/dst/gradia-api-render-node.d.ts +7 -7
- package/dst/gradia-api-render-node.js +25 -15
- package/dst/gradia-api-render-svg.js +88 -58
- package/dst/gradia-api-type-graph.js +19 -17
- package/dst/gradia-api-type-hub.js +27 -17
- package/dst/gradia-api.umd.js +2 -2
- package/package.json +1 -1
package/dst/gradia-api.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Gradia={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),u=e=>{let t=[],n=1,r=1,i=0,a=/--(?:\((?:"((?:[^"\\\n]|\\.)*)"|([^()"\s]+))\)--)?>(?:\[(?:"((?:[^"\\\n]|\\.)*)"|([^[\]"\s]+))\])?/y,o=/"((?:[^"\\\n]|\\.)*)"/y,s=/(?:(?!--)[^\s[\](),:">#])+/y,c=t=>(t.lastIndex=i,t.exec(e)),l=e=>e.replace(/\\(.)/g,`$1`);for(;i<e.length;){let u=e[i],d;if(u===`
|
|
2
2
|
`)t.push({type:`newline`,text:`
|
|
3
3
|
`,line:n,col:r}),n++,r=1,i++;else if(u===` `||u===` `||u===`\r`)r++,i++;else if(u===`#`)for(;i<e.length&&e[i]!==`
|
|
4
|
-
`;)r++,i++;else if((d=c(a))!==null){let e=d[1]===void 0?d[2]:l(d[1]),a=d[3]===void 0?d[4]:l(d[3]);t.push({type:`edge`,text:d[0],name:e,arity:a,line:n,col:r}),r+=d[0].length,i+=d[0].length}else if((d=c(o))!==null)t.push({type:`string`,text:l(d[1]),line:n,col:r}),r+=d[0].length,i+=d[0].length;else if(u===`"`)throw Error(`unterminated string at line ${n}, column ${r}`);else if(`[](),:`.includes(u))t.push({type:`punct`,text:u,line:n,col:r}),r++,i++;else if((d=c(s))!==null)t.push({type:`word`,text:d[0],line:n,col:r}),r+=d[0].length,i+=d[0].length;else throw Error(`invalid character ${JSON.stringify(u)} at line ${n}, column ${r}`)}return t},d=e=>{let t=u(e),n={nodes:new Map,edges:[]},r=0,i=()=>r<t.length?t[r]:null,a=e=>{let t=i();return t===null||t.type!==`punct`||t.text!==e?!1:(r++,!0)},o=e=>{let t=i(),n=t===null?`end of input`:`line ${t.line}, column ${t.col}`;throw Error(`expected ${e} at ${n}`)},s=()=>{let e=i();return e===null||e.type!==`word`&&e.type!==`string`?o(`bareword or quoted string`):(r++,e.text)},c=()=>{let e=t[r],i=s(),c=null;a(`:`)&&(c=s());let l=[];if(a(`[`)){for(;;){let e=s();a(`:`)||o(`":" in key/value attribute`);let t=s();if(l.push({key:e,val:t}),!a(`,`))break}a(`]`)||o(`"]" after key/value attributes`)}let u=n.nodes.get(i)??{id:i,name:i,attrs:[]};c!==null&&(u.name=c);for(let t of l){let n=u.attrs.findIndex(e=>e.key===t.key);if(n===-1)u.attrs.push(t);else{if((t.key===`group`||t.key===`parent`)&&u.attrs[n].val!==t.val)throw Error(`node "${i}" cannot be a member of more than one ${t.key===`group`?`group`:`container`} ("${u.attrs[n].val}" vs "${t.val}") at line ${e.line}, column ${e.col}`);u.attrs[n]=t}}let d=u.attrs.find(e=>e.key===`parent`)?.val;return d!==void 0&&!n.nodes.has(d)&&n.nodes.set(d,{id:d,name:d,attrs:[]}),n.nodes.set(i,u),i};for(;r<t.length;){if(t[r].type===`newline`){r++;continue}let e=c(),a=i();for(;a!==null&&a.type===`edge`;){r++;let t=c();n.edges.push({source:e,target:t,name:a.name,arity:a.arity}),e=t,a=i()}a!==null&&a.type!==`newline`&&o(`edge operator or end of line`)}return n},f=l(s(((e,t)=>{t.exports={}}))(),1),p={"font-family":`Helvetica`,"font-embed":!1,"color-node-regular-name":`#336699`,"color-node-regular-box":`#e0f0ff`,"color-node-regular-border":`#c0d0e0`,"color-node-primary-name":`#ffffff`,"color-node-primary-box":`#336699`,"color-node-primary-border":`#003366`,"color-node-ghost-name":`#666666`,"color-node-ghost-box":`#f0f0f0`,"color-node-ghost-border":`#a0a0a0`,"color-node-self-name":`#444444`,"color-node-self-box":`#e0e0e0`,"color-node-self-border":`#707070`,"color-group-name":`#6699cc`,"color-group-box":`#f4f8fc`,"color-group-border":`#c0d0e0`,"color-container-name":`#666666`,"color-container-box":`#f6f6f6`,"color-container-border":`#a0a0a0`,"color-edge-line":`#999999`,"color-edge-name":`#333333`,"color-edge-arity":`#333333`,"color-edge-halo":`#ffffff`,"size-canvas-margin":40,"size-node-width-min":220,"size-node-width-max":0,"size-node-height-scale":2.25,"size-edge-corner-radius":20,"size-edge-hop-radius":8,"size-edge-track-gap":12,"size-edge-port-gap":24,"group-box-padding":30,"group-box-gap":40,"container-box-padding":30,"graph-columns-max":4,"graph-channel-width-max":140,"graph-channel-width-min":24,"graph-gutter-height-max":90,"graph-gutter-height-min":20,"graph-node-separation":30,"graph-rank-separation":60,"graph-node-degree-max":3,"hub-channel-width-max":340,"hub-channel-width-min":240,"hub-node-gap":20,"hub-node-degree-max":3,"hub-node-count-max":0,"grid-columns-max":4,"grid-columns-min":3,"grid-gap-horizontal":40,"grid-gap-vertical":20,"grid-node-width-equal":!0,"grid-node-height-equal":!0},m=(e,t)=>Object.hasOwn(e,t)?e[t].replace(/[;{}]/g,``):`var(--gradia-${t}, ${p[t]})`,h=(e,t)=>{let n={};for(let[r,i]of Object.entries(e)){if(!Object.hasOwn(p,r))throw Error(`unknown configuration option "${r}"`);let e=r;if(i!==void 0){if(e===`font-embed`&&!t.trusted)throw Error(`configuration option "${r}" is not available in this context`);if(typeof p[e]==`boolean`){if(typeof i!=`boolean`&&i!==`true`&&i!==`false`)throw Error(`invalid value "${String(i)}" for boolean configuration option "${r}" (expected "true" or "false")`);n[e]=typeof i==`boolean`?i:i===`true`}else if(typeof p[e]==`number`){let t=Number(i);if(typeof i!=`number`&&typeof i!=`string`||String(i).trim()===``||!Number.isFinite(t)||t<0)throw Error(`invalid value "${String(i)}" for numeric configuration option "${r}" (expected a non-negative number)`);n[e]=t}else{if(typeof i!=`string`)throw Error(`invalid value "${String(i)}" for string configuration option "${r}" (expected a string)`);if(i===``)throw Error(`invalid empty value for string configuration option "${r}"`);if(e===`font-family`&&i.endsWith(`.woff2`)&&!t.trusted)throw Error(`configuration option "font-family" must not be the path to a WOFF2 file in this context`);n[e]=i}}}return n},g=e=>{let t={};for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#config[ \t]+([a-z][a-z0-9-]*)[ \t]+(?:"((?:[^"\\]|\\.)*)"|(\S+))[ \t]*$/.exec(n);if(e===null)continue;let r=e[2]===void 0?e[3]:e[2].replace(/\\(.)/g,`$1`);try{Object.assign(t,h({[e[1]]:r},{trusted:!1}))}catch{}}return t},_={"Source Sans 3":{file:`source-sans/WOFF2/VF/SourceSans3VF-Upright.ttf.woff2`,weight:`200 900`}},v=e=>{let t=e[`font-family`];if(Object.hasOwn(_,t)){let n=_[t];if(e[`font-embed`]){let e=f.default.fileURLToPath((e=>e)(n.file));return{family:t,embed:f.default.readFileSync(e).toString(`base64`),weight:n.weight}}return{family:t}}if(t.endsWith(`.woff2`)){let n=f.default.basename(t,`.woff2`);return e[`font-embed`]?{family:n,embed:f.default.readFileSync(t).toString(`base64`)}:{family:n}}if(e[`font-embed`])throw Error(`configuration option "font-embed" requires configuration option "font-family" to be a built-in font family (${Object.keys(_).map(e=>`"${e}"`).join(`, `)}) or the path to a WOFF2 file`);return{family:t}},y=(e,t)=>e.length*t*.52,b=(e,t,n)=>{let r=e.split(/\s+/).filter(e=>e!==``),i=r.join(` `);if(n<=0||r.length<=1||y(i,t)<=n)return[i];let a=[],o=r[0];for(let e of r.slice(1))y(`${o} ${e}`,t)>n?(a.push(o),o=e):o=`${o} ${e}`;return a.push(o),a},x=e=>e.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F\uFFFE\uFFFF\p{Cs}]/gu,``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),S=e=>e.attrs.findLast(e=>e.key===`primary`)?.val===`true`,C=e=>S(e)?{fill:`color-node-primary-box`,stroke:`color-node-primary-border`,text:`color-node-primary-name`}:{fill:`color-node-regular-box`,stroke:`color-node-regular-border`,text:`color-node-regular-name`},w=e=>e.attrs.findLast(e=>e.key===`type`)?.val,T=e=>e.attrs.findLast(e=>e.key===`parent`)?.val,E=e=>e.attrs.findLast(e=>e.key===`container`)?.val,D=e=>34+(w(e)===void 0?0:20),O=e=>{let t=e.attrs.findLast(e=>e.key===`order`)?.val,n=t!==void 0&&t.trim()!==``?Number(t):NaN;return Number.isFinite(n)?n:void 0},k=new Set([`url`,`type`,`primary`,`group`,`parent`,`container`,`order`]),A=e=>e.attrs.filter(e=>!k.has(e.key)),ee=/^\s*([A-Za-z][A-Za-z0-9+.-]*):/,j=new Set([`http`,`https`,`mailto`]),M=e=>{let t=e.attrs.findLast(e=>e.key===`url`)?.val;if(t===void 0)return;let n=t.replace(/[\u0000-\u001F\u007F]/g,``),r=ee.exec(n);if(r===null||j.has(r[1].toLowerCase()))return n},N=(e,t)=>{let n=t[`size-node-width-max`]>0?t[`size-node-width-max`]-36:0,r=w(e);return{name:b(e.name,30,n),type:r===void 0?[]:b(r,16,n),attrs:A(e).flatMap(e=>b(`${e.key}: ${e.val}`,22,n))}},P=(e,t,n,r)=>{let i=new Map,a=new Map,o=new Map;for(let s of e){let e=r?.get(s.id);if(e!==void 0){i.set(s.id,e.w),a.set(s.id,e.h),o.set(s.id,e.h);continue}let c=N(s,t),l=Math.max(0,...c.name.map(e=>y(e,30)),...c.type.map(e=>y(e,16)),...c.attrs.map(e=>y(e,22))),u=56+(c.name.length-1)*34+c.type.length*26+(c.attrs.length>0?12+(c.attrs.length-1)*30+20:0);i.set(s.id,Math.max(t[`size-node-width-min`],Math.ceil(l)+36)),a.set(s.id,Math.max(u,Math.ceil(u*n(s)))),o.set(s.id,u)}return{boxW:i,boxH:a,contentH:o}},F=10,I=e=>{let t=[...e];for(let e=t.length-2;e>0;e--){let[n,r,i]=[t[e-1],t[e],t[e+1]];(n[0]===r[0]&&r[0]===i[0]||n[1]===r[1]&&r[1]===i[1])&&t.splice(e,1)}let n=[];for(let e of t){let t=n.at(-1);(t===void 0||t[0]!==e[0]||t[1]!==e[1])&&n.push(e)}return n},te=(e,t,n,r,i,a,o,s,c)=>{let l=new Map,u=(e,t,n)=>{let r=l.get(e);r===void 0?l.set(e,[{edge:t,role:n}]):r.push({edge:t,role:n})};e.forEach((e,n)=>{u(`${e.source}:${t[n].s}`,n,`s`),u(`${e.target}:${t[n].t}`,n,`t`)});let d=new Map;for(let[t,u]of l){let l=t.lastIndexOf(`:`),f=t.slice(0,l),p=t.slice(l+1);if(p===`n`){u.sort((e,t)=>t.edge-e.edge);let e=Math.min(o,(i.get(f)-F)/u.length);u.forEach((t,i)=>{d.set(`${t.edge}:${t.role}`,{x:n(f)+(i-(u.length-1)/2)*e,y:r(f)-a.get(f)/2})});continue}let m=n(f)+(p===`e`?1:-1)*i.get(f)/2,h=e=>c?.(e.edge,e.role),g=(e,t)=>d.set(`${e.edge}:${e.role}`,{x:m,y:t}),_=[];for(let e of u.filter(e=>h(e)!==void 0)){let t=r(f)+h(e);g(e,t),_.push(t)}_.sort((e,t)=>e-t);let v=u.filter(e=>h(e)===void 0),y=t=>t.role===`s`?e[t.edge].target:e[t.edge].source,b=e=>s?.(e.edge)??r(y(e));v.sort((e,t)=>b(e)-b(t)||e.edge-t.edge);let x=v.length+_.length,S=Math.min(o,(a.get(f)-F)/x);if(_.length===0){v.forEach((e,t)=>g(e,r(f)+(t-(x-1)/2)*S));continue}let C=r(f)-(a.get(f)-F)/2+S/2,w=r(f)+(a.get(f)-F)/2-S/2,T=[C-S,..._,w+S],E=e=>_.filter(t=>t<b(e)).length,D=T.slice(1).map((e,t)=>({lo:Math.max(C,T[t]+S),hi:Math.min(w,e-S),ports:v.filter(e=>E(e)===t)})),O=e=>e.hi<e.lo?0:Math.floor((e.hi-e.lo)/S)+1;for(let e=0;e<D.length-1;e++)for(;D[e].ports.length>O(D[e]);)D[e+1].ports.unshift(D[e].ports.pop());for(let e=D.length-1;e>0;e--)for(;D[e].ports.length>O(D[e]);)D[e-1].ports.push(D[e].ports.shift());let k=0;D.forEach((e,t)=>{let n=e.ports.length,i=n>1?Math.min(S,Math.max(e.hi-e.lo,0)/(n-1)):S,a=Math.min(Math.max(r(f)+(k+t-(x-1)/2)*S,e.lo),e.hi-(n-1)*i);e.ports.forEach((e,t)=>g(e,a+t*i)),k+=n})}return d},L=24,R=e=>e.hairpin?e.mirror?[]:[e.posIn,e.posOut]:[e.mirror?e.posOut:e.posIn],ne=e=>e.hairpin?e.mirror?[e.posIn,e.posOut]:[]:[e.mirror?e.posIn:e.posOut],re=(e,t)=>{let n=(e,t)=>t>=Math.min(e.posIn,e.posOut)&&t<=Math.max(e.posIn,e.posOut);return ne(e).filter(e=>n(t,e)).length+R(t).filter(t=>n(e,t)).length},ie=(e,t)=>ne(e).filter(e=>R(t).includes(e)).length,ae=14,oe=e=>{let t=e.length;if(t<2)return e;let n=e.map((n,r)=>e.map((e,i)=>(ie(n,e)*2*t*t+re(n,e))*t*t+ +(r>i))),r;if(t<=ae){let e=new Float64Array(1<<t).fill(1/0),i=new Int8Array(1<<t);e[0]=0;for(let r=1;r<1<<t;r++)for(let a=0;a<t;a++){if(!(r&1<<a))continue;let o=r&~(1<<a),s=e[o];for(let e=0;e<t;e++)o&1<<e&&(s+=n[e][a]);s<e[r]&&(e[r]=s,i[r]=a)}r=[];for(let e=(1<<t)-1;e!==0;e&=~(1<<i[e]))r.unshift(i[e])}else{r=e.map((e,t)=>t);for(let e=!0;e;){e=!1;for(let i=1;i<t&&!e;i++)for(let a=0;a+i<=t&&!e;a++){let o=0;for(let s=a+i;s<t&&!e;s++){for(let e=a;e<a+i;e++)o+=n[r[s]][r[e]]-n[r[e]][r[s]];o<0&&(r.splice(s-i+1,0,...r.splice(a,i)),e=!0)}o=0;for(let t=a-1;t>=0&&!e;t--){for(let e=a;e<a+i;e++)o+=n[r[e]][r[t]]-n[r[t]][r[e]];o<0&&(r.splice(t,0,...r.splice(a,i)),e=!0)}}}}return r.map(t=>e[t])},se=(e,t,n,r)=>{let i=(e,t)=>{let n=t?-1:1,r=e.filter(e=>e.posOut<e.posIn).sort((e,t)=>n*(e.posIn-t.posIn||e.posOut-t.posOut)),i=e.filter(e=>e.posOut>=e.posIn).sort((e,t)=>n*(t.posIn-e.posIn||t.posOut-e.posOut));return[...r,...i]},a=oe([...i(e.filter(e=>!e.mirror),!1),...i(e.filter(e=>e.mirror),!0)]),o=(e,t)=>Math.min(e.posIn,e.posOut)<Math.max(t.posIn,t.posOut)+L&&Math.min(t.posIn,t.posOut)<Math.max(e.posIn,e.posOut)+L,s=new Map,c=0;a.forEach((e,t)=>{let n=0;for(let r=0;r<t;r++)o(a[r],e)&&(n=Math.max(n,s.get(a[r].edge)+1));s.set(e.edge,n),c=Math.max(c,n+1)});let l=Math.min(r,(t-n)/Math.max(c-1,1)),u=new Map;for(let[e,t]of s)u.set(e,(t-(c-1)/2)*l);return u},ce=e=>{let t=[];return e.forEach((e,n)=>{for(let r=0;r<e.length-1;r++){let[i,a]=[e[r],e[r+1]];i[0]===a[0]&&t.push({owner:n,x:i[0],y1:Math.min(i[1],a[1]),y2:Math.max(i[1],a[1])})}}),e.map((e,n)=>{let r=new Map;for(let i=0;i<e.length-1;i++){let[a,o]=[e[i],e[i+1]];if(a[1]!==o[1])continue;let s=a[1],c=Math.min(a[0],o[0]),l=Math.max(a[0],o[0]),u=[];for(let e of t)e.owner!==n&&e.x>c+1&&e.x<l-1&&s>e.y1+1&&s<e.y2-1&&u.push(e.x);u.length>0&&r.set(i,u)}return r})},le=(e,t)=>Math.abs(t[0]-e[0])+Math.abs(t[1]-e[1]),ue=(e,t,n,r)=>{let i=i=>{if(i<=0||i>=e.length-1)return 0;let a=Math.min(n,le(e[i-1],e[i])/2,le(e[i],e[i+1])/2);for(let n of[i-1,i])for(let o of t.get(n)??[])a=Math.min(a,Math.max(Math.abs(o-e[i][0])-r-2,4));return a},a=[];for(let n=0;n<e.length-1;n++){let[o,s]=[e[n],e[n+1]],c=le(o,s),l=(s[0]-o[0])/c,u=(s[1]-o[1])/c,d=i(n),f=i(n+1),p=[o[0]+l*d,o[1]+u*d],m=[s[0]-l*f,s[1]-u*f];if(n===0&&a.push(`M ${p[0]} ${p[1]}`),o[1]===s[1]&&t.has(n)){let e=Math.sign(s[0]-o[0]),i=t.get(n).filter(t=>(t-p[0])*e>2&&(m[0]-t)*e>2).sort((t,n)=>(t-n)*e),c=[];for(let e of i){let t=c.at(-1);t!==void 0&&Math.abs(e-t.at(-1))<=r*2+14?t.push(e):c.push([e])}for(let t of c){let n=t[0]-e*r,i=t.at(-1)+e*r;(n-p[0])*e<0&&(n=p[0]),(m[0]-i)*e<0&&(i=m[0]),a.push(`L ${n} ${o[1]}`),a.push(`A ${Math.abs(i-n)/2} ${r} 0 0 ${+(e>0)} ${i} ${o[1]}`)}}if(a.push(`L ${m[0]} ${m[1]}`),n<e.length-2){let t=e[n+1],r=e[n+2],i=le(t,r),o=[t[0]+(r[0]-t[0])/i*f,t[1]+(r[1]-t[1])/i*f];a.push(`Q ${s[0]} ${s[1]} ${o[0]} ${o[1]}`)}}return a.join(` `)},de=(e,t)=>{let n=e.slice(0,-1).map((t,n)=>le(t,e[n+1])),r=n.reduce((e,t)=>e+t,0)*t;for(let t=0;t<n.length;t++){if(r<=n[t]||t===n.length-1){let i=n[t]>0?r/n[t]:0;return{x:e[t][0]+(e[t+1][0]-e[t][0])*Math.min(i,1),y:e[t][1]+(e[t+1][1]-e[t][1])*Math.min(i,1),horizontal:e[t][1]===e[t+1][1]}}r-=n[t]}return{x:e[0][0],y:e[0][1],horizontal:!0}},z=(e,t)=>{let n=new Map,r=new Map;for(let i of e.nodes.values()){let a=E(i);if(a!==void 0&&!t.includes(a))throw Error(`invalid container layout type "${a}" of node "${i.id}"`);let o=T(i);if(o===void 0)continue;if(!e.nodes.has(o))throw Error(`container "${o}" of node "${i.id}" is not a declared node`);n.set(i.id,o);let s=r.get(o);s===void 0?r.set(o,[i]):s.push(i)}for(let e of n.keys()){let t=new Set([e]);for(let r=n.get(e);r!==void 0;r=n.get(r)){if(t.has(r))throw Error(`node "${e}" cannot be nested into itself (containment cycle)`);t.add(r)}}let i=(e,t)=>{for(let r=n.get(t);r!==void 0;r=n.get(r))if(r===e)return!0;return!1};for(let t of e.edges)if(i(t.source,t.target)||i(t.target,t.source))throw Error(`edge "${t.source}" --> "${t.target}" connects a container with one of its own members`);return{parentOf:n,childrenOf:r}},fe=(e,t)=>{let n=t;for(let t=e.parentOf.get(n);t!==void 0;t=e.parentOf.get(n))n=t;return n},pe=(e,t=[])=>{let{nodes:n,cx:r,cy:i,boxW:a,boxH:o,polys:s}=e,[c,l,u,d]=[1/0,1/0,-1/0,-1/0];for(let e of n)c=Math.min(c,r(e.id)-a.get(e.id)/2),l=Math.min(l,i(e.id)-o.get(e.id)/2),u=Math.max(u,r(e.id)+a.get(e.id)/2),d=Math.max(d,i(e.id)+o.get(e.id)/2);for(let e of[...s,...t])for(let[t,n]of e)c=Math.min(c,t),l=Math.min(l,n),u=Math.max(u,t),d=Math.max(d,n);for(let t of e.containers??[])c=Math.min(c,t.x),l=Math.min(l,t.y),u=Math.max(u,t.x+t.w),d=Math.max(d,t.y+t.h);return Number.isFinite(c)||([c,l,u,d]=[0,0,0,0]),{minX:c,minY:l,maxX:u,maxY:d}},me=(e,t)=>`\u0000gate:${e}:${t}`,he=async(e,t,n,r,i)=>{let a=Array.from(e.nodes.values()),o=e=>t.childrenOf.has(e.id)||E(e)!==void 0;if(!a.some(o))return r[n].render(e,i);let s=i[`container-box-padding`];for(let e of a)if(e.id.includes(`\0`))throw Error(`node id ${JSON.stringify(e.id)} contains a reserved control character`);let c=(e,t)=>{let n=Math.max(y(e.name,24),y(w(e)??``,16));return{w:Math.max(t.maxX-t.minX,n)+s*2,h:t.maxY-t.minY+s*2+D(e)}},l=(t,n,r,i,a,o)=>{let l=[{layout:t,dx:0,dy:0}],u=new Map;for(let e of t.nodes)u.set(e.id,0);let d=[],f=[];for(let[r,i]of n){let n=e.nodes.get(r);if(!t.nodes.some(e=>e.id===r))throw Error(`container "${r}" cannot be placed twice by diagram type "${o}"`);let{w:a,h:p}=c(n,i.bounds),m=t.cx(r),h=t.cy(r),g=l.push({layout:i.layout,dx:m-a/2+s-i.bounds.minX,dy:h-p/2+D(n)+s-i.bounds.minY})-1;for(let e of i.layout.nodes)u.set(e.id,g);u.set(r,g),d.push({node:n,x:m-t.boxW.get(r)/2,y:h-t.boxH.get(r)/2,w:t.boxW.get(r),h:t.boxH.get(r)}),f.push(...(i.layout.containers??[]).map(e=>({...e,x:e.x+l[g].dx,y:e.y+l[g].dy})))}let p=(e,t)=>e.map(([e,n])=>[e+l[t].dx,n+l[t].dy]),m=[],h=[],g=new Map;l.forEach((e,t)=>{t!==0&&e.layout.edges.forEach((n,r)=>{m.push(n),h.push(p(e.layout.polys[r],t))})}),r.forEach((r,o)=>{let s=i[o],c=n.get(r.source)?.partial.get(s),l=n.get(r.target)?.partial.get(s),d=I([...c===void 0?[]:p(c,u.get(r.source)),...t.polys[o],...l===void 0?[]:p(l,u.get(r.target))]);a.has(r.source)||a.has(r.target)?g.set(s,d):(m.push(e.edges[s]),h.push(d))});let _=e=>new Map(l.flatMap(t=>Array.from(e(t.layout).entries()))),v={nodes:[...t.nodes.filter(e=>!n.has(e.id)&&!a.has(e.id)),...l.slice(1).flatMap(e=>e.layout.nodes)],edges:m,cx:e=>l[u.get(e)].layout.cx(e)+l[u.get(e)].dx,cy:e=>l[u.get(e)].layout.cy(e)+l[u.get(e)].dy,boxW:_(e=>e.boxW),boxH:_(e=>e.boxH),contentH:_(e=>e.contentH),polys:h,styleOf:e=>(l[u.get(e.id)].layout.styleOf??C)(e),containers:[...d,...f]};return{layout:v,bounds:pe(v,Array.from(g.values())),partial:g}},u=async(n,d)=>{let f=n===null?a.filter(e=>T(e)===void 0):t.childrenOf.get(n.id)??[],p=new Set(f.map(e=>e.id)),m=e=>{for(let n=e;n!==void 0;n=t.parentOf.get(n))if(p.has(n))return n},h=new Map;for(let e of f)o(e)&&h.set(e.id,await u(e,E(e)??d));let g=(e,t)=>{let{bounds:n}=h.get(e.id);return t-n.minY+D(e)+s-c(e,n).h/2},_=new Map,v=new Map(f.map(e=>[e.id,e])),y=[],b=[],x=new Map,S=(e,t)=>h.get(e)?.partial.has(t)??!1;e.edges.forEach((e,t)=>{let n=m(e.source),i=m(e.target);if(n===void 0&&i===void 0||n!==void 0&&n===i&&h.has(n)&&e.source!==n)return;let a,o;if(n===void 0||i===void 0){if(!r[d].gated)return;let e=me(t,n===void 0?`in`:`out`);_.set(e,n===void 0?`in`:`out`),v.set(e,{id:e,name:``,attrs:[]}),a=n??e,o=i??e}else a=n,o=i;let s=y.length;y.push({source:a,target:o,name:n!==void 0&&i!==void 0?e.name:void 0,arity:i!==void 0&&!S(i,t)?e.arity:void 0}),b.push(t),S(a,t)&&x.set(`${s}:s`,g(v.get(a),h.get(a).partial.get(t).at(-1)[1])),S(o,t)&&x.set(`${s}:t`,g(v.get(o),h.get(o).partial.get(t)[0][1]))});let C=new Map;for(let[e,t]of h)C.set(e,c(v.get(e),t.bounds));for(let e of _.keys())C.set(e,{w:0,h:0});let w=await r[d].render({nodes:v,edges:y},i,{fixedSize:C,fixedPort:(e,t)=>x.get(`${e}:${t}`),gates:_});return l(w,h,y,b,_,d)};return(await u(null,n)).layout},ge=34,_e=e=>e.attrs.findLast(e=>e.key===`group`)?.val,ve=(e,t)=>{let n=Array.from(e.nodes.values());if(!n.some(e=>_e(e)!==void 0))return null;let r=new Map,i=new Map;for(let a of n){let n=fe(t,a.id),o=_e(e.nodes.get(n))??`default`,s=_e(a);if(s!==void 0&&s!==o)throw Error(`node "${a.id}" cannot be a member of group "${s}", as its container "${n}" is a member of group "${o}"`);i.set(a.id,o);let c=r.get(o);c===void 0&&(c={nodes:new Map,edges:[]},r.set(o,c)),c.nodes.set(a.id,a)}for(let t of e.edges){let e=i.get(t.source),n=i.get(t.target);if(e!==n)throw Error(`edge "${t.source}" --> "${t.target}" crosses groups "${e}" and "${n}"`);r.get(e).edges.push(t)}return Array.from(r.entries()).map(([e,t])=>({name:e,graph:t}))},ye=(e,t,n)=>{let r=n[`size-canvas-margin`],i=n[`group-box-padding`],a=n[`group-box-gap`],o=[],s=[],c=[],l=new Map,u=r;t.forEach((t,n)=>{let d=pe(t),f=Math.max(d.maxX-d.minX+i*2,y(e[n].name,24)+i*2),p=d.maxY-d.minY+i*2+ge;s.push(r+i-d.minX),c.push(u+ge+i-d.minY);for(let e of t.nodes)l.set(e.id,n);o.push({name:e[n].name,x:r,y:u,w:f,h:p}),u+=p+a});let d=e=>new Map(t.flatMap(t=>Array.from(e(t).entries()))),f=e=>l.get(e);return{nodes:t.flatMap(e=>e.nodes),edges:t.flatMap(e=>e.edges),cx:e=>t[f(e)].cx(e)+s[f(e)],cy:e=>t[f(e)].cy(e)+c[f(e)],boxW:d(e=>e.boxW),boxH:d(e=>e.boxH),contentH:d(e=>e.contentH),polys:t.flatMap((e,t)=>e.polys.map(e=>e.map(([e,n])=>[e+s[t],n+c[t]]))),styleOf:e=>(t[f(e.id)].styleOf??C)(e),groups:o,containers:t.flatMap((e,t)=>(e.containers??[]).map(e=>({...e,x:e.x+s[t],y:e.y+c[t]})))}},be=l(s(((e,t)=>{(function(e,n,r){typeof define==`function`&&define.amd!==void 0?define(function(){return r(e)}):typeof t==`object`&&typeof t.exports==`object`?(t.exports=r(e),t.exports.default=t.exports):e[n]=r(e)})(e,`UUID`,function(){let e=function(e,t,n,r,i,a){let o=function(e,t){let n=e.toString(16);return n.length<2&&(n=`0`+n),t&&(n=n.toUpperCase()),n};for(let s=t;s<=n;s++)i[a++]=o(e[s],r);return i},t=function(e,t,n,r,i){for(let a=t;a<=n;a+=2)r[i++]=parseInt(e.substr(a,2),16)},n=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#`.split(``),r=[0,68,0,84,83,82,72,0,75,76,70,65,0,63,62,69,0,1,2,3,4,5,6,7,8,9,64,0,73,66,74,71,81,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,77,0,78,67,0,0,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,79,0,80,0,0],i=function(e,t){if(t%4!=0)throw Error(`z85_encode: invalid input length (multiple of 4 expected)`);let r=``,i=0,a=0;for(;i<t;)if(a=a*256+e[i++],i%4==0){let e=52200625;for(;e>=1;){let t=Math.floor(a/e)%85;r+=n[t],e/=85}a=0}return r},a=function(e,t){let n=e.length;if(n%5!=0)throw Error(`z85_decode: invalid input length (multiple of 5 expected)`);t===void 0&&(t=Array(n*4/5));let i=0,a=0,o=0;for(;i<n;){let n=e.charCodeAt(i++)-32;if(n<0||n>=r.length)break;if(o=o*85+r[n],i%5==0){let e=16777216;for(;e>=1;)t[a++]=Math.trunc(o/e%256),e/=256;o=0}}return t},o=function(e,t){let n={ibits:8,obits:8,obigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=[],i=0,a,o,s=0,c,l=0,u=e.length;for(;s===0&&(o=e.charCodeAt(i++)),a=o>>n.ibits-(s+8)&255,s=(s+8)%n.ibits,n.obigendian?l===0?c=a<<n.obits-8:c|=a<<n.obits-8-l:l===0?c=a:c|=a<<l,l=(l+8)%n.obits,!(l===0&&(r.push(c),i>=u)););return r},s=function(e,t){let n={ibits:32,ibigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=``,i=4294967295;n.ibits<32&&(i=(1<<n.ibits)-1);let a=e.length;for(let t=0;t<a;t++){let a=e[t]&i;for(let e=0;e<n.ibits;e+=8)n.ibigendian?r+=String.fromCharCode(a>>n.ibits-8-e&255):r+=String.fromCharCode(a>>e&255)}return r},c=function(e,t,n,r,i,a,o,s){return[s,o,a,i,r,n,t,e]},l=function(){return c(0,0,0,0,0,0,0,0)},u=function(e){return e.slice(0)},d=function(e){let t=l();for(let n=0;n<8;n++)t[n]=Math.floor(e%256),e/=256;return t},f=function(e){let t=0;for(let n=7;n>=0;n--)t*=256,t+=e[n];return Math.floor(t)},p=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]+t[r],e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},m=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]*t,e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},h=function(e,t){let n,r,i=Array(16);for(n=0;n<16;n++)i[n]=0;let a;for(n=0;n<8;n++){for(a=0,r=0;r<8;r++)a+=e[n]*t[r]+i[n+r],i[n+r]=a%256,a/=256;for(;r<16-n;r++)a+=i[n+r],i[n+r]=a%256,a/=256}for(n=0;n<8;n++)e[n]=i[n];return i.slice(8,16)},g=function(e,t){for(let n=0;n<8;n++)e[n]&=t[n];return e},_=function(e,t){for(let n=0;n<8;n++)e[n]|=t[n];return e},v=function(e,t){let n=l();if(t%8!=0)throw Error(`ui64_rorn: only bit rotations supported with a multiple of digit bits`);let r=Math.floor(t/8);for(let t=0;t<r;t++){let t=6;for(;t>=0;t--)n[t+1]=n[t];for(n[0]=e[0],t=0;t<7;t++)e[t]=e[t+1];e[t]=0}return f(n)},y=function(e,t){if(t>64)throw Error(`ui64_ror: invalid number of bits to shift`);let n=Array(16),r=0;for(;r<8;r++)n[r+8]=e[r],n[r]=0;let i=Math.floor(t/8),a=t%8;for(r=i;r<15;r++)n[r-i]=(n[r]>>>a|n[r+1]<<8-a)&255;for(n[15-i]=n[15]>>>a&255,r=15-i+1;r<16;r++)n[r]=0;for(r=0;r<8;r++)e[r]=n[r+8];return n.slice(0,8)},b=function(e,t){if(t>64)throw Error(`ui64_rol: invalid number of bits to shift`);let n=Array(16),r=0;for(;r<8;r++)n[r+8]=0,n[r]=e[r];let i=Math.floor(t/8),a=t%8;for(r=7-i;r>0;r--)n[r+i]=(n[r]<<a|n[r-1]>>>8-a)&255;for(n[0+i]=n[0]<<a&255,r=0+i-1;r>=0;r--)n[r]=0;for(r=0;r<8;r++)e[r]=n[r];return n.slice(8,16)},x=function(e,t){for(let n=0;n<8;n++)e[n]^=t[n]},S=function(e,t){let n=(e&65535)+(t&65535);return(e>>16)+(t>>16)+(n>>16)<<16|n&65535},C=function(e,t){return e<<t&4294967295|e>>>32-t&4294967295},w=function(e,t){function n(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function r(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;let i=Array(80),a=1732584193,o=-271733879,s=-1732584194,c=271733878,l=-1009589776;for(let t=0;t<e.length;t+=16){let u=a,d=o,f=s,p=c,m=l;for(let u=0;u<80;u++){u<16?i[u]=e[t+u]:i[u]=C(i[u-3]^i[u-8]^i[u-14]^i[u-16],1);let d=S(S(C(a,5),n(u,o,s,c)),S(S(l,i[u]),r(u)));l=c,c=s,s=C(o,30),o=a,a=d}a=S(a,u),o=S(o,d),s=S(s,f),c=S(c,p),l=S(l,m)}return[a,o,s,c,l]},T=function(e){return s(w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8),{ibits:32,ibigendian:!0})},E=function(e,t){function n(e,t,n,r,i,a){return S(C(S(S(t,e),S(r,a)),i),n)}function r(e,t,r,i,a,o,s){return n(t&r|~t&i,e,t,a,o,s)}function i(e,t,r,i,a,o,s){return n(t&i|r&~i,e,t,a,o,s)}function a(e,t,r,i,a,o,s){return n(t^r^i,e,t,a,o,s)}function o(e,t,r,i,a,o,s){return n(r^(t|~i),e,t,a,o,s)}e[t>>5]|=128<<t%32,e[(t+64>>>9<<4)+14]=t;let s=1732584193,c=-271733879,l=-1732584194,u=271733878;for(let t=0;t<e.length;t+=16){let n=s,d=c,f=l,p=u;s=r(s,c,l,u,e[t+0],7,-680876936),u=r(u,s,c,l,e[t+1],12,-389564586),l=r(l,u,s,c,e[t+2],17,606105819),c=r(c,l,u,s,e[t+3],22,-1044525330),s=r(s,c,l,u,e[t+4],7,-176418897),u=r(u,s,c,l,e[t+5],12,1200080426),l=r(l,u,s,c,e[t+6],17,-1473231341),c=r(c,l,u,s,e[t+7],22,-45705983),s=r(s,c,l,u,e[t+8],7,1770035416),u=r(u,s,c,l,e[t+9],12,-1958414417),l=r(l,u,s,c,e[t+10],17,-42063),c=r(c,l,u,s,e[t+11],22,-1990404162),s=r(s,c,l,u,e[t+12],7,1804603682),u=r(u,s,c,l,e[t+13],12,-40341101),l=r(l,u,s,c,e[t+14],17,-1502002290),c=r(c,l,u,s,e[t+15],22,1236535329),s=i(s,c,l,u,e[t+1],5,-165796510),u=i(u,s,c,l,e[t+6],9,-1069501632),l=i(l,u,s,c,e[t+11],14,643717713),c=i(c,l,u,s,e[t+0],20,-373897302),s=i(s,c,l,u,e[t+5],5,-701558691),u=i(u,s,c,l,e[t+10],9,38016083),l=i(l,u,s,c,e[t+15],14,-660478335),c=i(c,l,u,s,e[t+4],20,-405537848),s=i(s,c,l,u,e[t+9],5,568446438),u=i(u,s,c,l,e[t+14],9,-1019803690),l=i(l,u,s,c,e[t+3],14,-187363961),c=i(c,l,u,s,e[t+8],20,1163531501),s=i(s,c,l,u,e[t+13],5,-1444681467),u=i(u,s,c,l,e[t+2],9,-51403784),l=i(l,u,s,c,e[t+7],14,1735328473),c=i(c,l,u,s,e[t+12],20,-1926607734),s=a(s,c,l,u,e[t+5],4,-378558),u=a(u,s,c,l,e[t+8],11,-2022574463),l=a(l,u,s,c,e[t+11],16,1839030562),c=a(c,l,u,s,e[t+14],23,-35309556),s=a(s,c,l,u,e[t+1],4,-1530992060),u=a(u,s,c,l,e[t+4],11,1272893353),l=a(l,u,s,c,e[t+7],16,-155497632),c=a(c,l,u,s,e[t+10],23,-1094730640),s=a(s,c,l,u,e[t+13],4,681279174),u=a(u,s,c,l,e[t+0],11,-358537222),l=a(l,u,s,c,e[t+3],16,-722521979),c=a(c,l,u,s,e[t+6],23,76029189),s=a(s,c,l,u,e[t+9],4,-640364487),u=a(u,s,c,l,e[t+12],11,-421815835),l=a(l,u,s,c,e[t+15],16,530742520),c=a(c,l,u,s,e[t+2],23,-995338651),s=o(s,c,l,u,e[t+0],6,-198630844),u=o(u,s,c,l,e[t+7],10,1126891415),l=o(l,u,s,c,e[t+14],15,-1416354905),c=o(c,l,u,s,e[t+5],21,-57434055),s=o(s,c,l,u,e[t+12],6,1700485571),u=o(u,s,c,l,e[t+3],10,-1894986606),l=o(l,u,s,c,e[t+10],15,-1051523),c=o(c,l,u,s,e[t+1],21,-2054922799),s=o(s,c,l,u,e[t+8],6,1873313359),u=o(u,s,c,l,e[t+15],10,-30611744),l=o(l,u,s,c,e[t+6],15,-1560198380),c=o(c,l,u,s,e[t+13],21,1309151649),s=o(s,c,l,u,e[t+4],6,-145523070),u=o(u,s,c,l,e[t+11],10,-1120210379),l=o(l,u,s,c,e[t+2],15,718787259),c=o(c,l,u,s,e[t+9],21,-343485551),s=S(s,n),c=S(c,d),l=S(l,f),u=S(u,p)}return[s,c,l,u]},D=function(e){return s(E(o(e,{ibits:8,obits:32,obigendian:!1}),e.length*8),{ibits:32,ibigendian:!1})},O=function(e){this.mul=c(88,81,244,45,76,149,127,45),this.inc=c(20,5,123,126,247,103,129,79),this.mask=c(0,0,0,0,255,255,255,255),this.state=u(this.inc),this.next(),g(this.state,this.mask);let t;e===void 0?typeof window==`object`&&typeof window.crypto==`object`&&typeof window.crypto.getRandomValues==`function`?(t=new Uint32Array(2),window.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):typeof globalThis==`object`&&typeof globalThis.crypto==`object`&&typeof globalThis.crypto.getRandomValues==`function`?(t=new Uint32Array(2),globalThis.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):(e=d(Math.random()*4294967295>>>0),_(e,y(d(new Date().getTime()),32))):e=d(e>>>0),_(this.state,e),this.next()};O.prototype.next=function(){let e=u(this.state);h(this.state,this.mul),p(this.state,this.inc);let t=u(e);y(t,18),x(t,e),y(t,27);let n=u(e);y(n,59),g(t,this.mask);let r=f(n),i=u(t);return b(i,32-r),y(t,r),x(t,i),f(t)},O.prototype.reseed=function(e){if(typeof e!=`string`)throw Error(`UUID: PCG: seed: invalid argument (string expected)`);let t=w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8);for(let e=0;e<t.length;e++)x(k.state,d(t[e]>>>0))};let k=new O;O.reseed=function(e){k.reseed(e)};let A=function(e,t){let n=[];for(let r=0;r<e;r++)n[r]=k.next()%t;return n},ee=0,j=0,M=function(){if(arguments.length===1&&typeof arguments[0]==`string`)this.parse.apply(this,arguments);else if(arguments.length>=1&&typeof arguments[0]==`number`)this.make.apply(this,arguments);else if(arguments.length>=1)throw Error(`UUID: constructor: invalid arguments`);else for(let e=0;e<16;e++)this[e]=0};return M.prototype=typeof Uint8Array<`u`?new Uint8Array(16):typeof Buffer<`u`?Buffer.alloc(16):Array(16),M.prototype.constructor=M,M.prototype.make=function(e){let t,n=this;if(e===1){let e=new Date().getTime();e===ee?j++:j=0,ee=e;let r=d(e);m(r,1e4),p(r,c(1,178,29,210,19,129,64,0)),j>0&&p(r,d(j));let i;i=v(r,8),n[3]=i&255,i=v(r,8),n[2]=i&255,i=v(r,8),n[1]=i&255,i=v(r,8),n[0]=i&255,i=v(r,8),n[5]=i&255,i=v(r,8),n[4]=i&255,i=v(r,8),n[7]=i&255,i=v(r,8),n[6]=i&15;let a=A(2,255);n[8]=a[0],n[9]=a[1];let o=A(6,255);for(o[0]|=3,t=0;t<6;t++)n[10+t]=o[t]}else if(e===4){let e=A(16,255);for(t=0;t<16;t++)this[t]=e[t]}else if(e===3||e===5){let r=``,i=typeof arguments[1]==`object`&&arguments[1]instanceof M?arguments[1]:new M().parse(arguments[1]);for(t=0;t<16;t++)r+=String.fromCharCode(i[t]);r+=arguments[2];let a=e===3?D(r):T(r);for(t=0;t<16;t++)n[t]=a.charCodeAt(t)}else throw Error(`UUID: make: invalid version`);return n[6]&=15,n[6]|=e<<4,n[8]&=63,n[8]|=128,n},M.prototype.format=function(t){let n,r;if(t===`z85`)n=i(this,16);else if(t===`b16`)r=Array(32),e(this,0,15,!0,r,0),n=r.join(``);else if(t===void 0||t===`std`)r=Array(36),e(this,0,3,!1,r,0),r[8]=`-`,e(this,4,5,!1,r,9),r[13]=`-`,e(this,6,7,!1,r,14),r[18]=`-`,e(this,8,9,!1,r,19),r[23]=`-`,e(this,10,15,!1,r,24),n=r.join(``);else throw Error(`UUID: format: invalid type argument`);return n},M.prototype.toString=function(e){return this.format(e)},M.prototype.toJSON=function(){return this.format(`std`)},M.prototype.parse=function(e,n){if(typeof e!=`string`)throw Error(`UUID: parse: invalid argument (type string expected)`);if(n===`z85`)a(e,this);else if(n===`b16`)t(e,0,35,this,0);else if(n===void 0||n===`std`){let n={nil:`00000000-0000-0000-0000-000000000000`,"ns:DNS":`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,"ns:URL":`6ba7b811-9dad-11d1-80b4-00c04fd430c8`,"ns:OID":`6ba7b812-9dad-11d1-80b4-00c04fd430c8`,"ns:X500":`6ba7b814-9dad-11d1-80b4-00c04fd430c8`};if(n[e]!==void 0)e=n[e];else if(!e.match(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/))throw Error(`UUID: parse: invalid string representation (expected "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")`);t(e,0,7,this,0),t(e,9,12,this,4),t(e,14,17,this,6),t(e,19,22,this,8),t(e,24,35,this,10)}return this},M.prototype.export=function(){let e=Array(16);for(let t=0;t<16;t++)e[t]=this[t];return e},M.prototype.import=function(e){if(!(typeof e==`object`&&e instanceof Array))throw Error(`UUID: import: invalid argument (type Array expected)`);if(e.length!==16)throw Error(`UUID: import: invalid argument (Array of length 16 expected)`);for(let t=0;t<16;t++){if(typeof e[t]!=`number`)throw Error(`UUID: import: invalid array element #`+t+` (type Number expected)`);if(!(isFinite(e[t])&&Math.floor(e[t])===e[t]))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value expected)`);if(!(e[t]>=0&&e[t]<=255))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value in range 0...255 expected)`);this[t]=e[t]}return this},M.prototype.compare=function(e){if(typeof e!=`object`||!(e instanceof M))throw Error(`UUID: compare: invalid argument (type UUID expected)`);for(let t=0;t<16;t++)if(this[t]<e[t])return-1;else if(this[t]>e[t])return 1;return 0},M.prototype.equal=function(e){return this.compare(e)===0},M.prototype.fold=function(e){if(e===void 0)throw Error(`UUID: fold: invalid argument (number of fold operations expected)`);if(e<1||e>4)throw Error(`UUID: fold: invalid argument (1-4 fold operations expected)`);let t=16/2**e,n=Array(t);for(let e=0;e<t;e++){let r=0;for(let n=0;e+n<16;n+=t)r^=this[e+n];n[e]=r}return n},M.PCG=O,M})}))(),1),xe=e=>e.replace(/[\\"']/g,`\\$&`).replace(/[\r\n\f]/g,` `),Se=new be.default(5,`ns:URL`,`https://github.com/rse/gradia`).format(),Ce=e=>`gradia-${new be.default(5,Se,e).format(`b16`).toLowerCase().slice(0,12)}`,we=18,Te=12,Ee=2,De=(e,t,n)=>{let{nodes:r,cx:i,cy:a,boxW:o,boxH:s}=e,c=r.map(e=>[i(e.id)-o.get(e.id)/2,a(e.id)-s.get(e.id)/2,i(e.id)+o.get(e.id)/2,a(e.id)+s.get(e.id)/2]);for(let t of e.groups??[])c.push([t.x+we,t.y+Te,t.x+we+y(t.name,24),t.y+Te+24*1.2]);for(let t of e.containers??[])c.push([t.x+we,t.y+Te,t.x+we+y(t.node.name,24),t.y+D(t.node)]);let l=[];e.polys.forEach((e,r)=>{for(let i=0;i<e.length-1;i++){let[a,o]=[e[i],e[i+1]];l.push([Math.min(a[0],o[0])-Ee,Math.min(a[1],o[1])-Ee,Math.max(a[0],o[0])+Ee,Math.max(a[1],o[1])+Ee]);for(let e of t[r].get(i)??[])l.push([e-n,a[1]-n,e+n,a[1]])}});let u=(e,t)=>e.filter(e=>t[0]<e[2]&&t[2]>e[0]&&t[1]<e[3]&&t[3]>e[1]).length;return{claim:e=>{let t=e[0],n=1/0;for(let r of e){let e=u(c,r)*(l.length+1)+u(l,r);if(e<n&&(t=r,n=e),e===0)break}return c.push(t),t},occupied:c}},Oe=(e,t,n,r,i)=>{let{cx:a,cy:o,boxW:s,boxH:c,contentH:l}=t,u=s.get(e.id),d=c.get(e.id),f=a(e.id)-u/2,p=o(e.id)-d/2,m=N(e,i),h=M(e),g=[];g.push(`<rect x="${f}" y="${p}" width="${u}" height="${d}" rx="6" class="${r.box(n.fill,n.stroke,4)}"${n.dash===void 0?``:` stroke-dasharray="${x(n.dash)}"`}/>`);let _=o(e.id)-l.get(e.id)/2,v=m.type.length*26,y=(m.name.length-1)*34,b=m.attrs.length>0?_+v+28+30*.36:o(e.id)+v/2+30*.36-y/2;return m.type.forEach((t,i)=>{g.push(`<text x="${a(e.id)}" y="${b-36-(m.type.length-1-i)*26}" class="${r.text(n.text,16,{middle:!0})}">${x(t)}</text>`)}),m.name.forEach((t,i)=>{g.push(`<text x="${a(e.id)}" y="${b+i*34}" class="${r.text(n.text,30,{bold:!0,middle:!0})}">${x(t)}</text>`)}),m.attrs.forEach((t,i)=>{g.push(`<text x="${a(e.id)}" y="${_+v+y+56+12+i*30}" class="${r.text(n.text,22,{middle:!0})}">${x(t)}</text>`)}),h===void 0?g:[`<a href="${x(h)}" xlink:href="${x(h)}">`,...g,`</a>`]},ke=(e,t,n)=>{let{polys:r}=e,[i,a,o,s]=[1/0,1/0,-1/0,-1/0];for(let[e,n,r,c]of t)i=Math.min(i,e),a=Math.min(a,n),o=Math.max(o,r),s=Math.max(s,c);for(let e of r)for(let[t,n]of e)i=Math.min(i,t),a=Math.min(a,n),o=Math.max(o,t),s=Math.max(s,n);return Number.isFinite(i)||([i,a,o,s]=[0,0,0,0]),{x:Math.floor(i-n/2),y:Math.floor(a-n/2),w:Math.ceil(o-i+n),h:Math.ceil(s-a+n)}},Ae=(e,t,n,r)=>{let i=[];if(e.name!==void 0){let a=y(e.name,16),o=[];for(let e of[.5,.4,.6,.3,.7,.2,.8]){let n=de(t,e);n.horizontal?(o.push([n.x-a/2,n.y-23,n.x+a/2,n.y-3]),o.push([n.x-a/2,n.y+3,n.x+a/2,n.y+23])):(o.push([n.x+5,n.y-10,n.x+5+a,n.y+10]),o.push([n.x-5-a,n.y-10,n.x-5,n.y+10]))}let s=n(o);i.push(`<text x="${(s[0]+s[2])/2}" y="${s[3]-3}" class="${r.text(`color-edge-name`,16,{middle:!0,halo:!0})}">${x(e.name)}</text>`)}if(e.arity!==void 0){let a=y(e.arity,16),o=de(t,1),s=de(t,.999),c;if(o.horizontal){let e=Math.sign(o.x-s.x)||1,t=o.x-e*(24+a/2);c=[[t-a/2,o.y-17,t+a/2,o.y-4],[t-a/2,o.y+4,t+a/2,o.y+17],[t-a/2-e*14,o.y-17,t+a/2-e*14,o.y-4]]}else{let e=Math.sign(o.y-s.y)||1,t=o.y-e*24;c=[[o.x+6,t-7,o.x+6+a,t+6],[o.x-6-a,t-7,o.x-6,t+6],[o.x+6,t-7-e*14,o.x+6+a,t+6-e*14]]}let l=n(c);i.push(`<text x="${(l[0]+l[2])/2}" y="${l[3]-3}" class="${r.text(`color-edge-arity`,16,{middle:!0,halo:!0})}">${x(e.arity)}</text>`)}return i},je=(e,t)=>[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" class="${t.box(`color-group-box`,`color-group-border`,3)}"/>`,`<text x="${e.x+we}" y="${e.y+Te+24}" class="${t.text(`color-group-name`,24,{bold:!0})}">${x(e.name)}</text>`],Me=(e,t)=>{let n=w(e.node),r=M(e.node),i=[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" class="${t.box(`color-container-box`,`color-container-border`,3)}" stroke-dasharray="10 6"/>`,...n===void 0?[]:[`<text x="${e.x+we}" y="${e.y+Te+16}" class="${t.text(`color-container-name`,16)}">${x(n)}</text>`],`<text x="${e.x+we}" y="${e.y+D(e.node)-34+Te+24}" class="${t.text(`color-container-name`,24,{bold:!0})}">${x(e.node.name)}</text>`];return r===void 0?i:[`<a href="${x(r)}" xlink:href="${x(r)}">`,...i,`</a>`]},Ne=(e,t,n,r)=>{let{nodes:i,edges:a,polys:o}=e,s=e.groups??[],c=e.containers??[],l=e.styleOf??C,u=e=>m(n,e),d=`${Ce(r)}-arrow`,{family:f,embed:p,weight:h}=v(t),g=`${Object.hasOwn(n,`font-family`)?`'${xe(f)}'`:`var(--gradia-font-family, '${xe(f)}')`}, ui-sans-serif, -apple-system, Helvetica, Arial, sans-serif`,_=new Map,y=e=>{let t=_.get(e);return t===void 0&&(t=`gradia-${new be.default(5,Se,e).format(`b16`).toLowerCase().slice(0,8)}`,_.set(e,t)),t},b={text:(e,t,n={})=>y(`font-family: ${g}; font-size: ${t}px; `+(n.bold?`font-weight: 600; `:``)+(n.middle?`text-anchor: middle; `:``)+`fill: ${u(e)}`+(n.halo?`; stroke: ${u(`color-edge-halo`)}; stroke-width: 4.5; paint-order: stroke; stroke-linejoin: round`:``)),box:(e,t,n)=>y(`fill: ${u(e)}; stroke: ${u(t)}; stroke-width: ${n}`)},S=y(`fill: none; stroke: ${u(`color-edge-line`)}; stroke-width: 3`),w=y(`fill: ${u(`color-edge-line`)}`),T=ce(o),{claim:E,occupied:D}=De(e,T,t[`size-edge-hop-radius`]),O=[],k=[];a.forEach((e,n)=>{O.push(`<path d="${ue(o[n],T[n],t[`size-edge-corner-radius`],t[`size-edge-hop-radius`])}" class="${S}" marker-end="url(#${d})"/>`),k.push(...Ae(e,o[n],E,b))});let A=i.flatMap(n=>Oe(n,e,l(n),b,t)),ee=s.flatMap(e=>je(e,b)),j=c.flatMap(e=>Me(e,b)),M=s.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),N=c.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),P=ke(e,[...D,...M,...N],t[`size-canvas-margin`]);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="${P.x} ${P.y} ${P.w} ${P.h}" width="${P.w}" height="${P.h}">`,`<defs>`,`<style>`,...p===void 0?[]:[`@font-face { font-family: "${x(xe(f))}"; `+(h===void 0?``:`font-weight: ${x(xe(h))}; `)+`src: url(data:font/woff2;base64,${p}) format("woff2"); }`],...Array.from(_,([e,t])=>`.${t} { ${x(e)} }`),`</style>`,`<marker id="${d}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="21" markerHeight="21" markerUnits="userSpaceOnUse" orient="auto-start-reverse">`,`<path d="M 0 1 L 9 5 L 0 9 z" class="${w}"/>`,`</marker>`,`</defs>`,...ee,...j,...O,...A,...k,`</svg>`,``].join(`
|
|
5
|
-
`)};function Pe(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}var Fe={abs:Math.abs,ceil:Math.ceil,floor:Math.floor,max:Math.max,min:Math.min,round:Math.round,sqrt:Math.sqrt,pow:Math.pow},B=class extends Error{constructor(e,t,n){super(e),this.position=t,this.token=n,this.name=`ExpressionError`}},V;(function(e){e[e.STRING=0]=`STRING`,e[e.NUMBER=1]=`NUMBER`,e[e.BOOLEAN=2]=`BOOLEAN`,e[e.NULL=3]=`NULL`,e[e.IDENTIFIER=4]=`IDENTIFIER`,e[e.OPERATOR=5]=`OPERATOR`,e[e.FUNCTION=6]=`FUNCTION`,e[e.DOT=7]=`DOT`,e[e.BRACKET_LEFT=8]=`BRACKET_LEFT`,e[e.BRACKET_RIGHT=9]=`BRACKET_RIGHT`,e[e.PAREN_LEFT=10]=`PAREN_LEFT`,e[e.PAREN_RIGHT=11]=`PAREN_RIGHT`,e[e.COMMA=12]=`COMMA`,e[e.QUESTION=13]=`QUESTION`,e[e.COLON=14]=`COLON`,e[e.DOLLAR=15]=`DOLLAR`})(V||={});var Ie=new Set([32,9,10,13]),Le=new Set([43,45,42,47,37,33,38,124,61,60,62]),Re=new Map([[`true`,V.BOOLEAN],[`false`,V.BOOLEAN],[`null`,V.NULL]]),ze=new Map([[`===`,!0],[`!==`,!0],[`<=`,!0],[`>=`,!0],[`&&`,!0],[`||`,!0],[`+`,!0],[`-`,!0],[`*`,!0],[`/`,!0],[`%`,!0],[`!`,!0],[`<`,!0],[`>`,!0]]),Be=new Map([[46,V.DOT],[91,V.BRACKET_LEFT],[93,V.BRACKET_RIGHT],[40,V.PAREN_LEFT],[41,V.PAREN_RIGHT],[44,V.COMMA],[63,V.QUESTION],[58,V.COLON],[36,V.DOLLAR]]),Ve=new Map;for(let[e,t]of Be.entries())Ve.set(e,{type:t,value:String.fromCharCode(e)});function He(e){return e>=48&&e<=57}function Ue(e){return e>=97&&e<=122||e>=65&&e<=90||e===95}function We(e){return Ue(e)||He(e)}function Ge(e){return Le.has(e)}var H;(function(e){e[e.Program=0]=`Program`,e[e.Literal=1]=`Literal`,e[e.Identifier=2]=`Identifier`,e[e.MemberExpression=3]=`MemberExpression`,e[e.CallExpression=4]=`CallExpression`,e[e.BinaryExpression=5]=`BinaryExpression`,e[e.UnaryExpression=6]=`UnaryExpression`,e[e.ConditionalExpression=7]=`ConditionalExpression`})(H||={});var Ke=new Map([[`||`,2],[`&&`,3],[`===`,4],[`!==`,4],[`>`,5],[`>=`,5],[`<`,5],[`<=`,5],[`+`,6],[`-`,6],[`*`,7],[`/`,7],[`%`,7],[`!`,8]]),qe={type:H.Literal,value:null},Je={type:H.Literal,value:!0},Ye={type:H.Literal,value:!1},Xe=e=>{let t=0,n=e.length,r=()=>t>=n?null:e[t],i=()=>e[t++],a=e=>{let t=r();return t!==null&&t.type===e},o=e=>e.type===V.OPERATOR?Ke.get(e.value)||-1:e.type===V.DOT||e.type===V.BRACKET_LEFT?9:e.type===V.QUESTION?1:-1,s=e=>{let n,o;if(i().type===V.DOT){if(!a(V.IDENTIFIER)){let e=r();throw new B(`Expected property name`,t,e?e.value:`<end of input>`)}let e=i();n={type:H.Identifier,name:e.value},o=!1}else{if(n=l(0),!a(V.BRACKET_RIGHT)){let e=r();throw new B(`Expected closing bracket`,t,e?e.value:`<end of input>`)}i(),o=!0}return{type:H.MemberExpression,object:e,property:n,computed:o}},c=()=>{let e=r();if(!e)throw new B(`Unexpected end of input`,t,`<end of input>`);if(e.type===V.OPERATOR&&(e.value===`!`||e.value===`-`)){i();let t=c();return{type:H.UnaryExpression,operator:e.value,argument:t,prefix:!0}}switch(e.type){case V.NUMBER:return i(),{type:H.Literal,value:Number(e.value)};case V.STRING:return i(),{type:H.Literal,value:e.value};case V.BOOLEAN:return i(),e.value===`true`?Je:Ye;case V.NULL:return i(),qe;case V.IDENTIFIER:return i(),{type:H.Identifier,name:e.value};case V.FUNCTION:return(()=>{let e=i(),n=[];if(!a(V.PAREN_LEFT)){let e=r();throw new B(`Expected opening parenthesis after function name`,t,e?e.value:`<end of input>`)}for(i();;){if(a(V.PAREN_RIGHT)){i();break}if(!r()){let e=r();throw new B(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}if(n.length>0){if(!a(V.COMMA)){let e=r();throw new B(`Expected comma between function arguments`,t,e?e.value:`<end of input>`)}i()}let e=l(0);n.push(e)}return{type:H.CallExpression,callee:{type:H.Identifier,name:e.value},arguments:n}})();case V.PAREN_LEFT:{i();let e=l(0);if(!a(V.PAREN_RIGHT)){let e=r();throw new B(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}return i(),e}default:throw new B(`Unexpected token: ${e.type}`,t,e.value)}},l=(u=0)=>{let d=c();for(;t<n;){let n=e[t],c=o(n);if(c<=u)break;if(n.type!==V.QUESTION){if(n.type!==V.OPERATOR){if(n.type!==V.DOT&&n.type!==V.BRACKET_LEFT)break;d=s(d)}else{i();let e=l(c);d={type:H.BinaryExpression,operator:n.value,left:d,right:e}}}else{i();let e=l(0);if(!a(V.COLON)){let e=r();throw new B(`Expected : in conditional expression`,t,e?e.value:`<end of input>`)}i();let n=l(0);d={type:H.ConditionalExpression,test:d,consequent:e,alternate:n}}}return d},u=l();return{type:H.Program,body:u}},Ze=(e,t,n)=>{let r=t;n&&(r={...t,context:{...t.context,...n}});let i=e=>{switch(e.type){case H.Literal:return(e=>e.value)(e);case H.Identifier:return(e=>{if(!(e.name in r.context))throw new B(`Undefined variable: ${e.name}`);return r.context[e.name]})(e);case H.MemberExpression:return(e=>{let t=i(e.object);if(t==null)throw new B(`Cannot access property of null or undefined`);return t[e.computed?i(e.property):e.property.name]})(e);case H.CallExpression:return(e=>{let t=r.functions[e.callee.name];if(!t)throw new B(`Undefined function: ${e.callee.name}`);return t(...e.arguments.map((e=>i(e))))})(e);case H.BinaryExpression:return(e=>{if(e.operator===`&&`)return i(e.left)&&i(e.right);if(e.operator===`||`)return i(e.left)||i(e.right);let t=i(e.left),n=i(e.right);switch(e.operator){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return t/n;case`%`:return t%n;case`===`:return t===n;case`!==`:return t!==n;case`>`:return t>n;case`>=`:return t>=n;case`<`:return t<n;case`<=`:return t<=n;default:throw new B(`Unknown operator: ${e.operator}`)}})(e);case H.UnaryExpression:return(e=>{let t=i(e.argument);if(e.prefix)switch(e.operator){case`!`:return!t;case`-`:if(typeof t!=`number`)throw new B(`Cannot apply unary - to non-number: ${t}`);return-t;default:throw new B(`Unknown operator: ${e.operator}`)}throw new B(`Postfix operators are not supported: ${e.operator}`)})(e);case H.ConditionalExpression:return(e=>{let t=i(e.test);return i(t?e.consequent:e.alternate)})(e);default:throw new B(`Evaluation error: Unsupported node type: ${e.type}`)}};return i(e.body)};function Qe(e){let t=Xe((e=>{let t=e,n=t.length,r=Array(Math.ceil(n/3)),i=0,a=0;function o(e){let r=a+1;a++;let i=``,o=!1;for(;a<n;){let n=t.charCodeAt(a);if(n===e)return o||(i=t.substring(r,a)),a++,{type:V.STRING,value:i};n===92?(o||=(i=t.substring(r,a),!0),a++,i+=t[a]):o&&(i+=t[a]),a++}throw new B(`Unterminated string starting with ${String.fromCharCode(e)}`,a,t.substring(Math.max(0,a-10),a))}function s(){let e=a;for(t.charCodeAt(a)===45&&a++;a<n&&He(t.charCodeAt(a));)a++;if(a<n&&t.charCodeAt(a)===46)for(a++;a<n&&He(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:V.NUMBER,value:r}}function c(){a++;let e=a;if(a<n&&Ue(t.charCodeAt(a)))for(a++;a<n&&We(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:V.FUNCTION,value:r}}function l(){let e=a++;for(;a<n&&We(t.charCodeAt(a));)a++;let r=t.slice(e,a),i=Re.get(r);return i?{type:i,value:r}:{type:V.IDENTIFIER,value:r}}function u(){if(a+2<n){let e=t.substring(a,a+3);if(ze.has(e))return a+=3,{type:V.OPERATOR,value:e}}if(a+1<n){let e=t.substring(a,a+2);if(ze.has(e))return a+=2,{type:V.OPERATOR,value:e}}let e=t[a];if(ze.has(e))return a++,{type:V.OPERATOR,value:e};throw new B(`Unknown operator at position ${a}: ${t.substring(a,a+1)}`,a,t.substring(Math.max(0,a-10),a))}for(;a<n;){let e=t.charCodeAt(a);if(d=e,Ie.has(d)){a++;continue}let f=Ve.get(e);if(f)r[i++]=f,a++;else if(e!==34&&e!==39){if(He(e)||e===45&&a+1<n&&He(t.charCodeAt(a+1)))r[i++]=s();else if(e!==64){if(Ue(e))r[i++]=l();else{if(!Ge(e))throw new B(`Unexpected character: ${t[a]}`,a,t.substring(Math.max(0,a-10),a));r[i++]=u()}}else r[i++]=c()}else r[i++]=o(e)}var d;return i===r.length?r:r.slice(0,i)})(e)),n=((e={},t={})=>({context:e,functions:t}))({},Fe);return(e={})=>Ze(t,n,e)}function $e(e,t={}){return Qe(e)(t)}function et(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)try{return Qe(n),$e(n,t)}catch{return}}function tt(e){return typeof e==`number`}function nt(e){if(!e)return[0,0,0];if(tt(e))return[e,e,e];if(Array.isArray(e)&&e.length===0)return[0,0,0];let[t,n=t,r=t]=e;return[t,n,r]}function rt(e){return tt(e)?!0:Array.isArray(e)?e.every(e=>tt(e)):!1}function U(e){return e==null}function it(e){return typeof e==`string`}function at(e){return typeof e==`function`}function ot(e,t){if(typeof e==`function`)return e;if(typeof e==`string`){let n=e;return(...e)=>{let r={};for(let n=0;n<t.length;n++)r[t[n]]=e[n];return et(n,r)}}return()=>e}function st(e,t,n=`node`){if(U(e))return()=>t;if(it(e)){let r=ot(e,[n]);return e=>{let n=r(e);return tt(n)?n:t}}return at(e)?e:tt(e)?()=>e:()=>t}function ct(e,t=10,n=`node`){if(U(e))return()=>t;if(it(e)){let r=ot(e,[n]);return e=>{let n=r(e);return rt(n)?n:t}}return at(e)?e:tt(e)||Array.isArray(e)?()=>e:()=>t}function lt(e){return[e.x,e.y,e.z??0]}var ut=class{constructor(e,t={}){this.edgeIdCounter=new Map,this.nodeMap=pt(e.nodes,t.node),this.edgeMap=mt(e.edges||[],t.edge,this.getEdgeId.bind(this))}data(){return{nodes:this.nodeMap,edges:this.edgeMap}}replace(e){this.nodeMap=e.nodes,this.edgeMap=e.edges,this.clearCache()}nodes(){return Array.from(this.nodeMap.values())}node(e){return this.nodeMap.get(e)}nodeAt(e){this.indexNodeCache||this.buildNodeIndexCache();let t=this.indexNodeCache.get(e);return t?this.nodeMap.get(t):void 0}nodeIndexOf(e){return this.nodeIndexCache||this.buildNodeIndexCache(),this.nodeIndexCache.get(e)??-1}firstNode(){return this.nodeMap.values().next().value}forEachNode(e){let t=0;this.nodeMap.forEach(n=>e(n,t++))}originalNode(e){return this.nodeMap.get(e)?._original}nodeCount(){return this.nodeMap.size}edges(){return Array.from(this.edgeMap.values())}edge(e){return this.edgeMap.get(e)}firstEdge(){return this.edgeMap.values().next().value}forEachEdge(e){let t=0;this.edgeMap.forEach(n=>e(n,t++))}originalEdge(e){return this.edgeMap.get(e)?._original}edgeCount(){return this.edgeMap.size}getEdgeId(e){if(e.id)return e.id;let t=`${e.source}-${e.target}`,n=this.edgeIdCounter.get(t)||0,r=n===0?t:`${t}-${n}`;return this.edgeIdCounter.set(t,n+1),r}degree(e,t=`both`){this.degreeCache||this.buildDegreeCache();let n=this.degreeCache.get(e);return n?n[t]:0}neighbors(e,t=`both`){if((!this.outAdjacencyCache||!this.inAdjacencyCache)&&this.buildAdjacencyCache(),t===`out`)return Array.from(this.outAdjacencyCache.get(e)||[]);if(t===`in`)return Array.from(this.inAdjacencyCache.get(e)||[]);if(this.bothAdjacencyCache)return Array.from(this.bothAdjacencyCache.get(e)||[]);let n=this.inAdjacencyCache.get(e),r=this.outAdjacencyCache.get(e);if(!n&&!r)return[];if(!n)return Array.from(r);if(!r)return Array.from(n);let i=new Set;return n.forEach(e=>i.add(e)),r.forEach(e=>i.add(e)),Array.from(i)}successors(e){return this.neighbors(e,`out`)}predecessors(e){return this.neighbors(e,`in`)}setNodeOrder(e){let t=new Map;for(let n of e)t.set(n.id,n);this.nodeMap=t,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}clearCache(){this.degreeCache=void 0,this.inAdjacencyCache=void 0,this.outAdjacencyCache=void 0,this.bothAdjacencyCache=void 0,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}buildDegreeCache(){this.degreeCache=new Map;for(let e of this.edges()){let{source:t,target:n}=e;if(e.source===e.target)continue;this.degreeCache.has(t)||this.degreeCache.set(t,{in:0,out:0,both:0});let r=this.degreeCache.get(e.source);r&&(r.out++,r.both++),this.degreeCache.has(n)||this.degreeCache.set(n,{in:0,out:0,both:0});let i=this.degreeCache.get(e.target);i&&(i.in++,i.both++)}}buildAdjacencyCache(){this.inAdjacencyCache=new Map,this.outAdjacencyCache=new Map;for(let e of this.edges())this.nodeMap.has(e.source)&&this.nodeMap.has(e.target)&&(this.outAdjacencyCache.has(e.source)||this.outAdjacencyCache.set(e.source,new Set),this.outAdjacencyCache.get(e.source).add(e.target),this.inAdjacencyCache.has(e.target)||this.inAdjacencyCache.set(e.target,new Set),this.inAdjacencyCache.get(e.target).add(e.source))}buildNodeIndexCache(){this.nodeIndexCache=new Map,this.indexNodeCache=new Map;let e=0;this.nodeMap.forEach((t,n)=>{this.nodeIndexCache.set(n,e),this.indexNodeCache.set(e,n),e++})}destroy(){this.clearCache(),this.nodeMap.clear(),this.edgeMap.clear(),this.edgeIdCounter.clear()}},dt=[`id`,`x`,`y`,`z`,`vx`,`vy`,`vz`,`fx`,`fy`,`fz`,`parentId`],ft=[`id`,`source`,`target`,`points`];function pt(e,t){if(!e)throw Error(`Data.nodes is required`);let n=new Map;for(let r of e){let e={_original:r};for(let t of dt){let n=r[t];U(n)||(e[t]=n)}if(t){let n=t(r);for(let t in n){let r=n[t];U(r)||(e[t]=r)}}if(U(e.id))throw Error(`Node is missing id field`);n.set(e.id,e)}return n}function mt(e,t,n){let r=new Map;for(let i of e){let e={_original:i};for(let t of ft){let n=i[t];U(n)||(e[t]=n)}if(t){let n=t(i);for(let t in n){let r=n[t];U(r)||(e[t]=r)}}if(U(e.source)||U(e.target))throw Error(`Edge is missing source or target field`);U(e.id)&&(e.id=n?.(i)),r.set(e.id,e)}return r}var ht=class{constructor(e,t={}){this.graph=new ut(e,t)}export(){return this.graph.data()}replace(e){this.graph.replace(e)}forEachNode(e){this.graph.forEachNode(e)}forEachEdge(e){this.graph.forEachEdge((t,n)=>{t.sourceNode=this.graph.node(t.source),t.targetNode=this.graph.node(t.target),e(t,n)})}destroy(){this.graph.destroy()}},gt=Symbol(`Comlink.proxy`),_t=Symbol(`Comlink.endpoint`),vt=Symbol(`Comlink.releaseProxy`),yt=Symbol(`Comlink.finalizer`),bt=Symbol(`Comlink.thrown`),xt=e=>typeof e==`object`&&!!e||typeof e==`function`,St=new Map([[`proxy`,{canHandle:e=>xt(e)&&e[gt],serialize(e){let{port1:t,port2:n}=new MessageChannel;return wt(e,t),[n,[n]]},deserialize(e){return e.start(),Dt(e)}}],[`throw`,{canHandle:e=>xt(e)&&bt in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function Ct(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function wt(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!Ct(n,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:a,type:o,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(Vt),l;try{let t=s.slice(0,-1).reduce((e,t)=>e[t],e),n=s.reduce((e,t)=>e[t],e);switch(o){case`GET`:l=n;break;case`SET`:t[s.slice(-1)[0]]=Vt(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=zt(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;wt(e,n),l=Rt(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[bt]:0}}Promise.resolve(l).catch(e=>({value:e,[bt]:0})).then(n=>{let[i,s]=Bt(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),Et(t),yt in e&&typeof e[yt]==`function`&&e[yt]())}).catch(e=>{let[n,r]=Bt({value:TypeError(`Unserializable return value`),[bt]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function Tt(e){return e.constructor.name===`MessagePort`}function Et(e){Tt(e)&&e.close()}function Dt(e,t){let n=new Map;return e.addEventListener(`message`,function(e){let{data:t}=e;if(!t||!t.id)return;let r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),Pt(e,n,[],t)}function Ot(e){if(e)throw Error(`Proxy has been released and is not useable`)}function kt(e){return Ht(e,new Map,{type:`RELEASE`}).then(()=>{Et(e)})}var At=new WeakMap,jt=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(At.get(e)||0)-1;At.set(e,t),t===0&&kt(e)});function Mt(e,t){let n=(At.get(t)||0)+1;At.set(t,n),jt&&jt.register(e,t,e)}function Nt(e){jt&&jt.unregister(e)}function Pt(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(Ot(i),o===vt)return()=>{Nt(a),kt(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=Ht(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(Vt);return r.then.bind(r)}return Pt(e,t,[...n,o])},set(r,a,o){Ot(i);let[s,c]=Bt(o);return Ht(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(Vt)},apply(r,a,o){Ot(i);let s=n[n.length-1];if(s===_t)return Ht(e,t,{type:`ENDPOINT`}).then(Vt);if(s===`bind`)return Pt(e,t,n.slice(0,-1));let[c,l]=It(o);return Ht(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(Vt)},construct(r,a){Ot(i);let[o,s]=It(a);return Ht(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(Vt)}});return Mt(a,e),a}function Ft(e){return Array.prototype.concat.apply([],e)}function It(e){let t=e.map(Bt);return[t.map(e=>e[0]),Ft(t.map(e=>e[1]))]}var Lt=new WeakMap;function Rt(e,t){return Lt.set(e,t),e}function zt(e){return Object.assign(e,{[gt]:!0})}function Bt(e){for(let[t,n]of St)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},Lt.get(e)||[]]}function Vt(e){switch(e.type){case`HANDLER`:return St.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function Ht(e,t,n,r){return new Promise(i=>{let a=Ut();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function Ut(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}var Wt=class{constructor(){this.worker=null,this.workerApi=null}execute(e,t,n){return Pe(this,void 0,void 0,function*(){if(this.worker||(yield this.initWorker()),!this.workerApi)throw Error(`Worker API not initialized`);return yield this.workerApi.execute(e,t,n)})}destroy(){this.workerApi&&this.workerApi.destroy(),this.worker&&(this.worker.terminate(),this.worker=null,this.workerApi=null)}initWorker(){return Pe(this,void 0,void 0,function*(){let e=this.resolveWorkerPath(),t=e.includes(`/lib/`)||e.endsWith(`.mjs`)?`module`:`classic`;this.worker=new Worker(e,{type:t}),this.workerApi=Dt(this.worker)})}resolveWorkerPath(){let e=(()=>{if(typeof document>`u`)return null;let e=document.currentScript;if(e?.src)return e.src;let t=document.getElementsByTagName(`script`);for(let e=t.length-1;e>=0;e--){let n=t[e].src;if(n&&(n.includes(`index.js`)||n.includes(`index.min.js`)))return n}return null})();if(e){if(e.includes(`index.js`)||e.includes(`index.min.js`)){let t=e.replace(/index(\.min)?\.(m?js)(\?.*)?$/,`worker.js`);if(t!==e)return t}let t=e.replace(/\/runtime\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(t!==e)return t;let n=e.replace(/\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(n!==e)return n}return`./worker.js`}},Gt=class{constructor(e){this.supervisor=null,this.initialOptions=this.mergeOptions(this.getDefaultOptions(),e)}get options(){return this.runtimeOptions||this.initialOptions}mergeOptions(e,t){return Object.assign({},e,t||{})}execute(e,t){return Pe(this,void 0,void 0,function*(){this.runtimeOptions=this.mergeOptions(this.initialOptions,t);let{node:n,edge:r,enableWorker:i}=this.runtimeOptions;this.context=new ht(e,{node:n,edge:r}),this.model=this.context.graph,i&&typeof Worker<`u`?yield this.layoutInWorker(e,this.runtimeOptions):yield this.layout(this.runtimeOptions)})}layoutInWorker(e,t){var n;return Pe(this,void 0,void 0,function*(){try{this.supervisor||=new Wt;let r=yield this.supervisor.execute(this.id,e,t);(n=this.context)==null||n.replace(r)}catch(e){console.error(`Layout in worker failed, fallback to main thread layout.`,e),yield this.layout(t)}})}forEachNode(e){this.context.forEachNode(e)}forEachEdge(e){this.context.forEachEdge(e)}destroy(){var e;(e=this.context)==null||e.destroy(),this.model=null,this.context=null,this.supervisor&&=(this.supervisor.destroy(),null)}};function Kt(e){return Array.isArray(e)}var qt=(function(e){var t=typeof e;return e!==null&&t===`object`||t===`function`}),Jt=function(e){return typeof e==`object`&&!!e},Yt={}.toString,Xt=function(e,t){return Yt.call(e)===`[object `+t+`]`},Zt=function(e){if(!Jt(e)||!Xt(e,`Object`))return!1;if(Object.getPrototypeOf(e)===null)return!0;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},Qt=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function $t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function en(e){throw Error(`Could not dynamically require "`+e+`". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.`)}var tn,nn;function rn(){if(nn)return tn;nn=1;function e(){this.__data__=[],this.size=0}return tn=e,tn}var an,on;function sn(){if(on)return an;on=1;function e(e,t){return e===t||e!==e&&t!==t}return an=e,an}var cn,ln;function un(){if(ln)return cn;ln=1;var e=sn();function t(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}return cn=t,cn}var dn,fn;function pn(){if(fn)return dn;fn=1;var e=un(),t=Array.prototype.splice;function n(n){var r=this.__data__,i=e(r,n);return i<0?!1:(i==r.length-1?r.pop():t.call(r,i,1),--this.size,!0)}return dn=n,dn}var mn,hn;function gn(){if(hn)return mn;hn=1;var e=un();function t(t){var n=this.__data__,r=e(n,t);return r<0?void 0:n[r][1]}return mn=t,mn}var _n,vn;function yn(){if(vn)return _n;vn=1;var e=un();function t(t){return e(this.__data__,t)>-1}return _n=t,_n}var bn,xn;function Sn(){if(xn)return bn;xn=1;var e=un();function t(t,n){var r=this.__data__,i=e(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this}return bn=t,bn}var Cn,wn;function Tn(){if(wn)return Cn;wn=1;var e=rn(),t=pn(),n=gn(),r=yn(),i=Sn();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Cn=a,Cn}var En,Dn;function On(){if(Dn)return En;Dn=1;var e=Tn();function t(){this.__data__=new e,this.size=0}return En=t,En}var kn,An;function jn(){if(An)return kn;An=1;function e(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}return kn=e,kn}var Mn,Nn;function Pn(){if(Nn)return Mn;Nn=1;function e(e){return this.__data__.get(e)}return Mn=e,Mn}var Fn,In;function Ln(){if(In)return Fn;In=1;function e(e){return this.__data__.has(e)}return Fn=e,Fn}var Rn,zn;function Bn(){return zn?Rn:(zn=1,Rn=typeof Qt==`object`&&Qt&&Qt.Object===Object&&Qt,Rn)}var Vn,Hn;function W(){if(Hn)return Vn;Hn=1;var e=Bn(),t=typeof self==`object`&&self&&self.Object===Object&&self;return Vn=e||t||Function(`return this`)(),Vn}var Un,Wn;function Gn(){return Wn?Un:(Wn=1,Un=W().Symbol,Un)}var Kn,qn;function Jn(){if(qn)return Kn;qn=1;var e=Gn(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,i=e?e.toStringTag:void 0;function a(e){var t=n.call(e,i),a=e[i];try{e[i]=void 0;var o=!0}catch{}var s=r.call(e);return o&&(t?e[i]=a:delete e[i]),s}return Kn=a,Kn}var Yn,Xn;function Zn(){if(Xn)return Yn;Xn=1;var e=Object.prototype.toString;function t(t){return e.call(t)}return Yn=t,Yn}var Qn,$n;function er(){if($n)return Qn;$n=1;var e=Gn(),t=Jn(),n=Zn(),r=`[object Null]`,i=`[object Undefined]`,a=e?e.toStringTag:void 0;function o(e){return e==null?e===void 0?i:r:a&&a in Object(e)?t(e):n(e)}return Qn=o,Qn}var tr,nr;function G(){if(nr)return tr;nr=1;function e(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}return tr=e,tr}var rr,ir;function ar(){if(ir)return rr;ir=1;var e=er(),t=G(),n=`[object AsyncFunction]`,r=`[object Function]`,i=`[object GeneratorFunction]`,a=`[object Proxy]`;function o(o){if(!t(o))return!1;var s=e(o);return s==r||s==i||s==n||s==a}return rr=o,rr}var or,sr;function cr(){return sr?or:(sr=1,or=W()[`__core-js_shared__`],or)}var lr,ur;function dr(){if(ur)return lr;ur=1;var e=cr(),t=function(){var t=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||``);return t?`Symbol(src)_1.`+t:``}();function n(e){return!!t&&t in e}return lr=n,lr}var fr,pr;function mr(){if(pr)return fr;pr=1;var e=Function.prototype.toString;function t(t){if(t!=null){try{return e.call(t)}catch{}try{return t+``}catch{}}return``}return fr=t,fr}var hr,gr;function _r(){if(gr)return hr;gr=1;var e=ar(),t=dr(),n=G(),r=mr(),i=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=RegExp(`^`+c.call(l).replace(i,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function d(i){return!n(i)||t(i)?!1:(e(i)?u:a).test(r(i))}return hr=d,hr}var vr,yr;function br(){if(yr)return vr;yr=1;function e(e,t){return e?.[t]}return vr=e,vr}var xr,Sr;function Cr(){if(Sr)return xr;Sr=1;var e=_r(),t=br();function n(n,r){var i=t(n,r);return e(i)?i:void 0}return xr=n,xr}var wr,Tr;function Er(){return Tr?wr:(Tr=1,wr=Cr()(W(),`Map`),wr)}var Dr,Or;function kr(){return Or?Dr:(Or=1,Dr=Cr()(Object,`create`),Dr)}var Ar,jr;function Mr(){if(jr)return Ar;jr=1;var e=kr();function t(){this.__data__=e?e(null):{},this.size=0}return Ar=t,Ar}var Nr,Pr;function Fr(){if(Pr)return Nr;Pr=1;function e(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}return Nr=e,Nr}var Ir,Lr;function Rr(){if(Lr)return Ir;Lr=1;var e=kr(),t=`__lodash_hash_undefined__`,n=Object.prototype.hasOwnProperty;function r(r){var i=this.__data__;if(e){var a=i[r];return a===t?void 0:a}return n.call(i,r)?i[r]:void 0}return Ir=r,Ir}var zr,Br;function Vr(){if(Br)return zr;Br=1;var e=kr(),t=Object.prototype.hasOwnProperty;function n(n){var r=this.__data__;return e?r[n]!==void 0:t.call(r,n)}return zr=n,zr}var Hr,Ur;function Wr(){if(Ur)return Hr;Ur=1;var e=kr(),t=`__lodash_hash_undefined__`;function n(n,r){var i=this.__data__;return this.size+=+!this.has(n),i[n]=e&&r===void 0?t:r,this}return Hr=n,Hr}var Gr,Kr;function qr(){if(Kr)return Gr;Kr=1;var e=Mr(),t=Fr(),n=Rr(),r=Vr(),i=Wr();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Gr=a,Gr}var Jr,Yr;function Xr(){if(Yr)return Jr;Yr=1;var e=qr(),t=Tn(),n=Er();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return Jr=r,Jr}var Zr,Qr;function $r(){if(Qr)return Zr;Qr=1;function e(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}return Zr=e,Zr}var ei,ti;function ni(){if(ti)return ei;ti=1;var e=$r();function t(t,n){var r=t.__data__;return e(n)?r[typeof n==`string`?`string`:`hash`]:r.map}return ei=t,ei}var ri,ii;function ai(){if(ii)return ri;ii=1;var e=ni();function t(t){var n=e(this,t).delete(t);return this.size-=+!!n,n}return ri=t,ri}var oi,si;function ci(){if(si)return oi;si=1;var e=ni();function t(t){return e(this,t).get(t)}return oi=t,oi}var li,ui;function di(){if(ui)return li;ui=1;var e=ni();function t(t){return e(this,t).has(t)}return li=t,li}var fi,pi;function mi(){if(pi)return fi;pi=1;var e=ni();function t(t,n){var r=e(this,t),i=r.size;return r.set(t,n),this.size+=r.size==i?0:1,this}return fi=t,fi}var hi,gi;function _i(){if(gi)return hi;gi=1;var e=Xr(),t=ai(),n=ci(),r=di(),i=mi();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,hi=a,hi}var vi,yi;function bi(){if(yi)return vi;yi=1;var e=Tn(),t=Er(),n=_i(),r=200;function i(i,a){var o=this.__data__;if(o instanceof e){var s=o.__data__;if(!t||s.length<r-1)return s.push([i,a]),this.size=++o.size,this;o=this.__data__=new n(s)}return o.set(i,a),this.size=o.size,this}return vi=i,vi}var xi,Si;function Ci(){if(Si)return xi;Si=1;var e=Tn(),t=On(),n=jn(),r=Pn(),i=Ln(),a=bi();function o(t){var n=this.__data__=new e(t);this.size=n.size}return o.prototype.clear=t,o.prototype.delete=n,o.prototype.get=r,o.prototype.has=i,o.prototype.set=a,xi=o,xi}var wi,Ti;function Ei(){if(Ti)return wi;Ti=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}return wi=e,wi}var Di,Oi;function ki(){if(Oi)return Di;Oi=1;var e=Cr();return Di=function(){try{var t=e(Object,`defineProperty`);return t({},``,{}),t}catch{}}(),Di}var Ai,ji;function Mi(){if(ji)return Ai;ji=1;var e=ki();function t(t,n,r){n==`__proto__`&&e?e(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}return Ai=t,Ai}var Ni,Pi;function Fi(){if(Pi)return Ni;Pi=1;var e=Mi(),t=sn(),n=Object.prototype.hasOwnProperty;function r(r,i,a){var o=r[i];(!(n.call(r,i)&&t(o,a))||a===void 0&&!(i in r))&&e(r,i,a)}return Ni=r,Ni}var Ii,Li;function Ri(){if(Li)return Ii;Li=1;var e=Fi(),t=Mi();function n(n,r,i,a){var o=!i;i||={};for(var s=-1,c=r.length;++s<c;){var l=r[s],u=a?a(i[l],n[l],l,i,n):void 0;u===void 0&&(u=n[l]),o?t(i,l,u):e(i,l,u)}return i}return Ii=n,Ii}var zi,Bi;function Vi(){if(Bi)return zi;Bi=1;function e(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}return zi=e,zi}var Hi,Ui;function K(){if(Ui)return Hi;Ui=1;function e(e){return typeof e==`object`&&!!e}return Hi=e,Hi}var Wi,Gi;function Ki(){if(Gi)return Wi;Gi=1;var e=er(),t=K(),n=`[object Arguments]`;function r(r){return t(r)&&e(r)==n}return Wi=r,Wi}var qi,Ji;function Yi(){if(Ji)return qi;Ji=1;var e=Ki(),t=K(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable;return qi=e(function(){return arguments}())?e:function(e){return t(e)&&r.call(e,`callee`)&&!i.call(e,`callee`)},qi}var Xi,Zi;function q(){return Zi?Xi:(Zi=1,Xi=Array.isArray,Xi)}var Qi={exports:{}},$i,ea;function ta(){if(ea)return $i;ea=1;function e(){return!1}return $i=e,$i}Qi.exports;var na;function ra(){return na?Qi.exports:(na=1,(function(e,t){var n=W(),r=ta(),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?n.Buffer:void 0;e.exports=(o?o.isBuffer:void 0)||r})(Qi,Qi.exports),Qi.exports)}var ia,aa;function oa(){if(aa)return ia;aa=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function n(n,r){var i=typeof n;return r??=e,!!r&&(i==`number`||i!=`symbol`&&t.test(n))&&n>-1&&n%1==0&&n<r}return ia=n,ia}var sa,ca;function la(){if(ca)return sa;ca=1;var e=9007199254740991;function t(t){return typeof t==`number`&&t>-1&&t%1==0&&t<=e}return sa=t,sa}var ua,da;function fa(){if(da)return ua;da=1;var e=er(),t=la(),n=K(),r=`[object Arguments]`,i=`[object Array]`,a=`[object Boolean]`,o=`[object Date]`,s=`[object Error]`,c=`[object Function]`,l=`[object Map]`,u=`[object Number]`,d=`[object Object]`,f=`[object RegExp]`,p=`[object Set]`,m=`[object String]`,h=`[object WeakMap]`,g=`[object ArrayBuffer]`,_=`[object DataView]`,v=`[object Float32Array]`,y=`[object Float64Array]`,b=`[object Int8Array]`,x=`[object Int16Array]`,S=`[object Int32Array]`,C=`[object Uint8Array]`,w=`[object Uint8ClampedArray]`,T=`[object Uint16Array]`,E=`[object Uint32Array]`,D={};D[v]=D[y]=D[b]=D[x]=D[S]=D[C]=D[w]=D[T]=D[E]=!0,D[r]=D[i]=D[g]=D[a]=D[_]=D[o]=D[s]=D[c]=D[l]=D[u]=D[d]=D[f]=D[p]=D[m]=D[h]=!1;function O(r){return n(r)&&t(r.length)&&!!D[e(r)]}return ua=O,ua}var pa,ma;function ha(){if(ma)return pa;ma=1;function e(e){return function(t){return e(t)}}return pa=e,pa}var ga={exports:{}};ga.exports;var _a;function va(){return _a?ga.exports:(_a=1,(function(e,t){var n=Bn(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r&&n.process;e.exports=function(){try{return i&&i.require&&i.require(`util`).types||a&&a.binding&&a.binding(`util`)}catch{}}()})(ga,ga.exports),ga.exports)}var ya,ba;function xa(){if(ba)return ya;ba=1;var e=fa(),t=ha(),n=va(),r=n&&n.isTypedArray;return ya=r?t(r):e,ya}var Sa,Ca;function wa(){if(Ca)return Sa;Ca=1;var e=Vi(),t=Yi(),n=q(),r=ra(),i=oa(),a=xa(),o=Object.prototype.hasOwnProperty;function s(s,c){var l=n(s),u=!l&&t(s),d=!l&&!u&&r(s),f=!l&&!u&&!d&&a(s),p=l||u||d||f,m=p?e(s.length,String):[],h=m.length;for(var g in s)(c||o.call(s,g))&&!(p&&(g==`length`||d&&(g==`offset`||g==`parent`)||f&&(g==`buffer`||g==`byteLength`||g==`byteOffset`)||i(g,h)))&&m.push(g);return m}return Sa=s,Sa}var Ta,Ea;function Da(){if(Ea)return Ta;Ea=1;var e=Object.prototype;function t(t){var n=t&&t.constructor;return t===(typeof n==`function`&&n.prototype||e)}return Ta=t,Ta}var Oa,ka;function Aa(){if(ka)return Oa;ka=1;function e(e,t){return function(n){return e(t(n))}}return Oa=e,Oa}var ja,Ma;function Na(){return Ma?ja:(Ma=1,ja=Aa()(Object.keys,Object),ja)}var Pa,Fa;function Ia(){if(Fa)return Pa;Fa=1;var e=Da(),t=Na(),n=Object.prototype.hasOwnProperty;function r(r){if(!e(r))return t(r);var i=[];for(var a in Object(r))n.call(r,a)&&a!=`constructor`&&i.push(a);return i}return Pa=r,Pa}var La,Ra;function J(){if(Ra)return La;Ra=1;var e=ar(),t=la();function n(n){return n!=null&&t(n.length)&&!e(n)}return La=n,La}var za,Ba;function Va(){if(Ba)return za;Ba=1;var e=wa(),t=Ia(),n=J();function r(r){return n(r)?e(r):t(r)}return za=r,za}var Ha,Ua;function Wa(){if(Ua)return Ha;Ua=1;var e=Ri(),t=Va();function n(n,r){return n&&e(r,t(r),n)}return Ha=n,Ha}var Ga,Ka;function qa(){if(Ka)return Ga;Ka=1;function e(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return Ga=e,Ga}var Ja,Ya;function Xa(){if(Ya)return Ja;Ya=1;var e=G(),t=Da(),n=qa(),r=Object.prototype.hasOwnProperty;function i(i){if(!e(i))return n(i);var a=t(i),o=[];for(var s in i)(s!=`constructor`||!a&&r.call(i,s))&&o.push(s);return o}return Ja=i,Ja}var Za,Qa;function $a(){if(Qa)return Za;Qa=1;var e=wa(),t=Xa(),n=J();function r(r){return n(r)?e(r,!0):t(r)}return Za=r,Za}var eo,to;function no(){if(to)return eo;to=1;var e=Ri(),t=$a();function n(n,r){return n&&e(r,t(r),n)}return eo=n,eo}var ro={exports:{}};ro.exports;var io;function ao(){return io?ro.exports:(io=1,(function(e,t){var n=W(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}e.exports=s})(ro,ro.exports),ro.exports)}var oo,so;function co(){if(so)return oo;so=1;function e(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}return oo=e,oo}var lo,uo;function fo(){if(uo)return lo;uo=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}return lo=e,lo}var po,mo;function ho(){if(mo)return po;mo=1;function e(){return[]}return po=e,po}var go,_o;function vo(){if(_o)return go;_o=1;var e=fo(),t=ho(),n=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return go=r?function(t){return t==null?[]:(t=Object(t),e(r(t),function(e){return n.call(t,e)}))}:t,go}var yo,bo;function xo(){if(bo)return yo;bo=1;var e=Ri(),t=vo();function n(n,r){return e(n,t(n),r)}return yo=n,yo}var So,Co;function wo(){if(Co)return So;Co=1;function e(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}return So=e,So}var To,Eo;function Do(){return Eo?To:(Eo=1,To=Aa()(Object.getPrototypeOf,Object),To)}var Oo,ko;function Ao(){if(ko)return Oo;ko=1;var e=wo(),t=Do(),n=vo(),r=ho();return Oo=Object.getOwnPropertySymbols?function(r){for(var i=[];r;)e(i,n(r)),r=t(r);return i}:r,Oo}var jo,Mo;function No(){if(Mo)return jo;Mo=1;var e=Ri(),t=Ao();function n(n,r){return e(n,t(n),r)}return jo=n,jo}var Po,Fo;function Io(){if(Fo)return Po;Fo=1;var e=wo(),t=q();function n(n,r,i){var a=r(n);return t(n)?a:e(a,i(n))}return Po=n,Po}var Lo,Ro;function zo(){if(Ro)return Lo;Ro=1;var e=Io(),t=vo(),n=Va();function r(r){return e(r,n,t)}return Lo=r,Lo}var Bo,Vo;function Ho(){if(Vo)return Bo;Vo=1;var e=Io(),t=Ao(),n=$a();function r(r){return e(r,n,t)}return Bo=r,Bo}var Uo,Wo;function Go(){return Wo?Uo:(Wo=1,Uo=Cr()(W(),`DataView`),Uo)}var Ko,qo;function Jo(){return qo?Ko:(qo=1,Ko=Cr()(W(),`Promise`),Ko)}var Yo,Xo;function Zo(){return Xo?Yo:(Xo=1,Yo=Cr()(W(),`Set`),Yo)}var Qo,$o;function es(){return $o?Qo:($o=1,Qo=Cr()(W(),`WeakMap`),Qo)}var ts,ns;function rs(){if(ns)return ts;ns=1;var e=Go(),t=Er(),n=Jo(),r=Zo(),i=es(),a=er(),o=mr(),s=`[object Map]`,c=`[object Object]`,l=`[object Promise]`,u=`[object Set]`,d=`[object WeakMap]`,f=`[object DataView]`,p=o(e),m=o(t),h=o(n),g=o(r),_=o(i),v=a;return(e&&v(new e(new ArrayBuffer(1)))!=f||t&&v(new t)!=s||n&&v(n.resolve())!=l||r&&v(new r)!=u||i&&v(new i)!=d)&&(v=function(e){var t=a(e),n=t==c?e.constructor:void 0,r=n?o(n):``;if(r)switch(r){case p:return f;case m:return s;case h:return l;case g:return u;case _:return d}return t}),ts=v,ts}var is,as;function os(){if(as)return is;as=1;var e=Object.prototype.hasOwnProperty;function t(t){var n=t.length,r=new t.constructor(n);return n&&typeof t[0]==`string`&&e.call(t,`index`)&&(r.index=t.index,r.input=t.input),r}return is=t,is}var ss,cs;function ls(){return cs?ss:(cs=1,ss=W().Uint8Array,ss)}var us,ds;function fs(){if(ds)return us;ds=1;var e=ls();function t(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}return us=t,us}var ps,ms;function hs(){if(ms)return ps;ms=1;var e=fs();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}return ps=t,ps}var gs,_s;function vs(){if(_s)return gs;_s=1;var e=/\w*$/;function t(t){var n=new t.constructor(t.source,e.exec(t));return n.lastIndex=t.lastIndex,n}return gs=t,gs}var ys,bs;function xs(){if(bs)return ys;bs=1;var e=Gn(),t=e?e.prototype:void 0,n=t?t.valueOf:void 0;function r(e){return n?Object(n.call(e)):{}}return ys=r,ys}var Ss,Cs;function ws(){if(Cs)return Ss;Cs=1;var e=fs();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}return Ss=t,Ss}var Ts,Es;function Ds(){if(Es)return Ts;Es=1;var e=fs(),t=hs(),n=vs(),r=xs(),i=ws(),a=`[object Boolean]`,o=`[object Date]`,s=`[object Map]`,c=`[object Number]`,l=`[object RegExp]`,u=`[object Set]`,d=`[object String]`,f=`[object Symbol]`,p=`[object ArrayBuffer]`,m=`[object DataView]`,h=`[object Float32Array]`,g=`[object Float64Array]`,_=`[object Int8Array]`,v=`[object Int16Array]`,y=`[object Int32Array]`,b=`[object Uint8Array]`,x=`[object Uint8ClampedArray]`,S=`[object Uint16Array]`,C=`[object Uint32Array]`;function w(w,T,E){var D=w.constructor;switch(T){case p:return e(w);case a:case o:return new D(+w);case m:return t(w,E);case h:case g:case _:case v:case y:case b:case x:case S:case C:return i(w,E);case s:return new D;case c:case d:return new D(w);case l:return n(w);case u:return new D;case f:return r(w)}}return Ts=w,Ts}var Os,ks;function As(){if(ks)return Os;ks=1;var e=G(),t=Object.create;return Os=function(){function n(){}return function(r){if(!e(r))return{};if(t)return t(r);n.prototype=r;var i=new n;return n.prototype=void 0,i}}(),Os}var js,Ms;function Ns(){if(Ms)return js;Ms=1;var e=As(),t=Do(),n=Da();function r(r){return typeof r.constructor==`function`&&!n(r)?e(t(r)):{}}return js=r,js}var Ps,Fs;function Is(){if(Fs)return Ps;Fs=1;var e=rs(),t=K(),n=`[object Map]`;function r(r){return t(r)&&e(r)==n}return Ps=r,Ps}var Ls,Rs;function zs(){if(Rs)return Ls;Rs=1;var e=Is(),t=ha(),n=va(),r=n&&n.isMap;return Ls=r?t(r):e,Ls}var Bs,Vs;function Hs(){if(Vs)return Bs;Vs=1;var e=rs(),t=K(),n=`[object Set]`;function r(r){return t(r)&&e(r)==n}return Bs=r,Bs}var Us,Ws;function Gs(){if(Ws)return Us;Ws=1;var e=Hs(),t=ha(),n=va(),r=n&&n.isSet;return Us=r?t(r):e,Us}var Ks,qs;function Js(){if(qs)return Ks;qs=1;var e=Ci(),t=Ei(),n=Fi(),r=Wa(),i=no(),a=ao(),o=co(),s=xo(),c=No(),l=zo(),u=Ho(),d=rs(),f=os(),p=Ds(),m=Ns(),h=q(),g=ra(),_=zs(),v=G(),y=Gs(),b=Va(),x=$a(),S=1,C=2,w=4,T=`[object Arguments]`,E=`[object Array]`,D=`[object Boolean]`,O=`[object Date]`,k=`[object Error]`,A=`[object Function]`,ee=`[object GeneratorFunction]`,j=`[object Map]`,M=`[object Number]`,N=`[object Object]`,P=`[object RegExp]`,F=`[object Set]`,I=`[object String]`,te=`[object Symbol]`,L=`[object WeakMap]`,R=`[object ArrayBuffer]`,ne=`[object DataView]`,re=`[object Float32Array]`,ie=`[object Float64Array]`,ae=`[object Int8Array]`,oe=`[object Int16Array]`,se=`[object Int32Array]`,ce=`[object Uint8Array]`,le=`[object Uint8ClampedArray]`,ue=`[object Uint16Array]`,de=`[object Uint32Array]`,z={};z[T]=z[E]=z[R]=z[ne]=z[D]=z[O]=z[re]=z[ie]=z[ae]=z[oe]=z[se]=z[j]=z[M]=z[N]=z[P]=z[F]=z[I]=z[te]=z[ce]=z[le]=z[ue]=z[de]=!0,z[k]=z[A]=z[L]=!1;function fe(E,D,O,k,j,M){var P,F=D&S,I=D&C,te=D&w;if(O&&(P=j?O(E,k,j,M):O(E)),P!==void 0)return P;if(!v(E))return E;var L=h(E);if(L){if(P=f(E),!F)return o(E,P)}else{var R=d(E),ne=R==A||R==ee;if(g(E))return a(E,F);if(R==N||R==T||ne&&!j){if(P=I||ne?{}:m(E),!F)return I?c(E,i(P,E)):s(E,r(P,E))}else{if(!z[R])return j?E:{};P=p(E,R,F)}}M||=new e;var re=M.get(E);if(re)return re;M.set(E,P),y(E)?E.forEach(function(e){P.add(fe(e,D,O,e,E,M))}):_(E)&&E.forEach(function(e,t){P.set(t,fe(e,D,O,t,E,M))});var ie=L?void 0:(te?I?u:l:I?x:b)(E);return t(ie||E,function(e,t){ie&&(t=e,e=E[t]),n(P,t,fe(e,D,O,t,E,M))}),P}return Ks=fe,Ks}var Ys,Xs;function Zs(){if(Xs)return Ys;Xs=1;var e=Js(),t=4;function n(n){return e(n,t)}return Ys=n,Ys}var Qs,$s;function ec(){if($s)return Qs;$s=1;function e(e){return function(){return e}}return Qs=e,Qs}var tc,nc;function rc(){if(nc)return tc;nc=1;function e(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}return tc=e,tc}var ic,ac;function oc(){return ac?ic:(ac=1,ic=rc()(),ic)}var sc,cc;function lc(){if(cc)return sc;cc=1;var e=oc(),t=Va();function n(n,r){return n&&e(n,r,t)}return sc=n,sc}var uc,dc;function fc(){if(dc)return uc;dc=1;var e=J();function t(t,n){return function(r,i){if(r==null)return r;if(!e(r))return t(r,i);for(var a=r.length,o=n?a:-1,s=Object(r);(n?o--:++o<a)&&i(s[o],o,s)!==!1;);return r}}return uc=t,uc}var pc,mc;function hc(){if(mc)return pc;mc=1;var e=lc();return pc=fc()(e),pc}var gc,_c;function vc(){if(_c)return gc;_c=1;function e(e){return e}return gc=e,gc}var yc,bc;function xc(){if(bc)return yc;bc=1;var e=vc();function t(t){return typeof t==`function`?t:e}return yc=t,yc}var Sc,Cc;function wc(){if(Cc)return Sc;Cc=1;var e=Ei(),t=hc(),n=xc(),r=q();function i(i,a){return(r(i)?e:t)(i,n(a))}return Sc=i,Sc}var Tc,Ec;function Dc(){return Ec?Tc:(Ec=1,Tc=wc(),Tc)}var Oc,kc;function Ac(){if(kc)return Oc;kc=1;var e=hc();function t(t,n){var r=[];return e(t,function(e,t,i){n(e,t,i)&&r.push(e)}),r}return Oc=t,Oc}var jc,Mc;function Nc(){if(Mc)return jc;Mc=1;var e=`__lodash_hash_undefined__`;function t(t){return this.__data__.set(t,e),this}return jc=t,jc}var Pc,Fc;function Ic(){if(Fc)return Pc;Fc=1;function e(e){return this.__data__.has(e)}return Pc=e,Pc}var Lc,Rc;function zc(){if(Rc)return Lc;Rc=1;var e=_i(),t=Nc(),n=Ic();function r(t){var n=-1,r=t==null?0:t.length;for(this.__data__=new e;++n<r;)this.add(t[n])}return r.prototype.add=r.prototype.push=t,r.prototype.has=n,Lc=r,Lc}var Bc,Vc;function Hc(){if(Vc)return Bc;Vc=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}return Bc=e,Bc}var Uc,Wc;function Gc(){if(Wc)return Uc;Wc=1;function e(e,t){return e.has(t)}return Uc=e,Uc}var Kc,qc;function Jc(){if(qc)return Kc;qc=1;var e=zc(),t=Hc(),n=Gc(),r=1,i=2;function a(a,o,s,c,l,u){var d=s&r,f=a.length,p=o.length;if(f!=p&&!(d&&p>f))return!1;var m=u.get(a),h=u.get(o);if(m&&h)return m==o&&h==a;var g=-1,_=!0,v=s&i?new e:void 0;for(u.set(a,o),u.set(o,a);++g<f;){var y=a[g],b=o[g];if(c)var x=d?c(b,y,g,o,a,u):c(y,b,g,a,o,u);if(x!==void 0){if(x)continue;_=!1;break}if(v){if(!t(o,function(e,t){if(!n(v,t)&&(y===e||l(y,e,s,c,u)))return v.push(t)})){_=!1;break}}else if(!(y===b||l(y,b,s,c,u))){_=!1;break}}return u.delete(a),u.delete(o),_}return Kc=a,Kc}var Yc,Xc;function Zc(){if(Xc)return Yc;Xc=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}return Yc=e,Yc}var Qc,$c;function el(){if($c)return Qc;$c=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}return Qc=e,Qc}var tl,nl;function rl(){if(nl)return tl;nl=1;var e=Gn(),t=ls(),n=sn(),r=Jc(),i=Zc(),a=el(),o=1,s=2,c=`[object Boolean]`,l=`[object Date]`,u=`[object Error]`,d=`[object Map]`,f=`[object Number]`,p=`[object RegExp]`,m=`[object Set]`,h=`[object String]`,g=`[object Symbol]`,_=`[object ArrayBuffer]`,v=`[object DataView]`,y=e?e.prototype:void 0,b=y?y.valueOf:void 0;function x(e,y,x,S,C,w,T){switch(x){case v:if(e.byteLength!=y.byteLength||e.byteOffset!=y.byteOffset)return!1;e=e.buffer,y=y.buffer;case _:return!(e.byteLength!=y.byteLength||!w(new t(e),new t(y)));case c:case l:case f:return n(+e,+y);case u:return e.name==y.name&&e.message==y.message;case p:case h:return e==y+``;case d:var E=i;case m:var D=S&o;if(E||=a,e.size!=y.size&&!D)return!1;var O=T.get(e);if(O)return O==y;S|=s,T.set(e,y);var k=r(E(e),E(y),S,C,w,T);return T.delete(e),k;case g:if(b)return b.call(e)==b.call(y)}return!1}return tl=x,tl}var il,al;function ol(){if(al)return il;al=1;var e=zo(),t=1,n=Object.prototype.hasOwnProperty;function r(r,i,a,o,s,c){var l=a&t,u=e(r),d=u.length;if(d!=e(i).length&&!l)return!1;for(var f=d;f--;){var p=u[f];if(!(l?p in i:n.call(i,p)))return!1}var m=c.get(r),h=c.get(i);if(m&&h)return m==i&&h==r;var g=!0;c.set(r,i),c.set(i,r);for(var _=l;++f<d;){p=u[f];var v=r[p],y=i[p];if(o)var b=l?o(y,v,p,i,r,c):o(v,y,p,r,i,c);if(!(b===void 0?v===y||s(v,y,a,o,c):b)){g=!1;break}_||=p==`constructor`}if(g&&!_){var x=r.constructor,S=i.constructor;x!=S&&`constructor`in r&&`constructor`in i&&!(typeof x==`function`&&x instanceof x&&typeof S==`function`&&S instanceof S)&&(g=!1)}return c.delete(r),c.delete(i),g}return il=r,il}var sl,cl;function ll(){if(cl)return sl;cl=1;var e=Ci(),t=Jc(),n=rl(),r=ol(),i=rs(),a=q(),o=ra(),s=xa(),c=1,l=`[object Arguments]`,u=`[object Array]`,d=`[object Object]`,f=Object.prototype.hasOwnProperty;function p(p,m,h,g,_,v){var y=a(p),b=a(m),x=y?u:i(p),S=b?u:i(m);x=x==l?d:x,S=S==l?d:S;var C=x==d,w=S==d,T=x==S;if(T&&o(p)){if(!o(m))return!1;y=!0,C=!1}if(T&&!C)return v||=new e,y||s(p)?t(p,m,h,g,_,v):n(p,m,x,h,g,_,v);if(!(h&c)){var E=C&&f.call(p,`__wrapped__`),D=w&&f.call(m,`__wrapped__`);if(E||D){var O=E?p.value():p,k=D?m.value():m;return v||=new e,_(O,k,h,g,v)}}return T?(v||=new e,r(p,m,h,g,_,v)):!1}return sl=p,sl}var ul,dl;function fl(){if(dl)return ul;dl=1;var e=ll(),t=K();function n(r,i,a,o,s){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:e(r,i,a,o,n,s)}return ul=n,ul}var pl,ml;function hl(){if(ml)return pl;ml=1;var e=Ci(),t=fl(),n=1,r=2;function i(i,a,o,s){var c=o.length,l=c,u=!s;if(i==null)return!l;for(i=Object(i);c--;){var d=o[c];if(u&&d[2]?d[1]!==i[d[0]]:!(d[0]in i))return!1}for(;++c<l;){d=o[c];var f=d[0],p=i[f],m=d[1];if(u&&d[2]){if(p===void 0&&!(f in i))return!1}else{var h=new e;if(s)var g=s(p,m,f,i,a,h);if(!(g===void 0?t(m,p,n|r,s,h):g))return!1}}return!0}return pl=i,pl}var gl,_l;function vl(){if(_l)return gl;_l=1;var e=G();function t(t){return t===t&&!e(t)}return gl=t,gl}var yl,bl;function xl(){if(bl)return yl;bl=1;var e=vl(),t=Va();function n(n){for(var r=t(n),i=r.length;i--;){var a=r[i],o=n[a];r[i]=[a,o,e(o)]}return r}return yl=n,yl}var Sl,Cl;function wl(){if(Cl)return Sl;Cl=1;function e(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}return Sl=e,Sl}var Tl,El;function Dl(){if(El)return Tl;El=1;var e=hl(),t=xl(),n=wl();function r(r){var i=t(r);return i.length==1&&i[0][2]?n(i[0][0],i[0][1]):function(t){return t===r||e(t,r,i)}}return Tl=r,Tl}var Ol,kl;function Al(){if(kl)return Ol;kl=1;var e=er(),t=K(),n=`[object Symbol]`;function r(r){return typeof r==`symbol`||t(r)&&e(r)==n}return Ol=r,Ol}var jl,Ml;function Nl(){if(Ml)return jl;Ml=1;var e=q(),t=Al(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(i,a){if(e(i))return!1;var o=typeof i;return o==`number`||o==`symbol`||o==`boolean`||i==null||t(i)?!0:r.test(i)||!n.test(i)||a!=null&&i in Object(a)}return jl=i,jl}var Pl,Fl;function Il(){if(Fl)return Pl;Fl=1;var e=_i(),t=`Expected a function`;function n(r,i){if(typeof r!=`function`||i!=null&&typeof i!=`function`)throw TypeError(t);var a=function(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);var o=r.apply(this,e);return a.cache=n.set(t,o)||n,o};return a.cache=new(n.Cache||e),a}return n.Cache=e,Pl=n,Pl}var Ll,Rl;function zl(){if(Rl)return Ll;Rl=1;var e=Il(),t=500;function n(n){var r=e(n,function(e){return i.size===t&&i.clear(),e}),i=r.cache;return r}return Ll=n,Ll}var Bl,Vl;function Hl(){if(Vl)return Bl;Vl=1;var e=zl(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g;return Bl=e(function(e){var r=[];return e.charCodeAt(0)===46&&r.push(``),e.replace(t,function(e,t,i,a){r.push(i?a.replace(n,`$1`):t||e)}),r}),Bl}var Ul,Wl;function Gl(){if(Wl)return Ul;Wl=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}return Ul=e,Ul}var Kl,ql;function Jl(){if(ql)return Kl;ql=1;var e=Gn(),t=Gl(),n=q(),r=Al(),i=e?e.prototype:void 0,a=i?i.toString:void 0;function o(e){if(typeof e==`string`)return e;if(n(e))return t(e,o)+``;if(r(e))return a?a.call(e):``;var i=e+``;return i==`0`&&1/e==-1/0?`-0`:i}return Kl=o,Kl}var Yl,Xl;function Zl(){if(Xl)return Yl;Xl=1;var e=Jl();function t(t){return t==null?``:e(t)}return Yl=t,Yl}var Ql,$l;function eu(){if($l)return Ql;$l=1;var e=q(),t=Nl(),n=Hl(),r=Zl();function i(i,a){return e(i)?i:t(i,a)?[i]:n(r(i))}return Ql=i,Ql}var tu,nu;function ru(){if(nu)return tu;nu=1;var e=Al();function t(t){if(typeof t==`string`||e(t))return t;var n=t+``;return n==`0`&&1/t==-1/0?`-0`:n}return tu=t,tu}var iu,au;function ou(){if(au)return iu;au=1;var e=eu(),t=ru();function n(n,r){r=e(r,n);for(var i=0,a=r.length;n!=null&&i<a;)n=n[t(r[i++])];return i&&i==a?n:void 0}return iu=n,iu}var su,cu;function lu(){if(cu)return su;cu=1;var e=ou();function t(t,n,r){var i=t==null?void 0:e(t,n);return i===void 0?r:i}return su=t,su}var uu,du;function fu(){if(du)return uu;du=1;function e(e,t){return e!=null&&t in Object(e)}return uu=e,uu}var pu,mu;function hu(){if(mu)return pu;mu=1;var e=eu(),t=Yi(),n=q(),r=oa(),i=la(),a=ru();function o(o,s,c){s=e(s,o);for(var l=-1,u=s.length,d=!1;++l<u;){var f=a(s[l]);if(!(d=o!=null&&c(o,f)))break;o=o[f]}return d||++l!=u?d:(u=o==null?0:o.length,!!u&&i(u)&&r(f,u)&&(n(o)||t(o)))}return pu=o,pu}var gu,_u;function vu(){if(_u)return gu;_u=1;var e=fu(),t=hu();function n(n,r){return n!=null&&t(n,r,e)}return gu=n,gu}var yu,bu;function xu(){if(bu)return yu;bu=1;var e=fl(),t=lu(),n=vu(),r=Nl(),i=vl(),a=wl(),o=ru(),s=1,c=2;function l(l,u){return r(l)&&i(u)?a(o(l),u):function(r){var i=t(r,l);return i===void 0&&i===u?n(r,l):e(u,i,s|c)}}return yu=l,yu}var Su,Cu;function wu(){if(Cu)return Su;Cu=1;function e(e){return function(t){return t?.[e]}}return Su=e,Su}var Tu,Eu;function Du(){if(Eu)return Tu;Eu=1;var e=ou();function t(t){return function(n){return e(n,t)}}return Tu=t,Tu}var Ou,ku;function Au(){if(ku)return Ou;ku=1;var e=wu(),t=Du(),n=Nl(),r=ru();function i(i){return n(i)?e(r(i)):t(i)}return Ou=i,Ou}var ju,Mu;function Y(){if(Mu)return ju;Mu=1;var e=Dl(),t=xu(),n=vc(),r=q(),i=Au();function a(a){return typeof a==`function`?a:a==null?n:typeof a==`object`?r(a)?t(a[0],a[1]):e(a):i(a)}return ju=a,ju}var Nu,Pu;function Fu(){if(Pu)return Nu;Pu=1;var e=fo(),t=Ac(),n=Y(),r=q();function i(i,a){return(r(i)?e:t)(i,n(a,3))}return Nu=i,Nu}var Iu,Lu;function Ru(){if(Lu)return Iu;Lu=1;var e=Object.prototype.hasOwnProperty;function t(t,n){return t!=null&&e.call(t,n)}return Iu=t,Iu}var zu,Bu;function Vu(){if(Bu)return zu;Bu=1;var e=Ru(),t=hu();function n(n,r){return n!=null&&t(n,r,e)}return zu=n,zu}var Hu,Uu;function Wu(){if(Uu)return Hu;Uu=1;var e=Ia(),t=rs(),n=Yi(),r=q(),i=J(),a=ra(),o=Da(),s=xa(),c=`[object Map]`,l=`[object Set]`,u=Object.prototype.hasOwnProperty;function d(d){if(d==null)return!0;if(i(d)&&(r(d)||typeof d==`string`||typeof d.splice==`function`||a(d)||s(d)||n(d)))return!d.length;var f=t(d);if(f==c||f==l)return!d.size;if(o(d))return!e(d).length;for(var p in d)if(u.call(d,p))return!1;return!0}return Hu=d,Hu}var Gu,Ku;function qu(){if(Ku)return Gu;Ku=1;function e(e){return e===void 0}return Gu=e,Gu}var Ju,Yu;function Xu(){if(Yu)return Ju;Yu=1;var e=hc(),t=J();function n(n,r){var i=-1,a=t(n)?Array(n.length):[];return e(n,function(e,t,n){a[++i]=r(e,t,n)}),a}return Ju=n,Ju}var Zu,Qu;function $u(){if(Qu)return Zu;Qu=1;var e=Gl(),t=Y(),n=Xu(),r=q();function i(i,a){return(r(i)?e:n)(i,t(a,3))}return Zu=i,Zu}var ed,td;function nd(){if(td)return ed;td=1;function e(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}return ed=e,ed}var rd,id;function ad(){if(id)return rd;id=1;function e(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}return rd=e,rd}var od,sd;function cd(){if(sd)return od;sd=1;var e=nd(),t=hc(),n=Y(),r=ad(),i=q();function a(a,o,s){var c=i(a)?e:r,l=arguments.length<3;return c(a,n(o,4),s,l,t)}return od=a,od}var ld,ud;function dd(){if(ud)return ld;ud=1;var e=er(),t=q(),n=K(),r=`[object String]`;function i(i){return typeof i==`string`||!t(i)&&n(i)&&e(i)==r}return ld=i,ld}var fd,pd;function md(){return pd?fd:(pd=1,fd=wu()(`length`),fd)}var hd,gd;function _d(){if(gd)return hd;gd=1;var e=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function t(t){return e.test(t)}return hd=t,hd}var vd,yd;function bd(){if(yd)return vd;yd=1;var e=`\\ud800-\\udfff`,t=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,n=`\\ufe0e\\ufe0f`,r=`[`+e+`]`,i=`[`+t+`]`,a=`\\ud83c[\\udffb-\\udfff]`,o=`(?:`+i+`|`+a+`)`,s=`[^`+e+`]`,c=`(?:\\ud83c[\\udde6-\\uddff]){2}`,l=`[\\ud800-\\udbff][\\udc00-\\udfff]`,u=`\\u200d`,d=o+`?`,f=`[`+n+`]?`,p=`(?:`+u+`(?:`+[s,c,l].join(`|`)+`)`+f+d+`)*`,m=f+d+p,h=`(?:`+[s+i+`?`,i,c,l,r].join(`|`)+`)`,g=RegExp(a+`(?=`+a+`)|`+h+m,`g`);function _(e){for(var t=g.lastIndex=0;g.test(e);)++t;return t}return vd=_,vd}var xd,Sd;function Cd(){if(Sd)return xd;Sd=1;var e=md(),t=_d(),n=bd();function r(r){return t(r)?n(r):e(r)}return xd=r,xd}var wd,Td;function Ed(){if(Td)return wd;Td=1;var e=Ia(),t=rs(),n=J(),r=dd(),i=Cd(),a=`[object Map]`,o=`[object Set]`;function s(s){if(s==null)return 0;if(n(s))return r(s)?i(s):s.length;var c=t(s);return c==a||c==o?s.size:e(s).length}return wd=s,wd}var Dd,Od;function kd(){if(Od)return Dd;Od=1;var e=Ei(),t=As(),n=lc(),r=Y(),i=Do(),a=q(),o=ra(),s=ar(),c=G(),l=xa();function u(u,d,f){var p=a(u),m=p||o(u)||l(u);if(d=r(d,4),f==null){var h=u&&u.constructor;f=m?p?new h:[]:c(u)&&s(h)?t(i(u)):{}}return(m?e:n)(u,function(e,t,n){return d(f,e,t,n)}),f}return Dd=u,Dd}var Ad,jd;function Md(){if(jd)return Ad;jd=1;var e=Gn(),t=Yi(),n=q(),r=e?e.isConcatSpreadable:void 0;function i(e){return n(e)||t(e)||!!(r&&e&&e[r])}return Ad=i,Ad}var Nd,Pd;function Fd(){if(Pd)return Nd;Pd=1;var e=wo(),t=Md();function n(r,i,a,o,s){var c=-1,l=r.length;for(a||=t,s||=[];++c<l;){var u=r[c];i>0&&a(u)?i>1?n(u,i-1,a,o,s):e(s,u):o||(s[s.length]=u)}return s}return Nd=n,Nd}var Id,Ld;function Rd(){if(Ld)return Id;Ld=1;function e(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}return Id=e,Id}var zd,Bd;function Vd(){if(Bd)return zd;Bd=1;var e=Rd(),t=Math.max;function n(n,r,i){return r=t(r===void 0?n.length-1:r,0),function(){for(var a=arguments,o=-1,s=t(a.length-r,0),c=Array(s);++o<s;)c[o]=a[r+o];o=-1;for(var l=Array(r+1);++o<r;)l[o]=a[o];return l[r]=i(c),e(n,this,l)}}return zd=n,zd}var Hd,Ud;function Wd(){if(Ud)return Hd;Ud=1;var e=ec(),t=ki(),n=vc();return Hd=t?function(n,r){return t(n,`toString`,{configurable:!0,enumerable:!1,value:e(r),writable:!0})}:n,Hd}var Gd,Kd;function qd(){if(Kd)return Gd;Kd=1;var e=800,t=16,n=Date.now;function r(r){var i=0,a=0;return function(){var o=n(),s=t-(o-a);if(a=o,s>0){if(++i>=e)return arguments[0]}else i=0;return r.apply(void 0,arguments)}}return Gd=r,Gd}var Jd,Yd;function Xd(){if(Yd)return Jd;Yd=1;var e=Wd();return Jd=qd()(e),Jd}var Zd,Qd;function $d(){if(Qd)return Zd;Qd=1;var e=vc(),t=Vd(),n=Xd();function r(r,i){return n(t(r,i,e),r+``)}return Zd=r,Zd}var ef,tf;function nf(){if(tf)return ef;tf=1;function e(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}return ef=e,ef}var rf,af;function of(){if(af)return rf;af=1;function e(e){return e!==e}return rf=e,rf}var sf,cf;function lf(){if(cf)return sf;cf=1;function e(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}return sf=e,sf}var uf,df;function ff(){if(df)return uf;df=1;var e=nf(),t=of(),n=lf();function r(r,i,a){return i===i?n(r,i,a):e(r,t,a)}return uf=r,uf}var pf,mf;function hf(){if(mf)return pf;mf=1;var e=ff();function t(t,n){return!!(t!=null&&t.length)&&e(t,n,0)>-1}return pf=t,pf}var gf,_f;function vf(){if(_f)return gf;_f=1;function e(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}return gf=e,gf}var yf,bf;function xf(){if(bf)return yf;bf=1;function e(){}return yf=e,yf}var Sf,Cf;function wf(){if(Cf)return Sf;Cf=1;var e=Zo(),t=xf(),n=el();return Sf=e&&1/n(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t,Sf}var Tf,Ef;function Df(){if(Ef)return Tf;Ef=1;var e=zc(),t=hf(),n=vf(),r=Gc(),i=wf(),a=el(),o=200;function s(s,c,l){var u=-1,d=t,f=s.length,p=!0,m=[],h=m;if(l)p=!1,d=n;else if(f>=o){var g=c?null:i(s);if(g)return a(g);p=!1,d=r,h=new e}else h=c?[]:m;outer:for(;++u<f;){var _=s[u],v=c?c(_):_;if(_=l||_!==0?_:0,p&&v===v){for(var y=h.length;y--;)if(h[y]===v)continue outer;c&&h.push(v),m.push(_)}else d(h,v,l)||(h!==m&&h.push(v),m.push(_))}return m}return Tf=s,Tf}var Of,kf;function Af(){if(kf)return Of;kf=1;var e=J(),t=K();function n(n){return t(n)&&e(n)}return Of=n,Of}var jf,Mf;function Nf(){if(Mf)return jf;Mf=1;var e=Fd(),t=$d(),n=Df(),r=Af();return jf=t(function(t){return n(e(t,1,r,!0))}),jf}var Pf,Ff;function If(){if(Ff)return Pf;Ff=1;var e=Gl();function t(t,n){return e(n,function(e){return t[e]})}return Pf=t,Pf}var Lf,Rf;function zf(){if(Rf)return Lf;Rf=1;var e=If(),t=Va();function n(n){return n==null?[]:e(n,t(n))}return Lf=n,Lf}var Bf,Vf;function X(){if(Vf)return Bf;Vf=1;var e;if(typeof en==`function`)try{e={clone:Zs(),constant:ec(),each:Dc(),filter:Fu(),has:Vu(),isArray:q(),isEmpty:Wu(),isFunction:ar(),isUndefined:qu(),keys:Va(),map:$u(),reduce:cd(),size:Ed(),transform:kd(),union:Nf(),values:zf()}}catch{}return e||=window._,Bf=e,Bf}var Hf,Uf;function Wf(){if(Uf)return Hf;Uf=1;var e=X();Hf=i;var t=`\0`,n=`\0`,r=``;function i(t){this._isDirected=!e.has(t,`directed`)||t.directed,this._isMultigraph=e.has(t,`multigraph`)?t.multigraph:!1,this._isCompound=e.has(t,`compound`)?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[n]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultNodeLabelFn=t,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return e.keys(this._nodes)},i.prototype.sources=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._in[n])})},i.prototype.sinks=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._out[n])})},i.prototype.setNodes=function(t,n){var r=arguments,i=this;return e.each(t,function(e){r.length>1?i.setNode(e,n):i.setNode(e)}),this},i.prototype.setNode=function(t,r){return e.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=n,this._children[t]={},this._children[n][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(t){return e.has(this._nodes,t)},i.prototype.removeNode=function(t){var n=this;if(e.has(this._nodes,t)){var r=function(e){n.removeEdge(n._edgeObjs[e])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],e.each(this.children(t),function(e){n.setParent(e)}),delete this._children[t]),e.each(e.keys(this._in[t]),r),delete this._in[t],delete this._preds[t],e.each(e.keys(this._out[t]),r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},i.prototype.setParent=function(t,r){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(e.isUndefined(r))r=n;else{r+=``;for(var i=r;!e.isUndefined(i);i=this.parent(i))if(i===t)throw Error(`Setting `+r+` as parent of `+t+` would create a cycle`);this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==n)return t}},i.prototype.children=function(t){if(e.isUndefined(t)&&(t=n),this._isCompound){var r=this._children[t];if(r)return e.keys(r)}else if(t===n)return this.nodes();else if(this.hasNode(t))return[]},i.prototype.predecessors=function(t){var n=this._preds[t];if(n)return e.keys(n)},i.prototype.successors=function(t){var n=this._sucs[t];if(n)return e.keys(n)},i.prototype.neighbors=function(t){var n=this.predecessors(t);if(n)return e.union(n,this.successors(t))},i.prototype.isLeaf=function(e){return(this.isDirected()?this.successors(e):this.neighbors(e)).length===0},i.prototype.filterNodes=function(t){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var r=this;e.each(this._nodes,function(e,r){t(r)&&n.setNode(r,e)}),e.each(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,r.edge(e))});var i={};function a(e){var t=r.parent(e);return t===void 0||n.hasNode(t)?(i[e]=t,t):t in i?i[t]:a(t)}return this._isCompound&&e.each(n.nodes(),function(e){n.setParent(e,a(e))}),n},i.prototype.setDefaultEdgeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultEdgeLabelFn=t,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return e.values(this._edgeObjs)},i.prototype.setPath=function(t,n){var r=this,i=arguments;return e.reduce(t,function(e,t){return i.length>1?r.setEdge(e,t,n):r.setEdge(e,t),t}),this},i.prototype.setEdge=function(){var t,n,r,i,o=!1,l=arguments[0];typeof l==`object`&&l&&`v`in l?(t=l.v,n=l.w,r=l.name,arguments.length===2&&(i=arguments[1],o=!0)):(t=l,n=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=``+t,n=``+n,e.isUndefined(r)||(r=``+r);var u=s(this._isDirected,t,n,r);if(e.has(this._edgeLabels,u))return o&&(this._edgeLabels[u]=i),this;if(!e.isUndefined(r)&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(t),this.setNode(n),this._edgeLabels[u]=o?i:this._defaultEdgeLabelFn(t,n,r);var d=c(this._isDirected,t,n,r);return t=d.v,n=d.w,Object.freeze(d),this._edgeObjs[u]=d,a(this._preds[n],t),a(this._sucs[t],n),this._in[n][u]=d,this._out[t][u]=d,this._edgeCount++,this},i.prototype.edge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(t,n,r){var i=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,t,n,r);return e.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],o(this._preds[t],e),o(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},i.prototype.inEdges=function(t,n){var r=this._in[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.v===n}):i}},i.prototype.outEdges=function(t,n){var r=this._out[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.w===n}):i}},i.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))};function a(e,t){e[t]?e[t]++:e[t]=1}function o(e,t){--e[t]||delete e[t]}function s(n,i,a,o){var s=``+i,c=``+a;if(!n&&s>c){var l=s;s=c,c=l}return s+r+c+r+(e.isUndefined(o)?t:o)}function c(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function l(e,t){return s(e,t.v,t.w,t.name)}return Hf}var Gf,Kf;function qf(){return Kf?Gf:(Kf=1,Gf=`2.1.8`,Gf)}var Jf,Yf;function Xf(){return Yf?Jf:(Yf=1,Jf={Graph:Wf(),version:qf()},Jf)}var Zf,Qf;function $f(){if(Qf)return Zf;Qf=1;var e=X(),t=Wf();Zf={write:n,read:a};function n(t){var n={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:r(t),edges:i(t)};return e.isUndefined(t.graph())||(n.value=e.clone(t.graph())),n}function r(t){return e.map(t.nodes(),function(n){var r=t.node(n),i=t.parent(n),a={v:n};return e.isUndefined(r)||(a.value=r),e.isUndefined(i)||(a.parent=i),a})}function i(t){return e.map(t.edges(),function(n){var r=t.edge(n),i={v:n.v,w:n.w};return e.isUndefined(n.name)||(i.name=n.name),e.isUndefined(r)||(i.value=r),i})}function a(n){var r=new t(n.options).setGraph(n.value);return e.each(n.nodes,function(e){r.setNode(e.v,e.value),e.parent&&r.setParent(e.v,e.parent)}),e.each(n.edges,function(e){r.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),r}return Zf}var ep,tp;function np(){if(tp)return ep;tp=1;var e=X();ep=t;function t(t){var n={},r=[],i;function a(r){e.has(n,r)||(n[r]=!0,i.push(r),e.each(t.successors(r),a),e.each(t.predecessors(r),a))}return e.each(t.nodes(),function(e){i=[],a(e),i.length&&r.push(i)}),r}return ep}var rp,ip;function ap(){if(ip)return rp;ip=1;var e=X();rp=t;function t(){this._arr=[],this._keyIndices={}}return t.prototype.size=function(){return this._arr.length},t.prototype.keys=function(){return this._arr.map(function(e){return e.key})},t.prototype.has=function(t){return e.has(this._keyIndices,t)},t.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority},t.prototype.min=function(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key},t.prototype.add=function(t,n){var r=this._keyIndices;if(t=String(t),!e.has(r,t)){var i=this._arr,a=i.length;return r[t]=a,i.push({key:t,priority:n}),this._decrease(a),!0}return!1},t.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},t.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error(`New priority is greater than current priority. Key: `+e+` Old: `+this._arr[n].priority+` New: `+t);this._arr[n].priority=t,this._decrease(n)},t.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))},t.prototype._decrease=function(e){for(var t=this._arr,n=t[e].priority,r;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r},t.prototype._swap=function(e,t){var n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t},rp}var op,sp;function cp(){if(sp)return op;sp=1;var e=X(),t=ap();op=r;var n=e.constant(1);function r(e,t,r,a){return i(e,String(t),r||n,a||function(t){return e.outEdges(t)})}function i(e,n,r,i){var a={},o=new t,s,c,l=function(e){var t=e.v===s?e.w:e.v,n=a[t],i=r(e),l=c.distance+i;if(i<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+i);l<n.distance&&(n.distance=l,n.predecessor=s,o.decrease(t,l))};for(e.nodes().forEach(function(e){var t=e===n?0:1/0;a[e]={distance:t},o.add(e,t)});o.size()>0&&(s=o.removeMin(),c=a[s],c.distance!==1/0);)i(s).forEach(l);return a}return op}var lp,up;function dp(){if(up)return lp;up=1;var e=cp(),t=X();lp=n;function n(n,r,i){return t.transform(n.nodes(),function(t,a){t[a]=e(n,a,r,i)},{})}return lp}var fp,pp;function mp(){if(pp)return fp;pp=1;var e=X();fp=t;function t(t){var n=0,r=[],i={},a=[];function o(s){var c=i[s]={onStack:!0,lowlink:n,index:n++};if(r.push(s),t.successors(s).forEach(function(t){e.has(i,t)?i[t].onStack&&(c.lowlink=Math.min(c.lowlink,i[t].index)):(o(t),c.lowlink=Math.min(c.lowlink,i[t].lowlink))}),c.lowlink===c.index){var l=[],u;do u=r.pop(),i[u].onStack=!1,l.push(u);while(s!==u);a.push(l)}}return t.nodes().forEach(function(t){e.has(i,t)||o(t)}),a}return fp}var hp,gp;function _p(){if(gp)return hp;gp=1;var e=X(),t=mp();hp=n;function n(n){return e.filter(t(n),function(e){return e.length>1||e.length===1&&n.hasEdge(e[0],e[0])})}return hp}var vp,yp;function bp(){if(yp)return vp;yp=1;var e=X();vp=n;var t=e.constant(1);function n(e,n,i){return r(e,n||t,i||function(t){return e.outEdges(t)})}function r(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:1/0})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s<o.distance&&(o.distance=s,o.predecessor=i.predecessor)})})}),r}return vp}var xp,Sp;function Cp(){if(Sp)return xp;Sp=1;var e=X();xp=t,t.CycleException=n;function t(t){var r={},i={},a=[];function o(s){if(e.has(i,s))throw new n;e.has(r,s)||(i[s]=!0,r[s]=!0,e.each(t.predecessors(s),o),delete i[s],a.push(s))}if(e.each(t.sinks(),o),e.size(r)!==t.nodeCount())throw new n;return a}function n(){}return n.prototype=Error(),xp}var wp,Tp;function Ep(){if(Tp)return wp;Tp=1;var e=Cp();wp=t;function t(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}return wp}var Dp,Op;function kp(){if(Op)return Dp;Op=1;var e=X();Dp=t;function t(t,r,i){e.isArray(r)||(r=[r]);var a=(t.isDirected()?t.successors:t.neighbors).bind(t),o=[],s={};return e.each(r,function(e){if(!t.hasNode(e))throw Error(`Graph does not have node: `+e);n(t,e,i===`post`,s,a,o)}),o}function n(t,r,i,a,o,s){e.has(a,r)||(a[r]=!0,i||s.push(r),e.each(o(r),function(e){n(t,e,i,a,o,s)}),i&&s.push(r))}return Dp}var Ap,jp;function Mp(){if(jp)return Ap;jp=1;var e=kp();Ap=t;function t(t,n){return e(t,n,`post`)}return Ap}var Np,Pp;function Fp(){if(Pp)return Np;Pp=1;var e=kp();Np=t;function t(t,n){return e(t,n,`pre`)}return Np}var Ip,Lp;function Rp(){if(Lp)return Ip;Lp=1;var e=X(),t=Wf(),n=ap();Ip=r;function r(r,i){var a=new t,o={},s=new n,c;function l(e){var t=e.v===c?e.w:e.v,n=s.priority(t);if(n!==void 0){var r=i(e);r<n&&(o[t]=c,s.decrease(t,r))}}if(r.nodeCount()===0)return a;e.each(r.nodes(),function(e){s.add(e,1/0),a.setNode(e)}),s.decrease(r.nodes()[0],0);for(var u=!1;s.size()>0;){if(c=s.removeMin(),e.has(o,c))a.setEdge(c,o[c]);else if(u)throw Error(`Input graph is not connected: `+r);else u=!0;r.nodeEdges(c).forEach(l)}return a}return Ip}var zp,Bp;function Vp(){return Bp?zp:(Bp=1,zp={components:np(),dijkstra:cp(),dijkstraAll:dp(),findCycles:_p(),floydWarshall:bp(),isAcyclic:Ep(),postorder:Mp(),preorder:Fp(),prim:Rp(),tarjan:mp(),topsort:Cp()},zp)}var Hp,Up;function Wp(){if(Up)return Hp;Up=1;var e=Xf();return Hp={Graph:e.Graph,json:$f(),alg:Vp(),version:e.version},Hp}var Gp,Kp;function Z(){if(Kp)return Gp;Kp=1;var e;if(typeof en==`function`)try{e=Wp()}catch{}return e||=window.graphlib,Gp=e,Gp}var qp,Jp;function Yp(){if(Jp)return qp;Jp=1;var e=Js(),t=1,n=4;function r(r){return e(r,t|n)}return qp=r,qp}var Xp,Zp;function Qp(){if(Zp)return Xp;Zp=1;var e=sn(),t=J(),n=oa(),r=G();function i(i,a,o){if(!r(o))return!1;var s=typeof a;return(s==`number`?t(o)&&n(a,o.length):s==`string`&&a in o)?e(o[a],i):!1}return Xp=i,Xp}var $p,em;function tm(){if(em)return $p;em=1;var e=$d(),t=sn(),n=Qp(),r=$a(),i=Object.prototype,a=i.hasOwnProperty;return $p=e(function(e,o){e=Object(e);var s=-1,c=o.length,l=c>2?o[2]:void 0;for(l&&n(o[0],o[1],l)&&(c=1);++s<c;)for(var u=o[s],d=r(u),f=-1,p=d.length;++f<p;){var m=d[f],h=e[m];(h===void 0||t(h,i[m])&&!a.call(e,m))&&(e[m]=u[m])}return e}),$p}var nm,rm;function im(){if(rm)return nm;rm=1;var e=Y(),t=J(),n=Va();function r(r){return function(i,a,o){var s=Object(i);if(!t(i)){var c=e(a,3);i=n(i),a=function(e){return c(s[e],e,s)}}var l=r(i,a,o);return l>-1?s[c?i[l]:l]:void 0}}return nm=r,nm}var am,om;function sm(){if(om)return am;om=1;var e=/\s/;function t(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}return am=t,am}var cm,lm;function um(){if(lm)return cm;lm=1;var e=sm(),t=/^\s+/;function n(n){return n&&n.slice(0,e(n)+1).replace(t,``)}return cm=n,cm}var dm,fm;function pm(){if(fm)return dm;fm=1;var e=um(),t=G(),n=Al(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt;function c(c){if(typeof c==`number`)return c;if(n(c))return r;if(t(c)){var l=typeof c.valueOf==`function`?c.valueOf():c;c=t(l)?l+``:l}if(typeof c!=`string`)return c===0?c:+c;c=e(c);var u=a.test(c);return u||o.test(c)?s(c.slice(2),u?2:8):i.test(c)?r:+c}return dm=c,dm}var mm,hm;function gm(){if(hm)return mm;hm=1;var e=pm(),t=1/0,n=17976931348623157e292;function r(r){return r?(r=e(r),r===t||r===-t?(r<0?-1:1)*n:r===r?r:0):r===0?r:0}return mm=r,mm}var _m,vm;function ym(){if(vm)return _m;vm=1;var e=gm();function t(t){var n=e(t),r=n%1;return n===n?r?n-r:n:0}return _m=t,_m}var bm,xm;function Sm(){if(xm)return bm;xm=1;var e=nf(),t=Y(),n=ym(),r=Math.max;function i(i,a,o){var s=i==null?0:i.length;if(!s)return-1;var c=o==null?0:n(o);return c<0&&(c=r(s+c,0)),e(i,t(a,3),c)}return bm=i,bm}var Cm,wm;function Tm(){return wm?Cm:(wm=1,Cm=im()(Sm()),Cm)}var Em,Dm;function Om(){if(Dm)return Em;Dm=1;var e=Fd();function t(t){return t!=null&&t.length?e(t,1):[]}return Em=t,Em}var km,Am;function jm(){if(Am)return km;Am=1;var e=oc(),t=xc(),n=$a();function r(r,i){return r==null?r:e(r,t(i),n)}return km=r,km}var Mm,Nm;function Pm(){if(Nm)return Mm;Nm=1;function e(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}return Mm=e,Mm}var Fm,Im;function Lm(){if(Im)return Fm;Im=1;var e=Mi(),t=lc(),n=Y();function r(r,i){var a={};return i=n(i,3),t(r,function(t,n,r){e(a,n,i(t,n,r))}),a}return Fm=r,Fm}var Rm,zm;function Bm(){if(zm)return Rm;zm=1;var e=Al();function t(t,n,r){for(var i=-1,a=t.length;++i<a;){var o=t[i],s=n(o);if(s!=null&&(c===void 0?s===s&&!e(s):r(s,c)))var c=s,l=o}return l}return Rm=t,Rm}var Vm,Hm;function Um(){if(Hm)return Vm;Hm=1;function e(e,t){return e>t}return Vm=e,Vm}var Wm,Gm;function Km(){if(Gm)return Wm;Gm=1;var e=Bm(),t=Um(),n=vc();function r(r){return r&&r.length?e(r,n,t):void 0}return Wm=r,Wm}var qm,Jm;function Ym(){if(Jm)return qm;Jm=1;var e=Mi(),t=sn();function n(n,r,i){(i!==void 0&&!t(n[r],i)||i===void 0&&!(r in n))&&e(n,r,i)}return qm=n,qm}var Xm,Zm;function Qm(){if(Zm)return Xm;Zm=1;var e=er(),t=Do(),n=K(),r=`[object Object]`,i=Function.prototype,a=Object.prototype,o=i.toString,s=a.hasOwnProperty,c=o.call(Object);function l(i){if(!n(i)||e(i)!=r)return!1;var a=t(i);if(a===null)return!0;var l=s.call(a,`constructor`)&&a.constructor;return typeof l==`function`&&l instanceof l&&o.call(l)==c}return Xm=l,Xm}var $m,eh;function th(){if(eh)return $m;eh=1;function e(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}return $m=e,$m}var nh,rh;function ih(){if(rh)return nh;rh=1;var e=Ri(),t=$a();function n(n){return e(n,t(n))}return nh=n,nh}var ah,oh;function sh(){if(oh)return ah;oh=1;var e=Ym(),t=ao(),n=ws(),r=co(),i=Ns(),a=Yi(),o=q(),s=Af(),c=ra(),l=ar(),u=G(),d=Qm(),f=xa(),p=th(),m=ih();function h(h,g,_,v,y,b,x){var S=p(h,_),C=p(g,_),w=x.get(C);if(w){e(h,_,w);return}var T=b?b(S,C,_+``,h,g,x):void 0,E=T===void 0;if(E){var D=o(C),O=!D&&c(C),k=!D&&!O&&f(C);T=C,D||O||k?o(S)?T=S:s(S)?T=r(S):O?(E=!1,T=t(C,!0)):k?(E=!1,T=n(C,!0)):T=[]:d(C)||a(C)?(T=S,a(S)?T=m(S):(!u(S)||l(S))&&(T=i(C))):E=!1}E&&(x.set(C,T),y(T,C,v,b,x),x.delete(C)),e(h,_,T)}return ah=h,ah}var ch,lh;function uh(){if(lh)return ch;lh=1;var e=Ci(),t=Ym(),n=oc(),r=sh(),i=G(),a=$a(),o=th();function s(c,l,u,d,f){c!==l&&n(l,function(n,a){if(f||=new e,i(n))r(c,l,a,u,s,d,f);else{var p=d?d(o(c,a),n,a+``,c,l,f):void 0;p===void 0&&(p=n),t(c,a,p)}},a)}return ch=s,ch}var dh,fh;function ph(){if(fh)return dh;fh=1;var e=$d(),t=Qp();function n(n){return e(function(e,r){var i=-1,a=r.length,o=a>1?r[a-1]:void 0,s=a>2?r[2]:void 0;for(o=n.length>3&&typeof o==`function`?(a--,o):void 0,s&&t(r[0],r[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++i<a;){var c=r[i];c&&n(e,c,i,o)}return e})}return dh=n,dh}var mh,hh;function gh(){if(hh)return mh;hh=1;var e=uh();return mh=ph()(function(t,n,r){e(t,n,r)}),mh}var _h,vh;function yh(){if(vh)return _h;vh=1;function e(e,t){return e<t}return _h=e,_h}var bh,xh;function Sh(){if(xh)return bh;xh=1;var e=Bm(),t=yh(),n=vc();function r(r){return r&&r.length?e(r,n,t):void 0}return bh=r,bh}var Ch,wh;function Th(){if(wh)return Ch;wh=1;var e=Bm(),t=Y(),n=yh();function r(r,i){return r&&r.length?e(r,t(i,2),n):void 0}return Ch=r,Ch}var Eh,Dh;function Oh(){if(Dh)return Eh;Dh=1;var e=W();return Eh=function(){return e.Date.now()},Eh}var kh,Ah;function jh(){if(Ah)return kh;Ah=1;var e=Fi(),t=eu(),n=oa(),r=G(),i=ru();function a(a,o,s,c){if(!r(a))return a;o=t(o,a);for(var l=-1,u=o.length,d=u-1,f=a;f!=null&&++l<u;){var p=i(o[l]),m=s;if(p===`__proto__`||p===`constructor`||p===`prototype`)return a;if(l!=d){var h=f[p];m=c?c(h,p,f):void 0,m===void 0&&(m=r(h)?h:n(o[l+1])?[]:{})}e(f,p,m),f=f[p]}return a}return kh=a,kh}var Mh,Nh;function Ph(){if(Nh)return Mh;Nh=1;var e=ou(),t=jh(),n=eu();function r(r,i,a){for(var o=-1,s=i.length,c={};++o<s;){var l=i[o],u=e(r,l);a(u,l)&&t(c,n(l,r),u)}return c}return Mh=r,Mh}var Fh,Ih;function Lh(){if(Ih)return Fh;Ih=1;var e=Ph(),t=vu();function n(n,r){return e(n,r,function(e,r){return t(n,r)})}return Fh=n,Fh}var Rh,zh;function Bh(){if(zh)return Rh;zh=1;var e=Om(),t=Vd(),n=Xd();function r(r){return n(t(r,void 0,e),r+``)}return Rh=r,Rh}var Vh,Hh;function Uh(){if(Hh)return Vh;Hh=1;var e=Lh();return Vh=Bh()(function(t,n){return t==null?{}:e(t,n)}),Vh}var Wh,Gh;function Kh(){if(Gh)return Wh;Gh=1;var e=Math.ceil,t=Math.max;function n(n,r,i,a){for(var o=-1,s=t(e((r-n)/(i||1)),0),c=Array(s);s--;)c[a?s:++o]=n,n+=i;return c}return Wh=n,Wh}var qh,Jh;function Yh(){if(Jh)return qh;Jh=1;var e=Kh(),t=Qp(),n=gm();function r(r){return function(i,a,o){return o&&typeof o!=`number`&&t(i,a,o)&&(a=o=void 0),i=n(i),a===void 0?(a=i,i=0):a=n(a),o=o===void 0?i<a?1:-1:n(o),e(i,a,o,r)}}return qh=r,qh}var Xh,Zh;function Qh(){return Zh?Xh:(Zh=1,Xh=Yh()(),Xh)}var $h,eg;function tg(){if(eg)return $h;eg=1;function e(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}return $h=e,$h}var ng,rg;function ig(){if(rg)return ng;rg=1;var e=Al();function t(t,n){if(t!==n){var r=t!==void 0,i=t===null,a=t===t,o=e(t),s=n!==void 0,c=n===null,l=n===n,u=e(n);if(!c&&!u&&!o&&t>n||o&&s&&l&&!c&&!u||i&&s&&l||!r&&l||!a)return 1;if(!i&&!o&&!u&&t<n||u&&r&&a&&!i&&!o||c&&r&&a||!s&&a||!l)return-1}return 0}return ng=t,ng}var ag,og;function sg(){if(og)return ag;og=1;var e=ig();function t(t,n,r){for(var i=-1,a=t.criteria,o=n.criteria,s=a.length,c=r.length;++i<s;){var l=e(a[i],o[i]);if(l)return i>=c?l:l*(r[i]==`desc`?-1:1)}return t.index-n.index}return ag=t,ag}var cg,lg;function ug(){if(lg)return cg;lg=1;var e=Gl(),t=ou(),n=Y(),r=Xu(),i=tg(),a=ha(),o=sg(),s=vc(),c=q();function l(l,u,d){u=u.length?e(u,function(e){return c(e)?function(n){return t(n,e.length===1?e[0]:e)}:e}):[s];var f=-1;return u=e(u,a(n)),i(r(l,function(t,n,r){return{criteria:e(u,function(e){return e(t)}),index:++f,value:t}}),function(e,t){return o(e,t,d)})}return cg=l,cg}var dg,fg;function pg(){if(fg)return dg;fg=1;var e=Fd(),t=ug(),n=$d(),r=Qp();return dg=n(function(n,i){if(n==null)return[];var a=i.length;return a>1&&r(n,i[0],i[1])?i=[]:a>2&&r(i[0],i[1],i[2])&&(i=[i[0]]),t(n,e(i,1),[])}),dg}var mg,hg;function gg(){if(hg)return mg;hg=1;var e=Zl(),t=0;function n(n){var r=++t;return e(n)+r}return mg=n,mg}var _g,vg;function yg(){if(vg)return _g;vg=1;function e(e,t,n){for(var r=-1,i=e.length,a=t.length,o={};++r<i;){var s=r<a?t[r]:void 0;n(o,e[r],s)}return o}return _g=e,_g}var bg,xg;function Sg(){if(xg)return bg;xg=1;var e=Fi(),t=yg();function n(n,r){return t(n||[],r||[],e)}return bg=n,bg}var Cg,wg;function Q(){if(wg)return Cg;wg=1;var e;if(typeof en==`function`)try{e={cloneDeep:Yp(),constant:ec(),defaults:tm(),each:Dc(),filter:Fu(),find:Tm(),flatten:Om(),forEach:wc(),forIn:jm(),has:Vu(),isUndefined:qu(),last:Pm(),map:$u(),mapValues:Lm(),max:Km(),merge:gh(),min:Sh(),minBy:Th(),now:Oh(),pick:Uh(),range:Qh(),reduce:cd(),sortBy:pg(),uniqueId:gg(),values:zf(),zipObject:Sg()}}catch{}return e||=window._,Cg=e,Cg}var Tg,Eg;function Dg(){if(Eg)return Tg;Eg=1,Tg=e;function e(){var e={};e._next=e._prev=e,this._sentinel=e}e.prototype.dequeue=function(){var e=this._sentinel,n=e._prev;if(n!==e)return t(n),n},e.prototype.enqueue=function(e){var n=this._sentinel;e._prev&&e._next&&t(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n},e.prototype.toString=function(){for(var e=[],t=this._sentinel,r=t._prev;r!==t;)e.push(JSON.stringify(r,n)),r=r._prev;return`[`+e.join(`, `)+`]`};function t(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function n(e,t){if(e!==`_next`&&e!==`_prev`)return t}return Tg}var Og,kg;function Ag(){if(kg)return Og;kg=1;var e=Q(),t=Z().Graph,n=Dg();Og=i;var r=e.constant(1);function i(t,n){if(t.nodeCount()<=1)return[];var i=s(t,n||r),o=a(i.graph,i.buckets,i.zeroIdx);return e.flatten(e.map(o,function(e){return t.outEdges(e.v,e.w)}),!0)}function a(e,t,n){for(var r=[],i=t[t.length-1],a=t[0],s;e.nodeCount();){for(;s=a.dequeue();)o(e,t,n,s);for(;s=i.dequeue();)o(e,t,n,s);if(e.nodeCount()){for(var c=t.length-2;c>0;--c)if(s=t[c].dequeue(),s){r=r.concat(o(e,t,n,s,!0));break}}}return r}function o(t,n,r,i,a){var o=a?[]:void 0;return e.forEach(t.inEdges(i.v),function(e){var i=t.edge(e),s=t.node(e.v);a&&o.push({v:e.v,w:e.w}),s.out-=i,c(n,r,s)}),e.forEach(t.outEdges(i.v),function(e){var i=t.edge(e),a=e.w,o=t.node(a);o.in-=i,c(n,r,o)}),t.removeNode(i.v),o}function s(r,i){var a=new t,o=0,s=0;e.forEach(r.nodes(),function(e){a.setNode(e,{v:e,in:0,out:0})}),e.forEach(r.edges(),function(e){var t=a.edge(e.v,e.w)||0,n=i(e),r=t+n;a.setEdge(e.v,e.w,r),s=Math.max(s,a.node(e.v).out+=n),o=Math.max(o,a.node(e.w).in+=n)});var l=e.range(s+o+3).map(function(){return new n}),u=o+1;return e.forEach(a.nodes(),function(e){c(l,u,a.node(e))}),{graph:a,buckets:l,zeroIdx:u}}function c(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}return Og}var jg,Mg;function Ng(){if(Mg)return jg;Mg=1;var e=Q(),t=Ag();jg={run:n,undo:i};function n(n){var i=n.graph().acyclicer===`greedy`?t(n,a(n)):r(n);e.forEach(i,function(t){var r=n.edge(t);n.removeEdge(t),r.forwardName=t.name,r.reversed=!0,n.setEdge(t.w,t.v,r,e.uniqueId(`rev`))});function a(e){return function(t){return e.edge(t).weight}}}function r(t){var n=[],r={},i={};function a(o){e.has(i,o)||(i[o]=!0,r[o]=!0,e.forEach(t.outEdges(o),function(t){e.has(r,t.w)?n.push(t):a(t.w)}),delete r[o])}return e.forEach(t.nodes(),a),n}function i(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}})}return jg}var Pg,Fg;function $(){if(Fg)return Pg;Fg=1;var e=Q(),t=Z().Graph;Pg={addDummyNode:n,simplify:r,asNonCompoundGraph:i,successorWeights:a,predecessorWeights:o,intersectRect:s,buildLayerMatrix:c,normalizeRanks:l,removeEmptyRanks:u,addBorderNode:d,maxRank:f,partition:p,time:m,notime:h};function n(t,n,r,i){var a;do a=e.uniqueId(i);while(t.hasNode(a));return r.dummy=n,t.setNode(a,r),a}function r(n){var r=new t().setGraph(n.graph());return e.forEach(n.nodes(),function(e){r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){var t=r.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);r.setEdge(e.v,e.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),r}function i(n){var r=new t({multigraph:n.isMultigraph()}).setGraph(n.graph());return e.forEach(n.nodes(),function(e){n.children(e).length||r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){r.setEdge(e,n.edge(e))}),r}function a(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.outEdges(n),function(e){r[e.w]=(r[e.w]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function o(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.inEdges(n),function(e){r[e.v]=(r[e.v]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function s(e,t){var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);var c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function c(t){var n=e.map(e.range(f(t)+1),function(){return[]});return e.forEach(t.nodes(),function(r){var i=t.node(r),a=i.rank;e.isUndefined(a)||(n[a][i.order]=r)}),n}function l(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank}));e.forEach(t.nodes(),function(r){var i=t.node(r);e.has(i,`rank`)&&(i.rank-=n)})}function u(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank})),r=[];e.forEach(t.nodes(),function(e){var i=t.node(e).rank-n;r[i]||(r[i]=[]),r[i].push(e)});var i=0,a=t.graph().nodeRankFactor;e.forEach(r,function(n,r){e.isUndefined(n)&&r%a!==0?--i:i&&e.forEach(n,function(e){t.node(e).rank+=i})})}function d(e,t,r,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=i),n(e,`border`,a,t)}function f(t){return e.max(e.map(t.nodes(),function(n){var r=t.node(n).rank;if(!e.isUndefined(r))return r}))}function p(t,n){var r={lhs:[],rhs:[]};return e.forEach(t,function(e){n(e)?r.lhs.push(e):r.rhs.push(e)}),r}function m(t,n){var r=e.now();try{return n()}finally{console.log(t+` time: `+(e.now()-r)+`ms`)}}function h(e,t){return t()}return Pg}var Ig,Lg;function Rg(){if(Lg)return Ig;Lg=1;var e=Q(),t=$();Ig={run:n,undo:i};function n(t){t.graph().dummyChains=[],e.forEach(t.edges(),function(e){r(t,e)})}function r(e,n){var r=n.v,i=e.node(r).rank,a=n.w,o=e.node(a).rank,s=n.name,c=e.edge(n),l=c.labelRank;if(o!==i+1){e.removeEdge(n);var u,d,f=0;for(++i;i<o;++f,++i)c.points=[],d={width:0,height:0,edgeLabel:c,edgeObj:n,rank:i},u=t.addDummyNode(e,`edge`,d,`_d`),i===l&&(d.width=c.width,d.height=c.height,d.dummy=`edge-label`,d.labelpos=c.labelpos),e.setEdge(r,u,{weight:c.weight},s),f===0&&e.graph().dummyChains.push(u),r=u;e.setEdge(r,a,{weight:c.weight},s)}}function i(t){e.forEach(t.graph().dummyChains,function(e){var n=t.node(e),r=n.edgeLabel,i;for(t.setEdge(n.edgeObj,r);n.dummy;)i=t.successors(e)[0],t.removeNode(e),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),e=i,n=t.node(e)})}return Ig}var zg,Bg;function Vg(){if(Bg)return zg;Bg=1;var e=Q();zg={longestPath:t,slack:n};function t(t){var n={};function r(i){var a=t.node(i);if(e.has(n,i))return a.rank;n[i]=!0;var o=e.min(e.map(t.outEdges(i),function(e){return r(e.w)-t.edge(e).minlen}));return(o===1/0||o==null)&&(o=0),a.rank=o}e.forEach(t.sources(),r)}function n(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}return zg}var Hg,Ug;function Wg(){if(Ug)return Hg;Ug=1;var e=Q(),t=Z().Graph,n=Vg().slack;Hg=r;function r(e){var r=new t({directed:!1}),s=e.nodes()[0],c=e.nodeCount();r.setNode(s,{});for(var l,u;i(r,e)<c;)l=a(r,e),u=r.hasNode(l.v)?n(e,l):-n(e,l),o(r,e,u);return r}function i(t,r){function i(a){e.forEach(r.nodeEdges(a),function(e){var o=e.v,s=a===o?e.w:o;!t.hasNode(s)&&!n(r,e)&&(t.setNode(s,{}),t.setEdge(a,s,{}),i(s))})}return e.forEach(t.nodes(),i),t.nodeCount()}function a(t,r){return e.minBy(r.edges(),function(e){if(t.hasNode(e.v)!==t.hasNode(e.w))return n(r,e)})}function o(t,n,r){e.forEach(t.nodes(),function(e){n.node(e).rank+=r})}return Hg}var Gg,Kg;function qg(){if(Kg)return Gg;Kg=1;var e=Q(),t=Wg(),n=Vg().slack,r=Vg().longestPath,i=Z().alg.preorder,a=Z().alg.postorder,o=$().simplify;Gg=s,s.initLowLimValues=d,s.initCutValues=c,s.calcCutValue=u,s.leaveEdge=p,s.enterEdge=m,s.exchangeEdges=h;function s(e){e=o(e),r(e);var n=t(e);d(n),c(n,e);for(var i,a;i=p(n);)a=m(n,e,i),h(n,e,i,a)}function c(t,n){var r=a(t,t.nodes());r=r.slice(0,r.length-1),e.forEach(r,function(e){l(t,n,e)})}function l(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=u(e,t,n)}function u(t,n,r){var i=t.node(r).parent,a=!0,o=n.edge(r,i),s=0;return o||=(a=!1,n.edge(i,r)),s=o.weight,e.forEach(n.nodeEdges(r),function(e){var o=e.v===r,c=o?e.w:e.v;if(c!==i){var l=o===a,u=n.edge(e).weight;if(s+=l?u:-u,_(t,r,c)){var d=t.edge(r,c).cutvalue;s+=l?-d:d}}}),s}function d(e,t){arguments.length<2&&(t=e.nodes()[0]),f(e,{},1,t)}function f(t,n,r,i,a){var o=r,s=t.node(i);return n[i]=!0,e.forEach(t.neighbors(i),function(a){e.has(n,a)||(r=f(t,n,r,a,i))}),s.low=o,s.lim=r++,a?s.parent=a:delete s.parent,r}function p(t){return e.find(t.edges(),function(e){return t.edge(e).cutvalue<0})}function m(t,r,i){var a=i.v,o=i.w;r.hasEdge(a,o)||(a=i.w,o=i.v);var s=t.node(a),c=t.node(o),l=s,u=!1;s.lim>c.lim&&(l=c,u=!0);var d=e.filter(r.edges(),function(e){return u===v(t,t.node(e.v),l)&&u!==v(t,t.node(e.w),l)});return e.minBy(d,function(e){return n(r,e)})}function h(e,t,n,r){var i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),d(e),c(e,t),g(e,t)}function g(t,n){var r=i(t,e.find(t.nodes(),function(e){return!n.node(e).parent}));r=r.slice(1),e.forEach(r,function(e){var r=t.node(e).parent,i=n.edge(e,r),a=!1;i||(i=n.edge(r,e),a=!0),n.node(e).rank=n.node(r).rank+(a?i.minlen:-i.minlen)})}function _(e,t,n){return e.hasEdge(t,n)}function v(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}return Gg}var Jg,Yg;function Xg(){if(Yg)return Jg;Yg=1;var e=Vg().longestPath,t=Wg(),n=qg();Jg=r;function r(e){switch(e.graph().ranker){case`network-simplex`:o(e);break;case`tight-tree`:a(e);break;case`longest-path`:i(e);break;default:o(e)}}var i=e;function a(n){e(n),t(n)}function o(e){n(e)}return Jg}var Zg,Qg;function $g(){if(Qg)return Zg;Qg=1;var e=Q();Zg=t;function t(t){var i=r(t);e.forEach(t.graph().dummyChains,function(e){for(var r=t.node(e),a=r.edgeObj,o=n(t,i,a.v,a.w),s=o.path,c=o.lca,l=0,u=s[l],d=!0;e!==a.w;){if(r=t.node(e),d){for(;(u=s[l])!==c&&t.node(u).maxRank<r.rank;)l++;u===c&&(d=!1)}if(!d){for(;l<s.length-1&&t.node(u=s[l+1]).minRank<=r.rank;)l++;u=s[l]}t.setParent(e,u),e=t.successors(e)[0]}})}function n(e,t,n,r){var i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c=n,l;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));for(l=c,c=r;(c=e.parent(c))!==l;)a.push(c);return{path:i.concat(a.reverse()),lca:l}}function r(t){var n={},r=0;function i(a){var o=r;e.forEach(t.children(a),i),n[a]={low:o,lim:r++}}return e.forEach(t.children(),i),n}return Zg}var e_,t_;function n_(){if(t_)return e_;t_=1;var e=Q(),t=$();e_={run:n,cleanup:o};function n(n){var o=t.addDummyNode(n,`root`,{},`_root`),s=i(n),c=e.max(e.values(s))-1,l=2*c+1;n.graph().nestingRoot=o,e.forEach(n.edges(),function(e){n.edge(e).minlen*=l});var u=a(n)+1;e.forEach(n.children(),function(e){r(n,o,l,u,c,s,e)}),n.graph().nodeRankFactor=l}function r(n,i,a,o,s,c,l){var u=n.children(l);if(!u.length){l!==i&&n.setEdge(i,l,{weight:0,minlen:a});return}var d=t.addBorderNode(n,`_bt`),f=t.addBorderNode(n,`_bb`),p=n.node(l);n.setParent(d,l),p.borderTop=d,n.setParent(f,l),p.borderBottom=f,e.forEach(u,function(e){r(n,i,a,o,s,c,e);var t=n.node(e),u=t.borderTop?t.borderTop:e,p=t.borderBottom?t.borderBottom:e,m=t.borderTop?o:2*o,h=u===p?s-c[l]+1:1;n.setEdge(d,u,{weight:m,minlen:h,nestingEdge:!0}),n.setEdge(p,f,{weight:m,minlen:h,nestingEdge:!0})}),n.parent(l)||n.setEdge(i,d,{weight:0,minlen:s+c[l]})}function i(t){var n={};function r(i,a){var o=t.children(i);o&&o.length&&e.forEach(o,function(e){r(e,a+1)}),n[i]=a}return e.forEach(t.children(),function(e){r(e,1)}),n}function a(t){return e.reduce(t.edges(),function(e,n){return e+t.edge(n).weight},0)}function o(t){var n=t.graph();t.removeNode(n.nestingRoot),delete n.nestingRoot,e.forEach(t.edges(),function(e){t.edge(e).nestingEdge&&t.removeEdge(e)})}return e_}var r_,i_;function a_(){if(i_)return r_;i_=1;var e=Q(),t=$();r_=n;function n(t){function n(i){var a=t.children(i),o=t.node(i);if(a.length&&e.forEach(a,n),e.has(o,`minRank`)){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s<c;++s)r(t,`borderLeft`,`_bl`,i,o,s),r(t,`borderRight`,`_br`,i,o,s)}}e.forEach(t.children(),n)}function r(e,n,r,i,a,o){var s={width:0,height:0,rank:o,borderType:n},c=a[n][o-1],l=t.addDummyNode(e,`border`,s,r);a[n][o]=l,e.setParent(l,i),c&&e.setEdge(c,l,{weight:1})}return r_}var o_,s_;function c_(){if(s_)return o_;s_=1;var e=Q();o_={adjust:t,undo:n};function t(e){var t=e.graph().rankdir.toLowerCase();(t===`lr`||t===`rl`)&&r(e)}function n(e){var t=e.graph().rankdir.toLowerCase();(t===`bt`||t===`rl`)&&a(e),(t===`lr`||t===`rl`)&&(s(e),r(e))}function r(t){e.forEach(t.nodes(),function(e){i(t.node(e))}),e.forEach(t.edges(),function(e){i(t.edge(e))})}function i(e){var t=e.width;e.width=e.height,e.height=t}function a(t){e.forEach(t.nodes(),function(e){o(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,o),e.has(r,`y`)&&o(r)})}function o(e){e.y=-e.y}function s(t){e.forEach(t.nodes(),function(e){c(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,c),e.has(r,`x`)&&c(r)})}function c(e){var t=e.x;e.x=e.y,e.y=t}return o_}var l_,u_;function d_(){if(u_)return l_;u_=1;var e=Q();l_=t;function t(t){var n={},r=e.filter(t.nodes(),function(e){return!t.children(e).length}),i=e.max(e.map(r,function(e){return t.node(e).rank})),a=e.map(e.range(i+1),function(){return[]});function o(r){e.has(n,r)||(n[r]=!0,a[t.node(r).rank].push(r),e.forEach(t.successors(r),o))}var s=e.sortBy(r,function(e){return t.node(e).rank});return e.forEach(s,o),a}return l_}var f_,p_;function m_(){if(p_)return f_;p_=1;var e=Q();f_=t;function t(e,t){for(var r=0,i=1;i<t.length;++i)r+=n(e,t[i-1],t[i]);return r}function n(t,n,r){for(var i=e.zipObject(r,e.map(r,function(e,t){return t})),a=e.flatten(e.map(n,function(n){return e.sortBy(e.map(t.outEdges(n),function(e){return{pos:i[e.w],weight:t.edge(e).weight}}),`pos`)}),!0),o=1;o<r.length;)o<<=1;var s=2*o-1;--o;var c=e.map(Array(s),function(){return 0}),l=0;return e.forEach(a.forEach(function(e){var t=e.pos+o;c[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=c[t+1]),t=t-1>>1,c[t]+=e.weight;l+=e.weight*n})),l}return f_}var h_,g_;function __(){if(g_)return h_;g_=1;var e=Q();h_=t;function t(t,n){return e.map(n,function(n){var r=t.inEdges(n);if(r.length){var i=e.reduce(r,function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:n,barycenter:i.sum/i.weight,weight:i.weight}}return{v:n}})}return h_}var v_,y_;function b_(){if(y_)return v_;y_=1;var e=Q();v_=t;function t(t,r){var i={};return e.forEach(t,function(t,n){var r=i[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:n};e.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)}),e.forEach(r.edges(),function(t){var n=i[t.v],r=i[t.w];!e.isUndefined(n)&&!e.isUndefined(r)&&(r.indegree++,n.out.push(i[t.w]))}),n(e.filter(i,function(e){return!e.indegree}))}function n(t){var n=[];function i(t){return function(n){n.merged||(e.isUndefined(n.barycenter)||e.isUndefined(t.barycenter)||n.barycenter>=t.barycenter)&&r(t,n)}}function a(e){return function(n){n.in.push(e),--n.indegree===0&&t.push(n)}}for(;t.length;){var o=t.pop();n.push(o),e.forEach(o.in.reverse(),i(o)),e.forEach(o.out,a(o))}return e.map(e.filter(n,function(e){return!e.merged}),function(t){return e.pick(t,[`vs`,`i`,`barycenter`,`weight`])})}function r(e,t){var n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}return v_}var x_,S_;function C_(){if(S_)return x_;S_=1;var e=Q(),t=$();x_=n;function n(n,a){var o=t.partition(n,function(t){return e.has(t,`barycenter`)}),s=o.lhs,c=e.sortBy(o.rhs,function(e){return-e.i}),l=[],u=0,d=0,f=0;s.sort(i(!!a)),f=r(l,c,f),e.forEach(s,function(e){f+=e.vs.length,l.push(e.vs),u+=e.barycenter*e.weight,d+=e.weight,f=r(l,c,f)});var p={vs:e.flatten(l,!0)};return d&&(p.barycenter=u/d,p.weight=d),p}function r(t,n,r){for(var i;n.length&&(i=e.last(n)).i<=r;)n.pop(),t.push(i.vs),r++;return r}function i(e){return function(t,n){return t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}}return x_}var w_,T_;function E_(){if(T_)return w_;T_=1;var e=Q(),t=__(),n=b_(),r=C_();w_=i;function i(s,c,l,u){var d=s.children(c),f=s.node(c),p=f?f.borderLeft:void 0,m=f?f.borderRight:void 0,h={};p&&(d=e.filter(d,function(e){return e!==p&&e!==m}));var g=t(s,d);e.forEach(g,function(t){if(s.children(t.v).length){var n=i(s,t.v,l,u);h[t.v]=n,e.has(n,`barycenter`)&&o(t,n)}});var _=n(g,l);a(_,h);var v=r(_,u);if(p&&(v.vs=e.flatten([p,v.vs,m],!0),s.predecessors(p).length)){var y=s.node(s.predecessors(p)[0]),b=s.node(s.predecessors(m)[0]);e.has(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+y.order+b.order)/(v.weight+2),v.weight+=2}return v}function a(t,n){e.forEach(t,function(t){t.vs=e.flatten(t.vs.map(function(e){return n[e]?n[e].vs:e}),!0)})}function o(t,n){e.isUndefined(t.barycenter)?(t.barycenter=n.barycenter,t.weight=n.weight):(t.barycenter=(t.barycenter*t.weight+n.barycenter*n.weight)/(t.weight+n.weight),t.weight+=n.weight)}return w_}var D_,O_;function k_(){if(O_)return D_;O_=1;var e=Q(),t=Z().Graph;D_=n;function n(n,i,a){var o=r(n),s=new t({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(e){return n.node(e)});return e.forEach(n.nodes(),function(t){var r=n.node(t),c=n.parent(t);(r.rank===i||r.minRank<=i&&i<=r.maxRank)&&(s.setNode(t),s.setParent(t,c||o),e.forEach(n[a](t),function(r){var i=r.v===t?r.w:r.v,a=s.edge(i,t),o=e.isUndefined(a)?0:a.weight;s.setEdge(i,t,{weight:n.edge(r).weight+o})}),e.has(r,`minRank`)&&s.setNode(t,{borderLeft:r.borderLeft[i],borderRight:r.borderRight[i]}))}),s}function r(t){for(var n;t.hasNode(n=e.uniqueId(`_root`)););return n}return D_}var A_,j_;function M_(){if(j_)return A_;j_=1;var e=Q();A_=t;function t(t,n,r){var i={},a;e.forEach(r,function(e){for(var r=t.parent(e),o,s;r;){if(o=t.parent(r),o?(s=i[o],i[o]=r):(s=a,a=r),s&&s!==r){n.setEdge(s,r);return}r=o}})}return A_}var N_,P_;function F_(){if(P_)return N_;P_=1;var e=Q(),t=d_(),n=m_(),r=E_(),i=k_(),a=M_(),o=Z().Graph,s=$();N_=c;function c(r){var i=s.maxRank(r),a=l(r,e.range(1,i+1),`inEdges`),o=l(r,e.range(i-1,-1,-1),`outEdges`),c=t(r);d(r,c);for(var f=1/0,p,m=0,h=0;h<4;++m,++h){u(m%2?a:o,m%4>=2),c=s.buildLayerMatrix(r);var g=n(r,c);g<f&&(h=0,p=e.cloneDeep(c),f=g)}d(r,p)}function l(t,n,r){return e.map(n,function(e){return i(t,e,r)})}function u(t,n){var i=new o;e.forEach(t,function(t){var o=t.graph().root,s=r(t,o,i,n);e.forEach(s.vs,function(e,n){t.node(e).order=n}),a(t,i,s.vs)})}function d(t,n){e.forEach(n,function(n){e.forEach(n,function(e,n){t.node(e).order=n})})}return N_}var I_,L_;function R_(){if(L_)return I_;L_=1;var e=Q(),t=Z().Graph,n=$();I_={positionX:m,findType1Conflicts:r,findType2Conflicts:i,addConflict:o,hasConflict:s,verticalAlignment:c,horizontalCompaction:l,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function r(t,n){var r={};function i(n,i){var s=0,c=0,l=n.length,u=e.last(i);return e.forEach(i,function(n,d){var f=a(t,n),p=f?t.node(f).order:l;(f||n===u)&&(e.forEach(i.slice(c,d+1),function(n){e.forEach(t.predecessors(n),function(e){var i=t.node(e),a=i.order;(a<s||p<a)&&!(i.dummy&&t.node(n).dummy)&&o(r,e,n)})}),c=d+1,s=p)}),i}return e.reduce(n,i),r}function i(t,n){var r={};function i(n,i,a,s,c){var l;e.forEach(e.range(i,a),function(i){l=n[i],t.node(l).dummy&&e.forEach(t.predecessors(l),function(e){var n=t.node(e);n.dummy&&(n.order<s||n.order>c)&&o(r,e,l)})})}function a(n,r){var a=-1,o,s=0;return e.forEach(r,function(e,c){if(t.node(e).dummy===`border`){var l=t.predecessors(e);l.length&&(o=t.node(l[0]).order,i(r,s,c,a,o),s=c,a=o)}i(r,s,r.length,o,n.length)}),r}return e.reduce(n,a),r}function a(t,n){if(t.node(n).dummy)return e.find(t.predecessors(n),function(e){return t.node(e).dummy})}function o(e,t,n){if(t>n){var r=t;t=n,n=r}var i=e[t];i||(e[t]=i={}),i[n]=!0}function s(t,n,r){if(n>r){var i=n;n=r,r=i}return e.has(t[n],r)}function c(t,n,r,i){var a={},o={},c={};return e.forEach(n,function(t){e.forEach(t,function(e,t){a[e]=e,o[e]=e,c[e]=t})}),e.forEach(n,function(t){var n=-1;e.forEach(t,function(t){var l=i(t);if(l.length){l=e.sortBy(l,function(e){return c[e]});for(var u=(l.length-1)/2,d=Math.floor(u),f=Math.ceil(u);d<=f;++d){var p=l[d];o[t]===t&&n<c[p]&&!s(r,t,p)&&(o[p]=t,o[t]=a[t]=a[p],n=c[p])}}})}),{root:a,align:o}}function l(t,n,r,i,a){var o={},s=u(t,n,r,a),c=a?`borderLeft`:`borderRight`;function l(e,t){for(var n=s.nodes(),r=n.pop(),i={};r;)i[r]?e(r):(i[r]=!0,n.push(r),n=n.concat(t(r))),r=n.pop()}function d(e){o[e]=s.inEdges(e).reduce(function(e,t){return Math.max(e,o[t.v]+s.edge(t))},0)}function f(e){var n=s.outEdges(e).reduce(function(e,t){return Math.min(e,o[t.w]-s.edge(t))},1/0),r=t.node(e);n!==1/0&&r.borderType!==c&&(o[e]=Math.max(o[e],n))}return l(d,s.predecessors.bind(s)),l(f,s.successors.bind(s)),e.forEach(i,function(e){o[e]=o[r[e]]}),o}function u(n,r,i,a){var o=new t,s=n.graph(),c=h(s.nodesep,s.edgesep,a);return e.forEach(r,function(t){var r;e.forEach(t,function(e){var t=i[e];if(o.setNode(t),r){var a=i[r],s=o.edge(a,t);o.setEdge(a,t,Math.max(c(n,e,r),s||0))}r=e})}),o}function d(t,n){return e.minBy(e.values(n),function(n){var r=-1/0,i=1/0;return e.forIn(n,function(e,n){var a=g(t,n)/2;r=Math.max(e+a,r),i=Math.min(e-a,i)}),r-i})}function f(t,n){var r=e.values(n),i=e.min(r),a=e.max(r);e.forEach([`u`,`d`],function(r){e.forEach([`l`,`r`],function(o){var s=r+o,c=t[s],l;if(c!==n){var u=e.values(c);l=o===`l`?i-e.min(u):a-e.max(u),l&&(t[s]=e.mapValues(c,function(e){return e+l}))}})})}function p(t,n){return e.mapValues(t.ul,function(r,i){if(n)return t[n.toLowerCase()][i];var a=e.sortBy(e.map(t,i));return(a[1]+a[2])/2})}function m(t){var a=n.buildLayerMatrix(t),o=e.merge(r(t,a),i(t,a)),s={},u;return e.forEach([`u`,`d`],function(n){u=n===`u`?a:e.values(a).reverse(),e.forEach([`l`,`r`],function(r){r===`r`&&(u=e.map(u,function(t){return e.values(t).reverse()}));var i=(n===`u`?t.predecessors:t.successors).bind(t),a=c(t,u,o,i),d=l(t,u,a.root,a.align,r===`r`);r===`r`&&(d=e.mapValues(d,function(e){return-e})),s[n+r]=d})}),f(s,d(t,s)),p(s,t.graph().align)}function h(t,n,r){return function(i,a,o){var s=i.node(a),c=i.node(o),l=0,u;if(l+=s.width/2,e.has(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:u=-s.width/2;break;case`r`:u=s.width/2}if(u&&(l+=r?u:-u),u=0,l+=(s.dummy?n:t)/2,l+=(c.dummy?n:t)/2,l+=c.width/2,e.has(c,`labelpos`))switch(c.labelpos.toLowerCase()){case`l`:u=c.width/2;break;case`r`:u=-c.width/2}return u&&(l+=r?u:-u),u=0,l}}function g(e,t){return e.node(t).width}return I_}var z_,B_;function V_(){if(B_)return z_;B_=1;var e=Q(),t=$(),n=R_().positionX;z_=r;function r(r){r=t.asNonCompoundGraph(r),i(r),e.forEach(n(r),function(e,t){r.node(t).x=e})}function i(n){var r=t.buildLayerMatrix(n),i=n.graph().ranksep,a=0;e.forEach(r,function(t){var r=e.max(e.map(t,function(e){return n.node(e).height}));e.forEach(t,function(e){n.node(e).y=a+r/2}),a+=r+i})}return z_}var H_,U_;function W_(){if(U_)return H_;U_=1;var e=Q(),t=Ng(),n=Rg(),r=Xg(),i=$().normalizeRanks,a=$g(),o=$().removeEmptyRanks,s=n_(),c=a_(),l=c_(),u=F_(),d=V_(),f=$(),p=Z().Graph;H_=m;function m(e,t){var n=t&&t.debugTiming?f.time:f.notime;n(`layout`,function(){var t=n(` buildLayoutGraph`,function(){return T(e)});n(` runLayout`,function(){h(t,n)}),n(` updateInputGraph`,function(){g(e,t)})})}function h(e,p){p(` makeSpaceForEdgeLabels`,function(){E(e)}),p(` removeSelfEdges`,function(){P(e)}),p(` acyclic`,function(){t.run(e)}),p(` nestingGraph.run`,function(){s.run(e)}),p(` rank`,function(){r(f.asNonCompoundGraph(e))}),p(` injectEdgeLabelProxies`,function(){D(e)}),p(` removeEmptyRanks`,function(){o(e)}),p(` nestingGraph.cleanup`,function(){s.cleanup(e)}),p(` normalizeRanks`,function(){i(e)}),p(` assignRankMinMax`,function(){O(e)}),p(` removeEdgeLabelProxies`,function(){k(e)}),p(` normalize.run`,function(){n.run(e)}),p(` parentDummyChains`,function(){a(e)}),p(` addBorderSegments`,function(){c(e)}),p(` order`,function(){u(e)}),p(` insertSelfEdges`,function(){F(e)}),p(` adjustCoordinateSystem`,function(){l.adjust(e)}),p(` position`,function(){d(e)}),p(` positionSelfEdges`,function(){I(e)}),p(` removeBorderNodes`,function(){N(e)}),p(` normalize.undo`,function(){n.undo(e)}),p(` fixupEdgeLabelCoords`,function(){j(e)}),p(` undoCoordinateSystem`,function(){l.undo(e)}),p(` translateGraph`,function(){A(e)}),p(` assignNodeIntersects`,function(){ee(e)}),p(` reversePoints`,function(){M(e)}),p(` acyclic.undo`,function(){t.undo(e)})}function g(t,n){e.forEach(t.nodes(),function(e){var r=t.node(e),i=n.node(e);r&&(r.x=i.x,r.y=i.y,n.children(e).length&&(r.width=i.width,r.height=i.height))}),e.forEach(t.edges(),function(r){var i=t.edge(r),a=n.edge(r);i.points=a.points,e.has(a,`x`)&&(i.x=a.x,i.y=a.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height}var _=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],v={ranksep:50,edgesep:20,nodesep:50,rankdir:`tb`},y=[`acyclicer`,`ranker`,`rankdir`,`align`],b=[`width`,`height`],x={width:0,height:0},S=[`minlen`,`weight`,`width`,`height`,`labeloffset`],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},w=[`labelpos`];function T(t){var n=new p({multigraph:!0,compound:!0}),r=L(t.graph());return n.setGraph(e.merge({},v,te(r,_),e.pick(r,y))),e.forEach(t.nodes(),function(r){var i=L(t.node(r));n.setNode(r,e.defaults(te(i,b),x)),n.setParent(r,t.parent(r))}),e.forEach(t.edges(),function(r){var i=L(t.edge(r));n.setEdge(r,e.merge({},C,te(i,S),e.pick(i,w)))}),n}function E(t){var n=t.graph();n.ranksep/=2,e.forEach(t.edges(),function(e){var r=t.edge(e);r.minlen*=2,r.labelpos.toLowerCase()!==`c`&&(n.rankdir===`TB`||n.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function D(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e};f.addDummyNode(t,`edge-proxy`,i,`_ep`)}})}function O(t){var n=0;e.forEach(t.nodes(),function(r){var i=t.node(r);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,n=e.max(n,i.maxRank))}),t.graph().maxRank=n}function k(t){e.forEach(t.nodes(),function(e){var n=t.node(e);n.dummy===`edge-proxy`&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}function A(t){var n=1/0,r=0,i=1/0,a=0,o=t.graph(),s=o.marginx||0,c=o.marginy||0;function l(e){var t=e.x,o=e.y,s=e.width,c=e.height;n=Math.min(n,t-s/2),r=Math.max(r,t+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}e.forEach(t.nodes(),function(e){l(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.has(r,`x`)&&l(r)}),n-=s,i-=c,e.forEach(t.nodes(),function(e){var r=t.node(e);r.x-=n,r.y-=i}),e.forEach(t.edges(),function(r){var a=t.edge(r);e.forEach(a.points,function(e){e.x-=n,e.y-=i}),e.has(a,`x`)&&(a.x-=n),e.has(a,`y`)&&(a.y-=i)}),o.width=r-n+s,o.height=a-i+c}function ee(t){e.forEach(t.edges(),function(e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(f.intersectRect(r,a)),n.points.push(f.intersectRect(i,o))})}function j(t){e.forEach(t.edges(),function(n){var r=t.edge(n);if(e.has(r,`x`))switch((r.labelpos===`l`||r.labelpos===`r`)&&(r.width-=r.labeloffset),r.labelpos){case`l`:r.x-=r.width/2+r.labeloffset;break;case`r`:r.x+=r.width/2+r.labeloffset}})}function M(t){e.forEach(t.edges(),function(e){var n=t.edge(e);n.reversed&&n.points.reverse()})}function N(t){e.forEach(t.nodes(),function(n){if(t.children(n).length){var r=t.node(n),i=t.node(r.borderTop),a=t.node(r.borderBottom),o=t.node(e.last(r.borderLeft)),s=t.node(e.last(r.borderRight));r.width=Math.abs(s.x-o.x),r.height=Math.abs(a.y-i.y),r.x=o.x+r.width/2,r.y=i.y+r.height/2}}),e.forEach(t.nodes(),function(e){t.node(e).dummy===`border`&&t.removeNode(e)})}function P(t){e.forEach(t.edges(),function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||=[],n.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function F(t){var n=f.buildLayerMatrix(t);e.forEach(n,function(n){var r=0;e.forEach(n,function(n,i){var a=t.node(n);a.order=i+r,e.forEach(a.selfEdges,function(e){f.addDummyNode(t,`selfedge`,{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++r,e:e.e,label:e.label},`_se`)}),delete a.selfEdges})})}function I(t){e.forEach(t.nodes(),function(e){var n=t.node(e);if(n.dummy===`selfedge`){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}})}function te(t,n){return e.mapValues(e.pick(t,n),Number)}function L(t){var n={};return e.forEach(t,function(e,t){n[t.toLowerCase()]=e}),n}return H_}var G_,K_;function q_(){if(K_)return G_;K_=1;var e=Q(),t=$(),n=Z().Graph;G_={debugOrdering:r};function r(r){var i=t.buildLayerMatrix(r),a=new n({compound:!0,multigraph:!0}).setGraph({});return e.forEach(r.nodes(),function(e){a.setNode(e,{label:e}),a.setParent(e,`layer`+r.node(e).rank)}),e.forEach(r.edges(),function(e){a.setEdge(e.v,e.w,{},e.name)}),e.forEach(i,function(t,n){var r=`layer`+n;a.setNode(r,{rank:`same`}),e.reduce(t,function(e,t){return a.setEdge(e,t,{style:`invis`}),t})}),a}return G_}var J_,Y_;function X_(){return Y_?J_:(Y_=1,J_=`0.8.5`,J_)}var Z_,Q_;function $_(){return Q_?Z_:(Q_=1,Z_={graphlib:Z(),layout:W_(),debug:q_(),util:{time:$().time,notime:$().notime},version:X_()},Z_)}var ev=$_(),tv=$t(ev),nv=function(e){return Xt(e,`Boolean`)};function rv(e,t){if(e){var n;if(Kt(e))for(var r=0,i=e.length;r<i&&(n=t(e[r],r),n!==!1);r++);else if(qt(e)){for(var a in e)if(e.hasOwnProperty(a)&&(n=t(e[a],a),n===!1))break}}}var iv=Object.prototype.hasOwnProperty,av=(function(e,t){if(e===null||!Zt(e))return{};var n={};return rv(t,function(t){iv.call(e,t)&&(n[t]=e[t])}),n}),ov=class extends Gt{constructor(){super(...arguments),this.id=`dagre`,this.isCompoundGraph=null,this.config={graphAttributes:[`rankdir`,`align`,`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`,`acyclicer`,`ranker`],nodeAttributes:[`width`,`height`],edgeAttributes:[`minlen`,`weight`,`width`,`height`,`labelpos`,`labeloffset`]}}getDefaultOptions(){return{directed:!0,multigraph:!0,rankdir:`TB`,align:void 0,nodesep:50,edgesep:10,ranksep:50,marginx:0,marginy:0,acyclicer:void 0,ranker:`network-simplex`,nodeSize:[0,0],edgeMinLen:1,edgeWeight:1,edgeLabelSize:[0,0],edgeLabelPos:`r`,edgeLabelOffset:10}}layout(){return Pe(this,void 0,void 0,function*(){let e=new ev.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});e.setGraph(av(this.options,this.config.graphAttributes)),e.setDefaultEdgeLabel(()=>({}));let t=ct(this.options.nodeSize,0);this.model.forEachNode(n=>{let r=n._original,[i,a]=nt(t(r)),o={width:i,height:a};if(e.setNode(String(n.id),o),this.isCompound()){if(U(n.parentId))return;e.setParent(String(n.id),String(n.parentId))}});let{edgeLabelSize:n,edgeLabelOffset:r,edgeLabelPos:i,edgeMinLen:a,edgeWeight:o}=this.options,s=ct(n,0,`edge`),c=st(r,10,`edge`),l=typeof i==`string`?()=>i:ot(i,[`edge`]),u=st(a,1,`edge`),d=st(o,1,`edge`);this.model.forEachEdge(t=>{let n=t._original,[r,i]=nt(s(n)),a={width:r,height:i,labelpos:l(n),labeloffset:c(n),minlen:u(n),weight:d(n)};e.setEdge(String(t.source),String(t.target),a,String(t.id))}),tv.layout(e),this.model.forEachNode(t=>{let n=e.node(String(t.id));n&&(t.x=n.x,t.y=n.y,t.size=[n.width,n.height])}),this.model.forEachEdge(t=>{let n=e.edge(String(t.source),String(t.target),String(t.id));if(!n)return;let{width:r,height:i,weight:a,minlen:o,labelpos:s,labeloffset:c,points:l}=n;t.labelSize=[r,i],t.weight=a,t.minLen=o,t.labelPos=s,t.labelOffset=c,t.points=l.map(lt)})})}isCompound(){return this.isCompoundGraph===null?nv(this.options.compound)?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(e=>!U(e.parentId)),this.isCompoundGraph):this.isCompoundGraph}},sv=26,cv=72,lv=24,uv=28,dv=16,fv=8,pv=20,mv=24,hv=12,gv=22,_v=52,vv=24,yv=3,bv=(e,t,n)=>{let r=(e,t)=>{let n=Array.from(new Set(e)).sort((e,t)=>e-t),r=[];for(let e of n)(r.length===0||e-r[r.length-1]>t)&&r.push(e);return r},i=r(e.map(e=>t.get(e.id)),sv),a=r(e.map(e=>n.get(e.id)),cv),o=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n},s=new Map,c=new Map;for(let n of e)s.set(n.id,o(i,t.get(n.id)));for(;;){for(let t of e)c.set(t.id,o(a,n.get(t.id)));let t=new Map,r;for(let i of e){let e=`${s.get(i.id)}:${c.get(i.id)}`,o=t.get(e);if(o===void 0){t.set(e,i);continue}let l=a[c.get(i.id)];r=Math.abs(n.get(i.id)-l)>Math.abs(n.get(o.id)-l)?n.get(i.id):n.get(o.id);break}if(r===void 0)break;a.push(r),a.sort((e,t)=>e-t)}return{col:s,row:c,ncols:i.length,nrows:a.length}},xv=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)},Sv=(e,t,n,r)=>{let i=new Set;for(let t of e)i.add(`${n.get(t.id)}:${r.get(t.id)}`);let a=new Map;for(let e of t)e.source!==e.target&&(xv(a,e.source,e.target),xv(a,e.target,e.source));for(let t of e){let e=a.get(t.id);if(e===void 0)continue;let o=e.map(e=>r.get(e)).sort((e,t)=>e-t),s=o[Math.floor((o.length-1)/2)],c=r.get(t.id),l=Math.abs(s-c);if(l===0)continue;let u=Math.sign(s-c),d;if(l===1){if(!e.some(e=>r.get(e)===s&&Math.abs(n.get(e)-n.get(t.id))===1))continue;d=s}else d=c+u*Math.ceil(l/2);for(let e=d;e!==c;e-=u)if(!i.has(`${n.get(t.id)}:${e}`)){i.delete(`${n.get(t.id)}:${c}`),i.add(`${n.get(t.id)}:${e}`),r.set(t.id,e);break}}},Cv=(e,t,n,r)=>{let i=new Set;for(let t of e)i.add(`${n.get(t.id)}:${r.get(t.id)}`);let a=new Set;for(let e of t)a.add(e.source),a.add(e.target);let o=e.filter(e=>!a.has(e.id)).sort((e,t)=>r.get(e.id)-r.get(t.id));for(let e of o){let t=n.get(e.id);for(let n=0;n<r.get(e.id);n++)if(!i.has(`${t}:${n}`)){i.delete(`${t}:${r.get(e.id)}`),i.add(`${t}:${n}`),r.set(e.id,n);break}}let s=new Map;for(let t of e)xv(s,r.get(t.id),t);let c=Math.max(...s.keys()),l=new Map,u=-1,d=new Set;for(let e=0;e<=c;e++){let t=s.get(e)??[];(u<0||t.some(e=>d.has(n.get(e.id))))&&(u++,d=new Set);for(let e of t)d.add(n.get(e.id));l.set(e,u)}for(let t of e)r.set(t.id,l.get(r.get(t.id)));return u+1},wv=(e,t,n,r,i,a)=>{let o=Array.from(e).filter(([,e])=>e===`in`).map(([e])=>e),s=Array.from(e).filter(([,e])=>e===`out`).map(([e])=>e);if(o.length>0){for(let e of n.keys())n.set(e,n.get(e)+1);i++}s.length>0&&i++;let c=(e,i)=>{let o=new Map;for(let n of e){let e=t.find(e=>e.source===n||e.target===n);o.set(n,e.source===n?e.target:e.source)}let s=e=>r.get(o.get(e));e.sort((e,t)=>s(e)-s(t));let c=[];for(let t of e){let e=s(t),o=e=>c.some(t=>r.get(t)===e),l;for(let t=0;l===void 0&&t<a;t++)e+t<a&&!o(e+t)?l=e+t:e-t>=0&&!o(e-t)&&(l=e-t);if(l===void 0){for(let[t,n]of r)n>e&&r.set(t,n+1);a++,l=e+1}n.set(t,i),r.set(t,l),c.push(t)}};return c(o,0),c(s,i-1),{ncols:i,nrows:a}},Tv=e=>e.gate===`t`?[e.chans[0]]:e.gate===`s`?[e.chans[1]]:e.chans,Ev=(e,t,n,r,i)=>{let a=(e,t)=>({mirror:e===`r`,hairpin:e===t}),o=e.map((e,o)=>{let s=t.get(e.source);if(e.source===e.target)return{chans:[s],guts:[],flags:[a(`l`,`l`)]};let c=t.get(e.target),l=n.get(e.source),u=n.get(e.target),d=r[o].s===`e`?s:s-1,f=r[o].t===`w`?c-1:c,p=r[o].s===`e`?`l`:`r`,m=r[o].t===`w`?`r`:`l`;if(d===f)return{chans:[d],guts:[],flags:[a(p,m)]};let h=f>d?`r`:`l`,g=i.has(e.target)?`t`:i.has(e.source)?`s`:void 0;return{chans:[d,f],guts:[u>l?u-1:u],flags:[a(p,h),a(h===`r`?`l`:`r`,m)],gate:g}}),s=new Map,c=new Map,l=new Map,u=new Map,d=(e,t)=>l.set(e,Math.max(l.get(e)??0,t));o.forEach((t,n)=>{let r=Tv(t);for(let e of r)s.set(e,(s.get(e)??0)+1);for(let e of t.guts)c.set(e,(c.get(e)??0)+1);let{name:i,arity:a,source:o,target:l}=e[n];o!==l&&(i!==void 0&&t.chans.length===1?d(t.chans[0],y(i,16)+16):i!==void 0&&t.guts.length>0&&u.set(t.guts[0],(u.get(t.guts[0])??0)+1),a!==void 0&&d(r[r.length-1],24+y(a,16)+fv))});let f=new Map,p=new Map;for(let t of e.filter(e=>e.source===e.target)){let e=(f.get(t.source)??0)+1;f.set(t.source,e);let r=n.get(t.source)-1;p.set(r,Math.max(p.get(r)??0,e))}return{plans:o,chanCnt:s,gutCnt:c,chanLbl:l,gutLbl:u,gutLoop:p}},Dv=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{let p=Array.from({length:a},()=>0),m=Array.from({length:o},()=>0);for(let a of e)p[t.get(a.id)]=Math.max(p[t.get(a.id)],r.get(a.id)),m[n.get(a.id)]=Math.max(m[n.get(a.id)],i.get(a.id));let h=Array.from({length:a},(e,t)=>{let n=s.get(t)??0;return Math.min(f[`graph-channel-width-max`],Math.max(f[`graph-channel-width-min`],n===0?lv:uv+(n-1)*f[`size-edge-track-gap`],l.get(t)??0))}),g=Array.from({length:o},(e,t)=>{let n=c.get(t)??0,r=u.get(t)??0,i=d.get(t)??0;return Math.min(f[`graph-gutter-height-max`],Math.max(f[`graph-gutter-height-min`],n===0?pv:mv+(n-1)*f[`size-edge-track-gap`],r>0?mv+r*gv:0,i>0?_v+(i-1)*f[`size-edge-track-gap`]+hv:0))}),_=[],v=[],y=f[`size-canvas-margin`];for(let e=0;e<p.length;e++)_.push(y+p[e]/2),y+=p[e]+h[e];let b=f[`size-canvas-margin`];for(let e=0;e<m.length;e++)v.push(b+m[e]/2),b+=m[e]+g[e];return{colWidth:p,rowHeight:m,chanW:h,gutH:g,colCX:_,rowCY:v}},Ov=(e,t,n,r,i)=>{let{colWidth:a,rowHeight:o,chanW:s,gutH:c,colCX:l,rowCY:u}=r,d=e=>u[e]+o[e]/2+c[e]/2,f=new Map;e.forEach((e,r)=>{let{chans:i,guts:a,flags:o,gate:s}=t[r],c=n.get(`${r}:s`),l=n.get(`${r}:t`);if(e.source===e.target)xv(f,i[0],{edge:r,posIn:c.y,posOut:l.y-_v,...o[0]});else if(i.length===1)xv(f,i[0],{edge:r,posIn:c.y,posOut:l.y,...o[0]});else{let e=d(a[0]);s!==`s`&&xv(f,i[0],{edge:r,posIn:c.y,posOut:e,...o[0]}),s!==`t`&&xv(f,i[1],{edge:r,posIn:e,posOut:l.y,...o[1]})}});let p=new Map;for(let[e,t]of f)for(let[n,r]of se(t,s[e],dv,i[`size-edge-track-gap`]))p.set(`${e}:${n}`,r);let m=(e,t)=>l[e]+a[e]/2+s[e]/2+p.get(`${e}:${t}`),h=new Map;e.forEach((e,r)=>{let{chans:i,guts:a,gate:o}=t[r];if(a.length===0)return;let s=n.get(`${r}:s`),c=n.get(`${r}:t`);xv(h,a[0],{edge:r,posIn:o===`s`?s.x:m(i[0],r),posOut:o===`t`?c.x:m(i[1],r),mirror:s.y>d(a[0])})});let g=new Map;for(let[e,t]of h)for(let[n,r]of se(t,c[e],hv,i[`size-edge-track-gap`]))g.set(`${e}:${n}`,r);return{chanX:m,gutY:(e,t)=>d(e)+g.get(`${e}:${t}`)}},kv=(e,t,n,r,i,a,o)=>{let s=new Map;return e.forEach((e,n)=>{e.source===e.target&&s.set(e.source,Math.min(s.get(e.source)??1/0,a(t[n].chans[0],n)))}),e.map((e,c)=>{let l=n.get(`${c}:s`),u=n.get(`${c}:t`),{chans:d,guts:f,flags:p,gate:m}=t[c],h;if(e.source===e.target){let t=a(d[0],c),n=i(e.source)-r.get(e.source)/2-_v-(t-s.get(e.source));h=[[l.x,l.y],[t,l.y],[t,n],[u.x,n],[u.x,u.y]]}else if(d.length===1){let e=a(d[0],c);h=!p[0].hairpin&&l.y===u.y?[[l.x,l.y],[u.x,u.y]]:[[l.x,l.y],[e,l.y],[e,u.y],[u.x,u.y]]}else{let e=a(d[0],c),t=a(d[1],c),n=o(f[0],c);h=m===`t`?[[l.x,l.y],[e,l.y],[e,n],[u.x,n]]:m===`s`?[[l.x,n],[t,n],[t,u.y],[u.x,u.y]]:[[l.x,l.y],[e,l.y],[e,n],[t,n],[t,u.y],[u.x,u.y]]}return I(h)})},Av=(e,t,n,r,i,a,o,s,c,l)=>{let u=Ov(e,t,te(e,n,a,o,r,i,c[`size-edge-port-gap`],void 0,l.fixedPort),s,c),d=te(e,n,a,o,r,i,c[`size-edge-port-gap`],e=>t[e].guts.length>0?u.gutY(t[e].guts[0],e):void 0,l.fixedPort),{chanX:f,gutY:p}=Ov(e,t,d,s,c),m=kv(e,t,d,i,o,f,p);return{portPos:d,gutY:p,polys:m,hops:ce(m).reduce((e,t)=>e+Array.from(t.values()).reduce((e,t)=>e+t.length,0),0)}},jv=(e,t,n,r,i,a,o,s,c,l)=>{let u=(e,a)=>!n.some(t=>t.guts[0]===e&&Math.min(...t.chans)<a&&a<=Math.max(...t.chans)+ +(t.gate===`t`))&&!t.some(t=>t.source===t.target&&i.get(t.source)===e+1&&r.get(t.source)===a),d=e=>{let t=i.get(e),n=r.get(e),c=(o.rowHeight[t]-a.get(e))/2,l=t>0&&u(t-1,n)?o.gutH[t-1]-pv:0,d=t<s-1&&u(t,n)?o.gutH[t]-pv:0;return[-(c+l),c+d]},f=(e,r)=>t.every((t,a)=>{let o=t.source===e?`s`:t.target===e?`t`:null;if(o===null||n[a].guts.length===0)return!0;let s=n[a].guts[0],c=r.portPos.get(`${a}:${o}`).y-r.gutY(s,a);return i.get(e)>s?c>=vv:c<=-24}),p=t.map((e,t)=>n[t].chans.length===1&&!n[t].flags[0].hairpin&&i.get(e.source)===i.get(e.target)),m=e=>t.filter((t,n)=>p[n]&&e.portPos.get(`${n}:s`).y!==e.portPos.get(`${n}:t`).y).length,h=(e,t)=>e.hops<t.hops||e.hops===t.hops&&m(e)<m(t),g=l();for(let n=0;n<yv;n++){let n=!1;for(let r of e){let[e,i]=d(r.id),a=new Set;t.forEach((e,t)=>{if(!p[t])return;let n=g.portPos.get(`${t}:s`),i=g.portPos.get(`${t}:t`);e.source===r.id?a.add(i.y-n.y):e.target===r.id&&a.add(n.y-i.y)});let o=c.get(r.id)??0,s;for(let t of a){if(t===0||o+t<e||o+t>i)continue;c.set(r.id,o+t);let n=l();f(r.id,n)&&h(n,s?.routing??g)&&(s={shift:o+t,routing:n})}c.set(r.id,s?.shift??o),s!==void 0&&(g=s.routing,n=!0)}if(!n)break}return g},Mv=(e,t,n)=>e.map((e,r)=>{let i=t.get(e.source),a=t.get(e.target);return e.source===e.target?{s:`e`,t:`n`}:{s:n.fixedPort?.(r,`s`)===void 0?i<=a?`e`:`w`:`e`,t:n.fixedPort?.(r,`t`)===void 0?i<a?`w`:`e`:`w`}}),Nv=(e,t,n,r,i,a)=>{let o=new Map;t.forEach((e,t)=>{o.set(`${n[t].s}:${e.source}`,(o.get(`${n[t].s}:${e.source}`)??0)+1),o.set(`${n[t].t}:${e.target}`,(o.get(`${n[t].t}:${e.target}`)??0)+1)});for(let t of e){if(a.fixedSize?.has(t.id))continue;let e=Math.max(o.get(`w:${t.id}`)??0,o.get(`e:${t.id}`)??0);e>i[`graph-node-degree-max`]&&r.set(t.id,r.get(t.id)+(e-i[`graph-node-degree-max`])*i[`size-edge-port-gap`])}},Pv=async(e,t,n={})=>{let r=Array.from(e.nodes.values()),i=e.edges,a=n.gates??new Map,o=r.filter(e=>!a.has(e.id)),s=i.filter(e=>!a.has(e.source)&&!a.has(e.target)),{boxW:c,boxH:l,contentH:u}=P(r,t,()=>t[`size-node-height-scale`]/2,n.fixedSize),d=Math.max(Math.floor(t[`graph-columns-max`]),1),f=new Map,p=new Map,m,h;if(o.some(e=>O(e)!==void 0)){let e=e=>O(e)??1/0,t=Array.from(new Set(o.map(e))).sort((e,t)=>e-t);m=1,h=0;for(let n of t){let t=o.filter(t=>e(t)===n);t.forEach((e,t)=>{f.set(e.id,t%d),p.set(e.id,h+Math.floor(t/d))}),m=Math.max(m,Math.min(t.length,d)),h+=Math.ceil(t.length/d)}}else{let e=new Map,n=new Map;if(o.length>0){let r=new ov({rankdir:`LR`,nodesep:t[`graph-node-separation`],ranksep:t[`graph-rank-separation`],nodeSize:e=>e.size});await r.execute({nodes:o.map(e=>({id:e.id,size:[c.get(e.id),l.get(e.id)]})),edges:s.map((e,t)=>({id:`e${t}`,source:e.source,target:e.target}))}),r.forEachNode(t=>{e.set(String(t.id),t.x),n.set(String(t.id),t.y)})}let r=bv(o,e,n);for(let[e,t]of r.col)f.set(e,t);for(let[e,t]of r.row)p.set(e,t);if(Sv(o,s,f,p),r.ncols>d)for(let e of o){let t=f.get(e.id);f.set(e.id,t%d),p.set(e.id,p.get(e.id)+Math.floor(t/d)*r.nrows)}m=Math.min(r.ncols,d),h=Cv(o,s,f,p)}({ncols:m,nrows:h}=wv(a,i,f,p,m,h));let g=Mv(i,f,n),_=Ev(i,f,p,g,a);if(_.plans.some(e=>e.chans.some(e=>e<0))){for(let e of r)f.set(e.id,f.get(e.id)+1);m++,_=Ev(i,f,p,g,a)}let{plans:v,chanCnt:y,gutCnt:b,chanLbl:x,gutLbl:S,gutLoop:C}=_;Nv(r,i,g,l,t,n);let w=Dv(r,f,p,c,l,m,h,y,b,x,S,C,t),T=new Map,E=e=>w.colCX[f.get(e)],D=e=>w.rowCY[p.get(e)]+(T.get(e)??0);return{nodes:r,edges:i,cx:E,cy:D,boxW:c,boxH:l,contentH:u,polys:jv(r,i,v,f,p,l,w,h,T,()=>Av(i,v,g,c,l,E,D,w,t,n)).polys}},Fv=`\0`,Iv=28,Lv=16,Rv=40,zv=8,Bv=12,Vv=e=>{let t=Array.from(e.nodes.values());for(let e of t)if(e.id.includes(Fv))throw Error(`node id ${JSON.stringify(e.id)} contains a reserved control character`);let n=t.filter(S);if(n.length!==1)throw Error(`expected exactly one node annotated with "primary: true" (found ${n.length})`);let r=n[0],i=new Set,a=new Set,o=!1;for(let t of e.edges)if(t.source===r.id&&t.target===r.id)o=!0;else if(t.target===r.id)i.add(t.source);else if(t.source===r.id)a.add(t.target);else throw Error(`edge "${t.source}" --> "${t.target}" does not connect to primary node "${r.id}"`);let s=new Set,c=[],l=[];for(let e of t){if(e.id===r.id)continue;let t=i.has(e.id),n=a.has(e.id);if(!t&&!n)throw Error(`node "${e.id}" is neither input nor output of primary node "${r.id}"`);t&&n?(s.add(e.id),c.push({...e,id:e.id+`\0in`}),l.push({...e,id:e.id+`\0out`})):t?c.push(e):l.push(e)}o&&l.unshift({...r,id:r.id+`\0self`,attrs:r.attrs.filter(e=>e.key!==`primary`)});let u=e.edges.map(e=>e.source===r.id&&e.target===r.id?{...e,target:e.target+`\0self`}:e.target===r.id&&s.has(e.source)?{...e,source:e.source+`\0in`}:e.source===r.id&&s.has(e.target)?{...e,target:e.target+`\0out`}:e);return{center:r,inputs:c,outputs:l,nodes:[r,...c,...l],edges:u}},Hv={graph:{render:Pv,gated:!0},hub:{render:async(e,t,n={})=>{let{center:r,inputs:i,outputs:a,nodes:o,edges:s}=Vv(e),c=new Set(i.map(e=>e.id)),l=t[`size-canvas-margin`],u=t[`hub-node-gap`],d=t[`size-node-height-scale`],f=e=>e===r.id?1:c.has(e)?0:2,p=s.map(()=>({s:`e`,t:`w`})),{boxW:m,boxH:h,contentH:g}=P(o,t,()=>d/2,n.fixedSize),_=new Map;s.forEach((e,t)=>{_.set(`${p[t].s}:${e.source}`,(_.get(`${p[t].s}:${e.source}`)??0)+1),_.set(`${p[t].t}:${e.target}`,(_.get(`${p[t].t}:${e.target}`)??0)+1)});for(let e of o){if(n.fixedSize?.has(e.id))continue;let r=Math.max(_.get(`w:${e.id}`)??0,_.get(`e:${e.id}`)??0);r>t[`hub-node-degree-max`]&&h.set(e.id,h.get(e.id)+(r-t[`hub-node-degree-max`])*t[`size-edge-port-gap`])}let v=t[`hub-node-count-max`],b=new Set;for(let e of[i,a])v>0&&e.length>v&&e.filter((e,t)=>t%2==0).forEach(e=>b.add(e.id));let x=e=>{let r=Math.max(_.get(`w:${e}`)??0,_.get(`e:${e}`)??0);return n.fixedSize?.has(e)?h.get(e)/2:Math.min(h.get(e)/2,(r-1)*t[`size-edge-port-gap`]/2+Bv)},S=new Map,w=e=>{let[t,n,r,i]=[-1/0,-1/0,-1/0,0];for(let a of e){let e=h.get(a.id),o=e/2;b.has(a.id)?(o=Math.max(o,n+u+e/2,t+x(a.id)),n=o+e/2,r=o+x(a.id)):(o=Math.max(o,t+u+e/2,r+e/2),t=o+e/2),S.set(a.id,o),i=Math.max(i,o+e/2)}return i},T=[w(i),w(a)],E=Math.max(T[0],h.get(r.id),T[1]),D=new Map;for(let[e,t]of[i,a].entries())for(let n of t)D.set(n.id,l+(E-T[e])/2+S.get(n.id));D.set(r.id,l+E/2);let O=(e,t)=>e.filter(e=>b.has(e.id)===t).reduce((e,t)=>Math.max(e,m.get(t.id)),0),k=[O(i,!0),O(a,!0)],A=s.reduce((e,t)=>b.has(t.target)&&t.arity!==void 0?Math.max(e,24+y(t.arity,16)+zv):e,Rv),ee=(e,t)=>O(e,!1)+(k[t]>0?(t===1?A:Rv)+k[t]:0),j=[ee(i,0),m.get(r.id),ee(a,1)],M=e=>Math.min(f(e.source),f(e.target)),N=[s.filter(e=>M(e)===0).length,s.filter(e=>M(e)===1).length].map(e=>Math.min(t[`hub-channel-width-max`],Math.max(t[`hub-channel-width-min`],Iv+(e-1)*t[`size-edge-track-gap`]))),F=[],L=l;for(let e=0;e<3;e++)F.push(L),L+=j[e]+(e<2?N[e]:0);let R=e=>{let t=f(e);return t===0?F[0]+(b.has(e)?k[0]:j[0])-m.get(e)/2:t===2?F[2]+(b.has(e)?j[2]-k[1]:0)+m.get(e)/2:F[1]+j[1]/2},ne=e=>D.get(e),re=te(s,p,R,ne,m,h,t[`size-edge-port-gap`],void 0,n.fixedPort),ie=[[],[]];s.forEach((e,t)=>{ie[M(e)].push({edge:t,posIn:re.get(`${t}:s`).y,posOut:re.get(`${t}:t`).y,mirror:!1})});let ae=new Map;ie.forEach((e,n)=>{for(let[r,i]of se(e,N[n],Lv,t[`size-edge-track-gap`]))ae.set(`${n}:${r}`,i)});let oe=(e,t)=>F[e]+j[e]+N[e]/2+ae.get(`${e}:${t}`);return{nodes:o,edges:s,cx:R,cy:ne,boxW:m,boxH:h,contentH:g,polys:s.map((e,t)=>{let n=re.get(`${t}:s`),r=re.get(`${t}:t`),i=oe(M(e),t),a;return a=n.y===r.y?[[n.x,n.y],[r.x,r.y]]:[[n.x,n.y],[i,n.y],[i,r.y],[r.x,r.y]],I(a)}),styleOf:e=>e.id.endsWith(`\0out`)?{fill:`color-node-ghost-box`,stroke:`color-node-ghost-border`,text:`color-node-ghost-name`,dash:`10 6`}:e.id.endsWith(`\0self`)?{fill:`color-node-self-box`,stroke:`color-node-self-border`,text:`color-node-self-name`,dash:`10 6`}:C(e)}},gated:!1},grid:{render:async(e,t,n={})=>{let r=Array.from(e.nodes.values()).sort((e,t)=>(O(e)??1/0)-(O(t)??1/0)||0),i=t[`size-canvas-margin`],a=t[`grid-gap-horizontal`],o=t[`grid-gap-vertical`],s=Math.max(Math.floor(t[`grid-columns-max`]),1),c=Math.max(Math.floor(t[`grid-columns-min`]),1);if(e.edges.length>0){let t=e.edges[0];throw Error(`diagram type "grid" does not support edges (found ${e.edges.length}, first is "${t.source}" --> "${t.target}")`)}let{boxW:l,boxH:u,contentH:d}=P(r,t,()=>t[`size-node-height-scale`]/2,n.fixedSize),f=e=>n.fixedSize?.has(e.id)??!1,p=r.reduce((e,t)=>f(t)?e:Math.max(e,u.get(t.id)),0),m=r.reduce((e,t)=>Math.max(e,l.get(t.id)),0);for(let e of r)t[`grid-node-height-equal`]&&!f(e)&&u.set(e.id,p),t[`grid-node-width-equal`]&&l.set(e.id,m);let h=Math.max(Math.min(Math.max(Math.ceil(Math.sqrt(r.length)),c),s,r.length),1),g=Math.ceil(r.length/h),_=Array.from({length:h},()=>0),v=Array.from({length:g},()=>0);r.forEach((e,t)=>{let[n,r]=[t%h,Math.floor(t/h)];_[n]=Math.max(_[n],l.get(e.id)),v[r]=Math.max(v[r],u.get(e.id))});let y=[],b=i;for(let e=0;e<h;e++)y.push(b),b+=_[e]+a;let x=[],S=i;for(let e=0;e<g;e++)x.push(S),S+=v[e]+o;let C=new Map,w=new Map;return r.forEach((e,t)=>{C.set(e.id,y[t%h]+l.get(e.id)/2),w.set(e.id,x[Math.floor(t/h)]+u.get(e.id)/2)}),{nodes:r,edges:[],cx:e=>C.get(e),cy:e=>w.get(e),boxW:l,boxH:u,contentH:d,polys:[]}},gated:!1}},Uv=Object.keys(Hv),Wv=`graph`,Gv=e=>{let t;for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#type[ \t]+([a-z][a-z0-9-]*)[ \t]*$/.exec(n);e!==null&&Object.hasOwn(Hv,e[1])&&(t=e[1])}return t},Kv=[`svg:standalone`,`svg:embedded`,`url:xml`,`url:base64`];e.Gradia=class e{static config=Object.freeze({...p});static parse(e){return d(e)}static async generate(e,t={}){let n=t.type??`graph`;if(!Object.hasOwn(Hv,n))throw Error(`invalid diagram type "${n}"`);let r=t.format??`svg:standalone`;if(!Kv.includes(r))throw Error(`invalid output format "${r}"`);let i=h(t.config??{},{trusted:!0}),a={...p,...i};for(let[t,n]of e.nodes)if(n.id!==t)throw Error(`node id "${n.id}" does not match its map key "${t}"`);for(let t of e.edges)for(let n of[t.source,t.target])if(!e.nodes.has(n))throw Error(`endpoint "${n}" of edge "${t.source}" --> "${t.target}" is not a declared node`);let o=z(e,Uv),s=e=>he(e,o,n,Hv,a),c=ve(e,o),l=Ne(c===null?await s(e):ye(c,await Promise.all(c.map(e=>s(e.graph))),a),a,i,JSON.stringify({type:n,config:a,explicit:Object.keys(i).sort(),nodes:Array.from(e.nodes.values()),edges:e.edges}));return r===`svg:embedded`?l.replace(/^<\?xml[^?]*\?>\n/,``):r===`url:xml`?`data:image/svg+xml,${encodeURIComponent(l)}`:r===`url:base64`?`data:image/svg+xml;base64,${btoa(Array.from(new TextEncoder().encode(l),e=>String.fromCharCode(e)).join(``))}`:l}static async render(t,n={}){let r=e.parse(t),i=n.type??Gv(t),a={...g(t),...h(n.config??{},{trusted:!0})};return e.generate(r,{...n,type:i,config:a})}},e.diagramFormatDefault=`svg:standalone`,e.diagramFormats=Kv,e.diagramTypeDefault=Wv,e.diagramTypes=Uv});
|
|
4
|
+
`;)r++,i++;else if((d=c(a))!==null){let e=d[1]===void 0?d[2]:l(d[1]),a=d[3]===void 0?d[4]:l(d[3]);t.push({type:`edge`,text:d[0],name:e,arity:a,line:n,col:r}),r+=d[0].length,i+=d[0].length}else if((d=c(o))!==null)t.push({type:`string`,text:l(d[1]),line:n,col:r}),r+=d[0].length,i+=d[0].length;else if(u===`"`)throw Error(`unterminated string at line ${n}, column ${r}`);else if(`[](),:`.includes(u))t.push({type:`punct`,text:u,line:n,col:r}),r++,i++;else if((d=c(s))!==null)t.push({type:`word`,text:d[0],line:n,col:r}),r+=d[0].length,i+=d[0].length;else throw Error(`invalid character ${JSON.stringify(u)} at line ${n}, column ${r}`)}return t},d=e=>{let t=u(e),n={nodes:new Map,edges:[]},r=0,i=()=>r<t.length?t[r]:null,a=e=>{let t=i();return t===null||t.type!==`punct`||t.text!==e?!1:(r++,!0)},o=e=>{let t=i(),n=t===null?`end of input`:`line ${t.line}, column ${t.col}`;throw Error(`expected ${e} at ${n}`)},s=()=>{let e=i();return e===null||e.type!==`word`&&e.type!==`string`?o(`bareword or quoted string`):(r++,e.text)},c=()=>{let e=t[r],i=s(),c=null;a(`:`)&&(c=s());let l=[];if(a(`[`)){for(;;){let e=s();a(`:`)||o(`":" in key/value attribute`);let t=s();if(l.push({key:e,val:t}),!a(`,`))break}a(`]`)||o(`"]" after key/value attributes`)}let u=n.nodes.get(i)??{id:i,name:i,attrs:[]};c!==null&&(u.name=c);for(let t of l){let n=u.attrs.findIndex(e=>e.key===t.key);if(n===-1)u.attrs.push(t);else{if((t.key===`group`||t.key===`parent`)&&u.attrs[n].val!==t.val)throw Error(`node "${i}" cannot be a member of more than one ${t.key===`group`?`group`:`container`} ("${u.attrs[n].val}" vs "${t.val}") at line ${e.line}, column ${e.col}`);u.attrs[n]=t}}let d=u.attrs.find(e=>e.key===`parent`)?.val;return d!==void 0&&!n.nodes.has(d)&&n.nodes.set(d,{id:d,name:d,attrs:[]}),n.nodes.set(i,u),i};for(;r<t.length;){if(t[r].type===`newline`){r++;continue}let e=c(),a=i();for(;a!==null&&a.type===`edge`;){r++;let t=c();n.edges.push({source:e,target:t,name:a.name,arity:a.arity}),e=t,a=i()}a!==null&&a.type!==`newline`&&o(`edge operator or end of line`)}return n},f=l(s(((e,t)=>{t.exports={}}))(),1),p={"font-family":`Helvetica`,"font-embed":!1,"color-node-regular-name":`#336699`,"color-node-regular-box":`#e0f0ff`,"color-node-regular-border":`#c0d0e0`,"color-node-primary-name":`#ffffff`,"color-node-primary-box":`#336699`,"color-node-primary-border":`#003366`,"color-node-ghost-name":`#666666`,"color-node-ghost-box":`#f0f0f0`,"color-node-ghost-border":`#a0a0a0`,"color-node-self-name":`#444444`,"color-node-self-box":`#e0e0e0`,"color-node-self-border":`#707070`,"color-group-name":`#6699cc`,"color-group-box":`#f4f8fc`,"color-group-border":`#c0d0e0`,"color-container-name":`#666666`,"color-container-box":`#f6f6f6`,"color-container-border":`#a0a0a0`,"color-edge-line":`#999999`,"color-edge-name":`#333333`,"color-edge-arity":`#333333`,"color-edge-halo":`#ffffff`,"size-font-node":30,"size-font-type":16,"size-font-prop":22,"size-font-edge":16,"size-font-arity":16,"size-canvas-margin":40,"size-node-width-min":220,"size-node-width-max":0,"size-node-height-scale":2.25,"size-edge-corner-radius":20,"size-edge-hop-radius":8,"size-edge-track-gap":12,"size-edge-port-gap":24,"group-box-padding":30,"group-box-gap":40,"container-box-padding":30,"graph-columns-max":4,"graph-channel-width-max":140,"graph-channel-width-min":24,"graph-gutter-height-max":90,"graph-gutter-height-min":20,"graph-node-separation":30,"graph-rank-separation":60,"graph-node-degree-max":3,"hub-channel-width-max":340,"hub-channel-width-min":240,"hub-node-gap":20,"hub-node-degree-max":3,"hub-node-count-max":0,"grid-columns-max":4,"grid-columns-min":3,"grid-gap-horizontal":40,"grid-gap-vertical":20,"grid-node-width-equal":!0,"grid-node-height-equal":!0},m=(e,t)=>`var(--gradia-${t}, ${e[t]}px)`,h=(e,t)=>Object.hasOwn(e,t)?e[t].replace(/[;{}]/g,``):`var(--gradia-${t}, ${p[t]})`,g=(e,t)=>{let n={};for(let[r,i]of Object.entries(e)){if(!Object.hasOwn(p,r))throw Error(`unknown configuration option "${r}"`);let e=r;if(i!==void 0){if(e===`font-embed`&&!t.trusted)throw Error(`configuration option "${r}" is not available in this context`);if(typeof p[e]==`boolean`){if(typeof i!=`boolean`&&i!==`true`&&i!==`false`)throw Error(`invalid value "${String(i)}" for boolean configuration option "${r}" (expected "true" or "false")`);n[e]=typeof i==`boolean`?i:i===`true`}else if(typeof p[e]==`number`){let t=Number(i);if(typeof i!=`number`&&typeof i!=`string`||String(i).trim()===``||!Number.isFinite(t)||t<0)throw Error(`invalid value "${String(i)}" for numeric configuration option "${r}" (expected a non-negative number)`);n[e]=t}else{if(typeof i!=`string`)throw Error(`invalid value "${String(i)}" for string configuration option "${r}" (expected a string)`);if(i===``)throw Error(`invalid empty value for string configuration option "${r}"`);if(e===`font-family`&&i.endsWith(`.woff2`)&&!t.trusted)throw Error(`configuration option "font-family" must not be the path to a WOFF2 file in this context`);n[e]=i}}}return n},_=e=>{let t={};for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#config[ \t]+([a-z][a-z0-9-]*)[ \t]+(?:"((?:[^"\\]|\\.)*)"|(\S+))[ \t]*$/.exec(n);if(e===null)continue;let r=e[2]===void 0?e[3]:e[2].replace(/\\(.)/g,`$1`);try{Object.assign(t,g({[e[1]]:r},{trusted:!1}))}catch{}}return t},v={"Source Sans 3":{file:`source-sans/WOFF2/VF/SourceSans3VF-Upright.ttf.woff2`,weight:`200 900`}},y=e=>{let t=e[`font-family`];if(Object.hasOwn(v,t)){let n=v[t];if(e[`font-embed`]){let e=f.default.fileURLToPath((e=>e)(n.file));return{family:t,embed:f.default.readFileSync(e).toString(`base64`),weight:n.weight}}return{family:t}}if(t.endsWith(`.woff2`)){let n=f.default.basename(t,`.woff2`);return e[`font-embed`]?{family:n,embed:f.default.readFileSync(t).toString(`base64`)}:{family:n}}if(e[`font-embed`])throw Error(`configuration option "font-embed" requires configuration option "font-family" to be a built-in font family (${Object.keys(v).map(e=>`"${e}"`).join(`, `)}) or the path to a WOFF2 file`);return{family:t}},b=e=>Math.round(e[`size-font-arity`]*.8),x=(e,t)=>e.length*t*.52,S=(e,t,n)=>{let r=e.split(/\s+/).filter(e=>e!==``),i=r.join(` `);if(n<=0||r.length<=1||x(i,t)<=n)return[i];let a=[],o=r[0];for(let e of r.slice(1))x(`${o} ${e}`,t)>n?(a.push(o),o=e):o=`${o} ${e}`;return a.push(o),a},C=e=>e.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F\uFFFE\uFFFF\p{Cs}]/gu,``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),w=e=>e.attrs.findLast(e=>e.key===`primary`)?.val===`true`,T=e=>w(e)?{fill:`color-node-primary-box`,stroke:`color-node-primary-border`,text:`color-node-primary-name`}:{fill:`color-node-regular-box`,stroke:`color-node-regular-border`,text:`color-node-regular-name`},E=e=>e.attrs.findLast(e=>e.key===`type`)?.val,D=e=>e.attrs.findLast(e=>e.key===`parent`)?.val,O=e=>e.attrs.findLast(e=>e.key===`container`)?.val,k=e=>e[`size-font-type`]+4,A=(e,t)=>34+(E(e)===void 0?0:k(t)),j=e=>{let t=e.attrs.findLast(e=>e.key===`order`)?.val,n=t!==void 0&&t.trim()!==``?Number(t):NaN;return Number.isFinite(n)?n:void 0},M=new Set([`url`,`type`,`primary`,`group`,`parent`,`container`,`order`]),N=e=>e.attrs.filter(e=>!M.has(e.key)),ee=/^\s*([A-Za-z][A-Za-z0-9+.-]*):/,P=new Set([`http`,`https`,`mailto`]),F=e=>{let t=e.attrs.findLast(e=>e.key===`url`)?.val;if(t===void 0)return;let n=t.replace(/[\u0000-\u001F\u007F]/g,``),r=ee.exec(n);if(r===null||P.has(r[1].toLowerCase()))return n},I=e=>e[`size-font-node`]+26,L=e=>e[`size-font-node`]+4,R=e=>e[`size-font-prop`]+8,z=e=>e[`size-font-type`]+10,te=e=>e[`size-font-node`]*.72+e[`size-font-type`]*.9,ne=(e,t)=>{let n=t[`size-node-width-max`]>0?t[`size-node-width-max`]-36:0,r=E(e);return{name:S(e.name,t[`size-font-node`],n),type:r===void 0?[]:S(r,t[`size-font-type`],n),attrs:N(e).flatMap(e=>S(`${e.key}: ${e.val}`,t[`size-font-prop`],n))}},re=(e,t,n,r)=>{let i=new Map,a=new Map,o=new Map;for(let s of e){let e=r?.get(s.id);if(e!==void 0){i.set(s.id,e.w),a.set(s.id,e.h),o.set(s.id,e.h);continue}let c=ne(s,t),l=Math.max(0,...c.name.map(e=>x(e,t[`size-font-node`])),...c.type.map(e=>x(e,t[`size-font-type`])),...c.attrs.map(e=>x(e,t[`size-font-prop`]))),u=I(t)+(c.name.length-1)*L(t)+c.type.length*z(t)+(c.attrs.length>0?12+(c.attrs.length-1)*R(t)+20:0);i.set(s.id,Math.max(t[`size-node-width-min`],Math.ceil(l)+36)),a.set(s.id,Math.max(u,Math.ceil(u*n(s)))),o.set(s.id,u)}return{boxW:i,boxH:a,contentH:o}},ie=(e,t)=>e.some(e=>e.arity!==void 0)?Math.max(t[`size-edge-port-gap`],Math.ceil(12+b(t)+17/2)):t[`size-edge-port-gap`],ae=e=>{let t=[...e];for(let e=t.length-2;e>0;e--){let[n,r,i]=[t[e-1],t[e],t[e+1]];(n[0]===r[0]&&r[0]===i[0]||n[1]===r[1]&&r[1]===i[1])&&t.splice(e,1)}let n=[];for(let e of t){let t=n.at(-1);(t===void 0||t[0]!==e[0]||t[1]!==e[1])&&n.push(e)}return n},oe=(e,t,n,r,i,a,o,s,c)=>{let l=new Map,u=(e,t,n)=>{let r=l.get(e);r===void 0?l.set(e,[{edge:t,role:n}]):r.push({edge:t,role:n})};e.forEach((e,n)=>{u(`${e.source}:${t[n].s}`,n,`s`),u(`${e.target}:${t[n].t}`,n,`t`)});let d=new Map;for(let[t,u]of l){let l=t.lastIndexOf(`:`),f=t.slice(0,l),p=t.slice(l+1);if(p===`n`){u.sort((e,t)=>t.edge-e.edge);let e=Math.min(o,(i.get(f)-10)/u.length);u.forEach((t,i)=>{d.set(`${t.edge}:${t.role}`,{x:n(f)+(i-(u.length-1)/2)*e,y:r(f)-a.get(f)/2})});continue}let m=n(f)+(p===`e`?1:-1)*i.get(f)/2,h=e=>c?.(e.edge,e.role),g=(e,t)=>d.set(`${e.edge}:${e.role}`,{x:m,y:t}),_=[];for(let e of u.filter(e=>h(e)!==void 0)){let t=r(f)+h(e);g(e,t),_.push(t)}_.sort((e,t)=>e-t);let v=u.filter(e=>h(e)===void 0),y=t=>t.role===`s`?e[t.edge].target:e[t.edge].source,b=e=>s?.(e.edge)??r(y(e));v.sort((e,t)=>b(e)-b(t)||e.edge-t.edge);let x=v.length+_.length,S=Math.min(o,(a.get(f)-10)/x);if(_.length===0){v.forEach((e,t)=>g(e,r(f)+(t-(x-1)/2)*S));continue}let C=r(f)-(a.get(f)-10)/2+S/2,w=r(f)+(a.get(f)-10)/2-S/2,T=[C-S,..._,w+S],E=e=>_.filter(t=>t<b(e)).length,D=T.slice(1).map((e,t)=>({lo:Math.max(C,T[t]+S),hi:Math.min(w,e-S),ports:v.filter(e=>E(e)===t)})),O=e=>e.hi<e.lo?0:Math.floor((e.hi-e.lo)/S)+1;for(let e=0;e<D.length-1;e++)for(;D[e].ports.length>O(D[e]);)D[e+1].ports.unshift(D[e].ports.pop());for(let e=D.length-1;e>0;e--)for(;D[e].ports.length>O(D[e]);)D[e-1].ports.push(D[e].ports.shift());let k=0;D.forEach((e,t)=>{let n=e.ports.length,i=n>1?Math.min(S,Math.max(e.hi-e.lo,0)/(n-1)):S,a=Math.min(Math.max(r(f)+(k+t-(x-1)/2)*S,e.lo),e.hi-(n-1)*i);e.ports.forEach((e,t)=>g(e,a+t*i)),k+=n})}return d},se=24,ce=e=>e.hairpin?e.mirror?[]:[e.posIn,e.posOut]:[e.mirror?e.posOut:e.posIn],le=e=>e.hairpin?e.mirror?[e.posIn,e.posOut]:[]:[e.mirror?e.posIn:e.posOut],ue=(e,t)=>{let n=(e,t)=>t>=Math.min(e.posIn,e.posOut)&&t<=Math.max(e.posIn,e.posOut);return le(e).filter(e=>n(t,e)).length+ce(t).filter(t=>n(e,t)).length},B=(e,t)=>le(e).filter(e=>ce(t).includes(e)).length,de=14,fe=e=>{let t=e.length;if(t<2)return e;let n=e.map((n,r)=>e.map((e,i)=>(B(n,e)*2*t*t+ue(n,e))*t*t+ +(r>i))),r;if(t<=de){let e=new Float64Array(1<<t).fill(1/0),i=new Int8Array(1<<t);e[0]=0;for(let r=1;r<1<<t;r++)for(let a=0;a<t;a++){if(!(r&1<<a))continue;let o=r&~(1<<a),s=e[o];for(let e=0;e<t;e++)o&1<<e&&(s+=n[e][a]);s<e[r]&&(e[r]=s,i[r]=a)}r=[];for(let e=(1<<t)-1;e!==0;e&=~(1<<i[e]))r.unshift(i[e])}else{r=e.map((e,t)=>t);for(let e=!0;e;){e=!1;for(let i=1;i<t&&!e;i++)for(let a=0;a+i<=t&&!e;a++){let o=0;for(let s=a+i;s<t&&!e;s++){for(let e=a;e<a+i;e++)o+=n[r[s]][r[e]]-n[r[e]][r[s]];o<0&&(r.splice(s-i+1,0,...r.splice(a,i)),e=!0)}o=0;for(let t=a-1;t>=0&&!e;t--){for(let e=a;e<a+i;e++)o+=n[r[e]][r[t]]-n[r[t]][r[e]];o<0&&(r.splice(t,0,...r.splice(a,i)),e=!0)}}}}return r.map(t=>e[t])},pe=(e,t,n,r)=>{let i=(e,t)=>{let n=t?-1:1,r=e.filter(e=>e.posOut<e.posIn).sort((e,t)=>n*(e.posIn-t.posIn||e.posOut-t.posOut)),i=e.filter(e=>e.posOut>=e.posIn).sort((e,t)=>n*(t.posIn-e.posIn||t.posOut-e.posOut));return[...r,...i]},a=fe([...i(e.filter(e=>!e.mirror),!1),...i(e.filter(e=>e.mirror),!0)]),o=(e,t)=>Math.min(e.posIn,e.posOut)<Math.max(t.posIn,t.posOut)+se&&Math.min(t.posIn,t.posOut)<Math.max(e.posIn,e.posOut)+se,s=new Map,c=0;a.forEach((e,t)=>{let n=0;for(let r=0;r<t;r++)o(a[r],e)&&(n=Math.max(n,s.get(a[r].edge)+1));s.set(e.edge,n),c=Math.max(c,n+1)});let l=Math.min(r,(t-n)/Math.max(c-1,1)),u=new Map;for(let[e,t]of s)u.set(e,(t-(c-1)/2)*l);return u},me=e=>{let t=[];return e.forEach((e,n)=>{for(let r=0;r<e.length-1;r++){let[i,a]=[e[r],e[r+1]];i[0]===a[0]&&t.push({owner:n,x:i[0],y1:Math.min(i[1],a[1]),y2:Math.max(i[1],a[1])})}}),e.map((e,n)=>{let r=new Map;for(let i=0;i<e.length-1;i++){let[a,o]=[e[i],e[i+1]];if(a[1]!==o[1])continue;let s=a[1],c=Math.min(a[0],o[0]),l=Math.max(a[0],o[0]),u=[];for(let e of t)e.owner!==n&&e.x>c+1&&e.x<l-1&&s>e.y1+1&&s<e.y2-1&&u.push(e.x);u.length>0&&r.set(i,u)}return r})},he=(e,t)=>Math.abs(t[0]-e[0])+Math.abs(t[1]-e[1]),ge=(e,t,n,r)=>{let i=i=>{if(i<=0||i>=e.length-1)return 0;let a=Math.min(n,he(e[i-1],e[i])/2,he(e[i],e[i+1])/2);for(let n of[i-1,i])for(let o of t.get(n)??[])a=Math.min(a,Math.max(Math.abs(o-e[i][0])-r-2,4));return a},a=[];for(let n=0;n<e.length-1;n++){let[o,s]=[e[n],e[n+1]],c=he(o,s),l=(s[0]-o[0])/c,u=(s[1]-o[1])/c,d=i(n),f=i(n+1),p=[o[0]+l*d,o[1]+u*d],m=[s[0]-l*f,s[1]-u*f];if(n===0&&a.push(`M ${p[0]} ${p[1]}`),o[1]===s[1]&&t.has(n)){let e=Math.sign(s[0]-o[0]),i=t.get(n).filter(t=>(t-p[0])*e>2&&(m[0]-t)*e>2).sort((t,n)=>(t-n)*e),c=[];for(let e of i){let t=c.at(-1);t!==void 0&&Math.abs(e-t.at(-1))<=r*2+14?t.push(e):c.push([e])}for(let t of c){let n=t[0]-e*r,i=t.at(-1)+e*r;(n-p[0])*e<0&&(n=p[0]),(m[0]-i)*e<0&&(i=m[0]),a.push(`L ${n} ${o[1]}`),a.push(`A ${Math.abs(i-n)/2} ${r} 0 0 ${+(e>0)} ${i} ${o[1]}`)}}if(a.push(`L ${m[0]} ${m[1]}`),n<e.length-2){let t=e[n+1],r=e[n+2],i=he(t,r),o=[t[0]+(r[0]-t[0])/i*f,t[1]+(r[1]-t[1])/i*f];a.push(`Q ${s[0]} ${s[1]} ${o[0]} ${o[1]}`)}}return a.join(` `)},_e=(e,t)=>{let n=e.slice(0,-1).map((t,n)=>he(t,e[n+1])),r=n.reduce((e,t)=>e+t,0)*t;for(let t=0;t<n.length;t++){if(r<=n[t]||t===n.length-1){let i=n[t]>0?r/n[t]:0;return{x:e[t][0]+(e[t+1][0]-e[t][0])*Math.min(i,1),y:e[t][1]+(e[t+1][1]-e[t][1])*Math.min(i,1),horizontal:e[t][1]===e[t+1][1]}}r-=n[t]}return{x:e[0][0],y:e[0][1],horizontal:!0}},ve=(e,t)=>{let n=new Map,r=new Map;for(let i of e.nodes.values()){let a=O(i);if(a!==void 0&&!t.includes(a))throw Error(`invalid container layout type "${a}" of node "${i.id}"`);let o=D(i);if(o===void 0)continue;if(!e.nodes.has(o))throw Error(`container "${o}" of node "${i.id}" is not a declared node`);n.set(i.id,o);let s=r.get(o);s===void 0?r.set(o,[i]):s.push(i)}for(let e of n.keys()){let t=new Set([e]);for(let r=n.get(e);r!==void 0;r=n.get(r)){if(t.has(r))throw Error(`node "${e}" cannot be nested into itself (containment cycle)`);t.add(r)}}let i=(e,t)=>{for(let r=n.get(t);r!==void 0;r=n.get(r))if(r===e)return!0;return!1};for(let t of e.edges)if(i(t.source,t.target)||i(t.target,t.source))throw Error(`edge "${t.source}" --> "${t.target}" connects a container with one of its own members`);return{parentOf:n,childrenOf:r}},ye=(e,t)=>{let n=t;for(let t=e.parentOf.get(n);t!==void 0;t=e.parentOf.get(n))n=t;return n},be=(e,t=[])=>{let{nodes:n,cx:r,cy:i,boxW:a,boxH:o,polys:s}=e,[c,l,u,d]=[1/0,1/0,-1/0,-1/0];for(let e of n)c=Math.min(c,r(e.id)-a.get(e.id)/2),l=Math.min(l,i(e.id)-o.get(e.id)/2),u=Math.max(u,r(e.id)+a.get(e.id)/2),d=Math.max(d,i(e.id)+o.get(e.id)/2);for(let e of[...s,...t])for(let[t,n]of e)c=Math.min(c,t),l=Math.min(l,n),u=Math.max(u,t),d=Math.max(d,n);for(let t of e.containers??[])c=Math.min(c,t.x),l=Math.min(l,t.y),u=Math.max(u,t.x+t.w),d=Math.max(d,t.y+t.h);return Number.isFinite(c)||([c,l,u,d]=[0,0,0,0]),{minX:c,minY:l,maxX:u,maxY:d}},xe=(e,t)=>`\u0000gate:${e}:${t}`,Se=async(e,t,n,r,i)=>{let a=Array.from(e.nodes.values()),o=e=>t.childrenOf.has(e.id)||O(e)!==void 0;if(!a.some(o))return r[n].render(e,i);let s=i[`container-box-padding`];for(let e of a)if(e.id.includes(`\0`))throw Error(`node id ${JSON.stringify(e.id)} contains a reserved control character`);let c=(e,t)=>{let n=Math.max(x(e.name,24),x(E(e)??``,i[`size-font-type`]));return{w:Math.max(t.maxX-t.minX,n)+s*2,h:t.maxY-t.minY+s*2+A(e,i)}},l=(t,n,r,a,o,l)=>{let u=[{layout:t,dx:0,dy:0}],d=new Map;for(let e of t.nodes)d.set(e.id,0);let f=[],p=[];for(let[r,a]of n){let n=e.nodes.get(r);if(!t.nodes.some(e=>e.id===r))throw Error(`container "${r}" cannot be placed twice by diagram type "${l}"`);let{w:o,h:m}=c(n,a.bounds),h=t.cx(r),g=t.cy(r),_=u.push({layout:a.layout,dx:h-o/2+s-a.bounds.minX,dy:g-m/2+A(n,i)+s-a.bounds.minY})-1;for(let e of a.layout.nodes)d.set(e.id,_);d.set(r,_),f.push({node:n,x:h-t.boxW.get(r)/2,y:g-t.boxH.get(r)/2,w:t.boxW.get(r),h:t.boxH.get(r)}),p.push(...(a.layout.containers??[]).map(e=>({...e,x:e.x+u[_].dx,y:e.y+u[_].dy})))}let m=(e,t)=>e.map(([e,n])=>[e+u[t].dx,n+u[t].dy]),h=[],g=[],_=new Map;u.forEach((e,t)=>{t!==0&&e.layout.edges.forEach((n,r)=>{h.push(n),g.push(m(e.layout.polys[r],t))})}),r.forEach((r,i)=>{let s=a[i],c=n.get(r.source)?.partial.get(s),l=n.get(r.target)?.partial.get(s),u=ae([...c===void 0?[]:m(c,d.get(r.source)),...t.polys[i],...l===void 0?[]:m(l,d.get(r.target))]);o.has(r.source)||o.has(r.target)?_.set(s,u):(h.push(e.edges[s]),g.push(u))});let v=e=>new Map(u.flatMap(t=>Array.from(e(t.layout).entries()))),y={nodes:[...t.nodes.filter(e=>!n.has(e.id)&&!o.has(e.id)),...u.slice(1).flatMap(e=>e.layout.nodes)],edges:h,cx:e=>u[d.get(e)].layout.cx(e)+u[d.get(e)].dx,cy:e=>u[d.get(e)].layout.cy(e)+u[d.get(e)].dy,boxW:v(e=>e.boxW),boxH:v(e=>e.boxH),contentH:v(e=>e.contentH),polys:g,styleOf:e=>(u[d.get(e.id)].layout.styleOf??T)(e),containers:[...f,...p]};return{layout:y,bounds:be(y,Array.from(_.values())),partial:_}},u=async(n,d)=>{let f=n===null?a.filter(e=>D(e)===void 0):t.childrenOf.get(n.id)??[],p=new Set(f.map(e=>e.id)),m=e=>{for(let n=e;n!==void 0;n=t.parentOf.get(n))if(p.has(n))return n},h=new Map;for(let e of f)o(e)&&h.set(e.id,await u(e,O(e)??d));let g=(e,t)=>{let{bounds:n}=h.get(e.id);return t-n.minY+A(e,i)+s-c(e,n).h/2},_=new Map,v=new Map(f.map(e=>[e.id,e])),y=[],b=[],x=new Map,S=(e,t)=>h.get(e)?.partial.has(t)??!1;e.edges.forEach((e,t)=>{let n=m(e.source),i=m(e.target);if(n===void 0&&i===void 0||n!==void 0&&n===i&&h.has(n)&&e.source!==n)return;let a,o;if(n===void 0||i===void 0){if(!r[d].gated)return;let e=xe(t,n===void 0?`in`:`out`);_.set(e,n===void 0?`in`:`out`),v.set(e,{id:e,name:``,attrs:[]}),a=n??e,o=i??e}else a=n,o=i;let s=y.length;y.push({source:a,target:o,name:n!==void 0&&i!==void 0?e.name:void 0,arity:i!==void 0&&!S(i,t)?e.arity:void 0}),b.push(t),S(a,t)&&x.set(`${s}:s`,g(v.get(a),h.get(a).partial.get(t).at(-1)[1])),S(o,t)&&x.set(`${s}:t`,g(v.get(o),h.get(o).partial.get(t)[0][1]))});let C=new Map;for(let[e,t]of h)C.set(e,c(v.get(e),t.bounds));for(let e of _.keys())C.set(e,{w:0,h:0});let w=await r[d].render({nodes:v,edges:y},i,{fixedSize:C,fixedPort:(e,t)=>x.get(`${e}:${t}`),gates:_});return l(w,h,y,b,_,d)};return(await u(null,n)).layout},Ce=34,we=e=>e.attrs.findLast(e=>e.key===`group`)?.val,Te=(e,t)=>{let n=Array.from(e.nodes.values());if(!n.some(e=>we(e)!==void 0))return null;let r=new Map,i=new Map;for(let a of n){let n=ye(t,a.id),o=we(e.nodes.get(n))??`default`,s=we(a);if(s!==void 0&&s!==o)throw Error(`node "${a.id}" cannot be a member of group "${s}", as its container "${n}" is a member of group "${o}"`);i.set(a.id,o);let c=r.get(o);c===void 0&&(c={nodes:new Map,edges:[]},r.set(o,c)),c.nodes.set(a.id,a)}for(let t of e.edges){let e=i.get(t.source),n=i.get(t.target);if(e!==n)throw Error(`edge "${t.source}" --> "${t.target}" crosses groups "${e}" and "${n}"`);r.get(e).edges.push(t)}return Array.from(r.entries()).map(([e,t])=>({name:e,graph:t}))},Ee=(e,t,n)=>{let r=n[`size-canvas-margin`],i=n[`group-box-padding`],a=n[`group-box-gap`],o=[],s=[],c=[],l=new Map,u=r;t.forEach((t,n)=>{let d=be(t),f=Math.max(d.maxX-d.minX+i*2,x(e[n].name,24)+i*2),p=d.maxY-d.minY+i*2+Ce;s.push(r+i-d.minX),c.push(u+Ce+i-d.minY);for(let e of t.nodes)l.set(e.id,n);o.push({name:e[n].name,x:r,y:u,w:f,h:p}),u+=p+a});let d=e=>new Map(t.flatMap(t=>Array.from(e(t).entries()))),f=e=>l.get(e);return{nodes:t.flatMap(e=>e.nodes),edges:t.flatMap(e=>e.edges),cx:e=>t[f(e)].cx(e)+s[f(e)],cy:e=>t[f(e)].cy(e)+c[f(e)],boxW:d(e=>e.boxW),boxH:d(e=>e.boxH),contentH:d(e=>e.contentH),polys:t.flatMap((e,t)=>e.polys.map(e=>e.map(([e,n])=>[e+s[t],n+c[t]]))),styleOf:e=>(t[f(e.id)].styleOf??T)(e),groups:o,containers:t.flatMap((e,t)=>(e.containers??[]).map(e=>({...e,x:e.x+s[t],y:e.y+c[t]})))}},De=l(s(((e,t)=>{(function(e,n,r){typeof define==`function`&&define.amd!==void 0?define(function(){return r(e)}):typeof t==`object`&&typeof t.exports==`object`?(t.exports=r(e),t.exports.default=t.exports):e[n]=r(e)})(e,`UUID`,function(){let e=function(e,t,n,r,i,a){let o=function(e,t){let n=e.toString(16);return n.length<2&&(n=`0`+n),t&&(n=n.toUpperCase()),n};for(let s=t;s<=n;s++)i[a++]=o(e[s],r);return i},t=function(e,t,n,r,i){for(let a=t;a<=n;a+=2)r[i++]=parseInt(e.substr(a,2),16)},n=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#`.split(``),r=[0,68,0,84,83,82,72,0,75,76,70,65,0,63,62,69,0,1,2,3,4,5,6,7,8,9,64,0,73,66,74,71,81,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,77,0,78,67,0,0,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,79,0,80,0,0],i=function(e,t){if(t%4!=0)throw Error(`z85_encode: invalid input length (multiple of 4 expected)`);let r=``,i=0,a=0;for(;i<t;)if(a=a*256+e[i++],i%4==0){let e=52200625;for(;e>=1;){let t=Math.floor(a/e)%85;r+=n[t],e/=85}a=0}return r},a=function(e,t){let n=e.length;if(n%5!=0)throw Error(`z85_decode: invalid input length (multiple of 5 expected)`);t===void 0&&(t=Array(n*4/5));let i=0,a=0,o=0;for(;i<n;){let n=e.charCodeAt(i++)-32;if(n<0||n>=r.length)break;if(o=o*85+r[n],i%5==0){let e=16777216;for(;e>=1;)t[a++]=Math.trunc(o/e%256),e/=256;o=0}}return t},o=function(e,t){let n={ibits:8,obits:8,obigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=[],i=0,a,o,s=0,c,l=0,u=e.length;for(;s===0&&(o=e.charCodeAt(i++)),a=o>>n.ibits-(s+8)&255,s=(s+8)%n.ibits,n.obigendian?l===0?c=a<<n.obits-8:c|=a<<n.obits-8-l:l===0?c=a:c|=a<<l,l=(l+8)%n.obits,!(l===0&&(r.push(c),i>=u)););return r},s=function(e,t){let n={ibits:32,ibigendian:!0};for(let e in t)n[e]!==void 0&&(n[e]=t[e]);let r=``,i=4294967295;n.ibits<32&&(i=(1<<n.ibits)-1);let a=e.length;for(let t=0;t<a;t++){let a=e[t]&i;for(let e=0;e<n.ibits;e+=8)n.ibigendian?r+=String.fromCharCode(a>>n.ibits-8-e&255):r+=String.fromCharCode(a>>e&255)}return r},c=function(e,t,n,r,i,a,o,s){return[s,o,a,i,r,n,t,e]},l=function(){return c(0,0,0,0,0,0,0,0)},u=function(e){return e.slice(0)},d=function(e){let t=l();for(let n=0;n<8;n++)t[n]=Math.floor(e%256),e/=256;return t},f=function(e){let t=0;for(let n=7;n>=0;n--)t*=256,t+=e[n];return Math.floor(t)},p=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]+t[r],e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},m=function(e,t){let n=0;for(let r=0;r<8;r++)n+=e[r]*t,e[r]=Math.floor(n%256),n=Math.floor(n/256);return n},h=function(e,t){let n,r,i=Array(16);for(n=0;n<16;n++)i[n]=0;let a;for(n=0;n<8;n++){for(a=0,r=0;r<8;r++)a+=e[n]*t[r]+i[n+r],i[n+r]=a%256,a/=256;for(;r<16-n;r++)a+=i[n+r],i[n+r]=a%256,a/=256}for(n=0;n<8;n++)e[n]=i[n];return i.slice(8,16)},g=function(e,t){for(let n=0;n<8;n++)e[n]&=t[n];return e},_=function(e,t){for(let n=0;n<8;n++)e[n]|=t[n];return e},v=function(e,t){let n=l();if(t%8!=0)throw Error(`ui64_rorn: only bit rotations supported with a multiple of digit bits`);let r=Math.floor(t/8);for(let t=0;t<r;t++){let t=6;for(;t>=0;t--)n[t+1]=n[t];for(n[0]=e[0],t=0;t<7;t++)e[t]=e[t+1];e[t]=0}return f(n)},y=function(e,t){if(t>64)throw Error(`ui64_ror: invalid number of bits to shift`);let n=Array(16),r=0;for(;r<8;r++)n[r+8]=e[r],n[r]=0;let i=Math.floor(t/8),a=t%8;for(r=i;r<15;r++)n[r-i]=(n[r]>>>a|n[r+1]<<8-a)&255;for(n[15-i]=n[15]>>>a&255,r=15-i+1;r<16;r++)n[r]=0;for(r=0;r<8;r++)e[r]=n[r+8];return n.slice(0,8)},b=function(e,t){if(t>64)throw Error(`ui64_rol: invalid number of bits to shift`);let n=Array(16),r=0;for(;r<8;r++)n[r+8]=0,n[r]=e[r];let i=Math.floor(t/8),a=t%8;for(r=7-i;r>0;r--)n[r+i]=(n[r]<<a|n[r-1]>>>8-a)&255;for(n[0+i]=n[0]<<a&255,r=0+i-1;r>=0;r--)n[r]=0;for(r=0;r<8;r++)e[r]=n[r];return n.slice(8,16)},x=function(e,t){for(let n=0;n<8;n++)e[n]^=t[n]},S=function(e,t){let n=(e&65535)+(t&65535);return(e>>16)+(t>>16)+(n>>16)<<16|n&65535},C=function(e,t){return e<<t&4294967295|e>>>32-t&4294967295},w=function(e,t){function n(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function r(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;let i=Array(80),a=1732584193,o=-271733879,s=-1732584194,c=271733878,l=-1009589776;for(let t=0;t<e.length;t+=16){let u=a,d=o,f=s,p=c,m=l;for(let u=0;u<80;u++){u<16?i[u]=e[t+u]:i[u]=C(i[u-3]^i[u-8]^i[u-14]^i[u-16],1);let d=S(S(C(a,5),n(u,o,s,c)),S(S(l,i[u]),r(u)));l=c,c=s,s=C(o,30),o=a,a=d}a=S(a,u),o=S(o,d),s=S(s,f),c=S(c,p),l=S(l,m)}return[a,o,s,c,l]},T=function(e){return s(w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8),{ibits:32,ibigendian:!0})},E=function(e,t){function n(e,t,n,r,i,a){return S(C(S(S(t,e),S(r,a)),i),n)}function r(e,t,r,i,a,o,s){return n(t&r|~t&i,e,t,a,o,s)}function i(e,t,r,i,a,o,s){return n(t&i|r&~i,e,t,a,o,s)}function a(e,t,r,i,a,o,s){return n(t^r^i,e,t,a,o,s)}function o(e,t,r,i,a,o,s){return n(r^(t|~i),e,t,a,o,s)}e[t>>5]|=128<<t%32,e[(t+64>>>9<<4)+14]=t;let s=1732584193,c=-271733879,l=-1732584194,u=271733878;for(let t=0;t<e.length;t+=16){let n=s,d=c,f=l,p=u;s=r(s,c,l,u,e[t+0],7,-680876936),u=r(u,s,c,l,e[t+1],12,-389564586),l=r(l,u,s,c,e[t+2],17,606105819),c=r(c,l,u,s,e[t+3],22,-1044525330),s=r(s,c,l,u,e[t+4],7,-176418897),u=r(u,s,c,l,e[t+5],12,1200080426),l=r(l,u,s,c,e[t+6],17,-1473231341),c=r(c,l,u,s,e[t+7],22,-45705983),s=r(s,c,l,u,e[t+8],7,1770035416),u=r(u,s,c,l,e[t+9],12,-1958414417),l=r(l,u,s,c,e[t+10],17,-42063),c=r(c,l,u,s,e[t+11],22,-1990404162),s=r(s,c,l,u,e[t+12],7,1804603682),u=r(u,s,c,l,e[t+13],12,-40341101),l=r(l,u,s,c,e[t+14],17,-1502002290),c=r(c,l,u,s,e[t+15],22,1236535329),s=i(s,c,l,u,e[t+1],5,-165796510),u=i(u,s,c,l,e[t+6],9,-1069501632),l=i(l,u,s,c,e[t+11],14,643717713),c=i(c,l,u,s,e[t+0],20,-373897302),s=i(s,c,l,u,e[t+5],5,-701558691),u=i(u,s,c,l,e[t+10],9,38016083),l=i(l,u,s,c,e[t+15],14,-660478335),c=i(c,l,u,s,e[t+4],20,-405537848),s=i(s,c,l,u,e[t+9],5,568446438),u=i(u,s,c,l,e[t+14],9,-1019803690),l=i(l,u,s,c,e[t+3],14,-187363961),c=i(c,l,u,s,e[t+8],20,1163531501),s=i(s,c,l,u,e[t+13],5,-1444681467),u=i(u,s,c,l,e[t+2],9,-51403784),l=i(l,u,s,c,e[t+7],14,1735328473),c=i(c,l,u,s,e[t+12],20,-1926607734),s=a(s,c,l,u,e[t+5],4,-378558),u=a(u,s,c,l,e[t+8],11,-2022574463),l=a(l,u,s,c,e[t+11],16,1839030562),c=a(c,l,u,s,e[t+14],23,-35309556),s=a(s,c,l,u,e[t+1],4,-1530992060),u=a(u,s,c,l,e[t+4],11,1272893353),l=a(l,u,s,c,e[t+7],16,-155497632),c=a(c,l,u,s,e[t+10],23,-1094730640),s=a(s,c,l,u,e[t+13],4,681279174),u=a(u,s,c,l,e[t+0],11,-358537222),l=a(l,u,s,c,e[t+3],16,-722521979),c=a(c,l,u,s,e[t+6],23,76029189),s=a(s,c,l,u,e[t+9],4,-640364487),u=a(u,s,c,l,e[t+12],11,-421815835),l=a(l,u,s,c,e[t+15],16,530742520),c=a(c,l,u,s,e[t+2],23,-995338651),s=o(s,c,l,u,e[t+0],6,-198630844),u=o(u,s,c,l,e[t+7],10,1126891415),l=o(l,u,s,c,e[t+14],15,-1416354905),c=o(c,l,u,s,e[t+5],21,-57434055),s=o(s,c,l,u,e[t+12],6,1700485571),u=o(u,s,c,l,e[t+3],10,-1894986606),l=o(l,u,s,c,e[t+10],15,-1051523),c=o(c,l,u,s,e[t+1],21,-2054922799),s=o(s,c,l,u,e[t+8],6,1873313359),u=o(u,s,c,l,e[t+15],10,-30611744),l=o(l,u,s,c,e[t+6],15,-1560198380),c=o(c,l,u,s,e[t+13],21,1309151649),s=o(s,c,l,u,e[t+4],6,-145523070),u=o(u,s,c,l,e[t+11],10,-1120210379),l=o(l,u,s,c,e[t+2],15,718787259),c=o(c,l,u,s,e[t+9],21,-343485551),s=S(s,n),c=S(c,d),l=S(l,f),u=S(u,p)}return[s,c,l,u]},D=function(e){return s(E(o(e,{ibits:8,obits:32,obigendian:!1}),e.length*8),{ibits:32,ibigendian:!1})},O=function(e){this.mul=c(88,81,244,45,76,149,127,45),this.inc=c(20,5,123,126,247,103,129,79),this.mask=c(0,0,0,0,255,255,255,255),this.state=u(this.inc),this.next(),g(this.state,this.mask);let t;e===void 0?typeof window==`object`&&typeof window.crypto==`object`&&typeof window.crypto.getRandomValues==`function`?(t=new Uint32Array(2),window.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):typeof globalThis==`object`&&typeof globalThis.crypto==`object`&&typeof globalThis.crypto.getRandomValues==`function`?(t=new Uint32Array(2),globalThis.crypto.getRandomValues(t),e=_(d(t[0]>>>0),y(d(t[1]>>>0),32))):(e=d(Math.random()*4294967295>>>0),_(e,y(d(new Date().getTime()),32))):e=d(e>>>0),_(this.state,e),this.next()};O.prototype.next=function(){let e=u(this.state);h(this.state,this.mul),p(this.state,this.inc);let t=u(e);y(t,18),x(t,e),y(t,27);let n=u(e);y(n,59),g(t,this.mask);let r=f(n),i=u(t);return b(i,32-r),y(t,r),x(t,i),f(t)},O.prototype.reseed=function(e){if(typeof e!=`string`)throw Error(`UUID: PCG: seed: invalid argument (string expected)`);let t=w(o(e,{ibits:8,obits:32,obigendian:!0}),e.length*8);for(let e=0;e<t.length;e++)x(k.state,d(t[e]>>>0))};let k=new O;O.reseed=function(e){k.reseed(e)};let A=function(e,t){let n=[];for(let r=0;r<e;r++)n[r]=k.next()%t;return n},j=0,M=0,N=function(){if(arguments.length===1&&typeof arguments[0]==`string`)this.parse.apply(this,arguments);else if(arguments.length>=1&&typeof arguments[0]==`number`)this.make.apply(this,arguments);else if(arguments.length>=1)throw Error(`UUID: constructor: invalid arguments`);else for(let e=0;e<16;e++)this[e]=0};return N.prototype=typeof Uint8Array<`u`?new Uint8Array(16):typeof Buffer<`u`?Buffer.alloc(16):Array(16),N.prototype.constructor=N,N.prototype.make=function(e){let t,n=this;if(e===1){let e=new Date().getTime();e===j?M++:M=0,j=e;let r=d(e);m(r,1e4),p(r,c(1,178,29,210,19,129,64,0)),M>0&&p(r,d(M));let i;i=v(r,8),n[3]=i&255,i=v(r,8),n[2]=i&255,i=v(r,8),n[1]=i&255,i=v(r,8),n[0]=i&255,i=v(r,8),n[5]=i&255,i=v(r,8),n[4]=i&255,i=v(r,8),n[7]=i&255,i=v(r,8),n[6]=i&15;let a=A(2,255);n[8]=a[0],n[9]=a[1];let o=A(6,255);for(o[0]|=3,t=0;t<6;t++)n[10+t]=o[t]}else if(e===4){let e=A(16,255);for(t=0;t<16;t++)this[t]=e[t]}else if(e===3||e===5){let r=``,i=typeof arguments[1]==`object`&&arguments[1]instanceof N?arguments[1]:new N().parse(arguments[1]);for(t=0;t<16;t++)r+=String.fromCharCode(i[t]);r+=arguments[2];let a=e===3?D(r):T(r);for(t=0;t<16;t++)n[t]=a.charCodeAt(t)}else throw Error(`UUID: make: invalid version`);return n[6]&=15,n[6]|=e<<4,n[8]&=63,n[8]|=128,n},N.prototype.format=function(t){let n,r;if(t===`z85`)n=i(this,16);else if(t===`b16`)r=Array(32),e(this,0,15,!0,r,0),n=r.join(``);else if(t===void 0||t===`std`)r=Array(36),e(this,0,3,!1,r,0),r[8]=`-`,e(this,4,5,!1,r,9),r[13]=`-`,e(this,6,7,!1,r,14),r[18]=`-`,e(this,8,9,!1,r,19),r[23]=`-`,e(this,10,15,!1,r,24),n=r.join(``);else throw Error(`UUID: format: invalid type argument`);return n},N.prototype.toString=function(e){return this.format(e)},N.prototype.toJSON=function(){return this.format(`std`)},N.prototype.parse=function(e,n){if(typeof e!=`string`)throw Error(`UUID: parse: invalid argument (type string expected)`);if(n===`z85`)a(e,this);else if(n===`b16`)t(e,0,35,this,0);else if(n===void 0||n===`std`){let n={nil:`00000000-0000-0000-0000-000000000000`,"ns:DNS":`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,"ns:URL":`6ba7b811-9dad-11d1-80b4-00c04fd430c8`,"ns:OID":`6ba7b812-9dad-11d1-80b4-00c04fd430c8`,"ns:X500":`6ba7b814-9dad-11d1-80b4-00c04fd430c8`};if(n[e]!==void 0)e=n[e];else if(!e.match(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/))throw Error(`UUID: parse: invalid string representation (expected "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")`);t(e,0,7,this,0),t(e,9,12,this,4),t(e,14,17,this,6),t(e,19,22,this,8),t(e,24,35,this,10)}return this},N.prototype.export=function(){let e=Array(16);for(let t=0;t<16;t++)e[t]=this[t];return e},N.prototype.import=function(e){if(!(typeof e==`object`&&e instanceof Array))throw Error(`UUID: import: invalid argument (type Array expected)`);if(e.length!==16)throw Error(`UUID: import: invalid argument (Array of length 16 expected)`);for(let t=0;t<16;t++){if(typeof e[t]!=`number`)throw Error(`UUID: import: invalid array element #`+t+` (type Number expected)`);if(!(isFinite(e[t])&&Math.floor(e[t])===e[t]))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value expected)`);if(!(e[t]>=0&&e[t]<=255))throw Error(`UUID: import: invalid array element #`+t+` (Number with integer value in range 0...255 expected)`);this[t]=e[t]}return this},N.prototype.compare=function(e){if(typeof e!=`object`||!(e instanceof N))throw Error(`UUID: compare: invalid argument (type UUID expected)`);for(let t=0;t<16;t++)if(this[t]<e[t])return-1;else if(this[t]>e[t])return 1;return 0},N.prototype.equal=function(e){return this.compare(e)===0},N.prototype.fold=function(e){if(e===void 0)throw Error(`UUID: fold: invalid argument (number of fold operations expected)`);if(e<1||e>4)throw Error(`UUID: fold: invalid argument (1-4 fold operations expected)`);let t=16/2**e,n=Array(t);for(let e=0;e<t;e++){let r=0;for(let n=0;e+n<16;n+=t)r^=this[e+n];n[e]=r}return n},N.PCG=O,N})}))(),1),Oe=e=>e.replace(/[\\"']/g,`\\$&`).replace(/[\r\n\f]/g,` `),ke=new De.default(5,`ns:URL`,`https://github.com/rse/gradia`).format(),Ae=e=>`gradia-${new De.default(5,ke,e).format(`b16`).toLowerCase().slice(0,12)}`,je=18,Me=12,Ne=2,Pe=12,Fe=8,Ie=3,Le=(e,t,n,r)=>{let{nodes:i,cx:a,cy:o,boxW:s,boxH:c}=e,l=i.map(e=>[a(e.id)-s.get(e.id)/2,o(e.id)-c.get(e.id)/2,a(e.id)+s.get(e.id)/2,o(e.id)+c.get(e.id)/2]);for(let t of e.groups??[])l.push([t.x+je,t.y+Me,t.x+je+x(t.name,24),t.y+Me+24*1.2]);for(let t of e.containers??[])l.push([t.x+je,t.y+Me,t.x+je+x(t.node.name,24),t.y+A(t.node,r)]);let u=e.polys.map((e,r)=>{let i=[];for(let a=0;a<e.length-1;a++){let[o,s]=[e[a],e[a+1]];i.push([Math.min(o[0],s[0])-Ne,Math.min(o[1],s[1])-Ne,Math.max(o[0],s[0])+Ne,Math.max(o[1],s[1])+Ne]);for(let e of t[r].get(a)??[])i.push([e-n,o[1]-n,e+n,o[1]])}return i}),d=u.reduce((e,t)=>e+t.length,0),f=(e,t)=>e.filter(e=>t[0]<e[2]&&t[2]>e[0]&&t[1]<e[3]&&t[3]>e[1]).length,p=(e,t)=>{let n=[e[0]-Pe,e[1]-Pe,e[2]+Pe,e[3]+Pe];return u.reduce((r,i,a)=>r+f(i,a===t?e:n),0)};return{claim:(e,t,n=!0)=>{let r=e[0],i=1/0;for(let a of e){let e=f(l,a)*(d+1)+(n?p(a,t):0);if(e<i&&(r=a,i=e),e===0)break}return l.push(r),r},occupied:l}},Re=(e,t,n,r,i)=>{let{cx:a,cy:o,boxW:s,boxH:c,contentH:l}=t,u=s.get(e.id),d=c.get(e.id),f=a(e.id)-u/2,p=o(e.id)-d/2,m=ne(e,i),h=F(e),g=[];g.push(`<rect x="${f}" y="${p}" width="${u}" height="${d}" rx="6" class="${r.box(n.fill,n.stroke,4)}"${n.dash===void 0?``:` stroke-dasharray="${C(n.dash)}"`}/>`);let _=o(e.id)-l.get(e.id)/2,v=m.type.length*z(i),y=(m.name.length-1)*L(i),b=i[`size-font-node`]*.36,x=m.attrs.length>0?_+v+I(i)/2+b:o(e.id)+v/2+b-y/2;return m.type.forEach((t,o)=>{g.push(`<text x="${a(e.id)}" y="${x-te(i)-(m.type.length-1-o)*z(i)}" class="${r.text(n.text,`size-font-type`,{middle:!0})}">${C(t)}</text>`)}),m.name.forEach((t,o)=>{g.push(`<text x="${a(e.id)}" y="${x+o*L(i)}" class="${r.text(n.text,`size-font-node`,{bold:!0,middle:!0})}">${C(t)}</text>`)}),m.attrs.forEach((t,o)=>{g.push(`<text x="${a(e.id)}" y="${_+v+y+I(i)+12+o*R(i)}" class="${r.text(n.text,`size-font-prop`,{middle:!0})}">${C(t)}</text>`)}),h===void 0?g:[`<a href="${C(h)}" xlink:href="${C(h)}">`,...g,`</a>`]},ze=(e,t,n)=>{let{polys:r}=e,[i,a,o,s]=[1/0,1/0,-1/0,-1/0];for(let[e,n,r,c]of t)i=Math.min(i,e),a=Math.min(a,n),o=Math.max(o,r),s=Math.max(s,c);for(let e of r)for(let[t,n]of e)i=Math.min(i,t),a=Math.min(a,n),o=Math.max(o,t),s=Math.max(s,n);return Number.isFinite(i)||([i,a,o,s]=[0,0,0,0]),{x:Math.floor(i-n/2),y:Math.floor(a-n/2),w:Math.ceil(o-i+n),h:Math.ceil(s-a+n)}},Be=(e,t,n,r,i)=>{let a=[];if(e.name!==void 0){let o=x(e.name,i[`size-font-edge`]),s=i[`size-font-edge`]+4,c=[];for(let e of[.5,.4,.6,.3,.7,.2,.8]){let n=_e(t,e);n.horizontal?(c.push([n.x-o/2,n.y-3-s,n.x+o/2,n.y-3]),c.push([n.x-o/2,n.y+3,n.x+o/2,n.y+3+s])):(c.push([n.x+5,n.y-s/2,n.x+5+o,n.y+s/2]),c.push([n.x-5-o,n.y-s/2,n.x-5,n.y+s/2]))}let l=n(c);a.push(`<text x="${(l[0]+l[2])/2}" y="${l[3]-3}" class="${r.text(`color-edge-name`,`size-font-edge`,{middle:!0,halo:!0})}">${C(e.name)}</text>`)}if(e.arity!==void 0){let o=x(e.arity,i[`size-font-arity`]),s=b(i),c=_e(t,1),l=_e(t,.999),u=[];for(let e=0;e<Ie;e++){let t=e*((c.horizontal?o:s)+Fe);if(c.horizontal){let e=Math.sign(c.x-l.x)||1,n=c.x-e*(24+o/2+t);u.push([n-o/2,c.y-4-s,n+o/2,c.y-4]),u.push([n-o/2,c.y+4,n+o/2,c.y+4+s])}else{let e=Math.sign(c.y-l.y)||1,n=c.y-e*(24+t);u.push([c.x+6,n+6-s,c.x+6+o,n+6]),u.push([c.x-6-o,n+6-s,c.x-6,n+6])}}let d=n(u,!1);a.push(`<text x="${(d[0]+d[2])/2}" y="${d[3]-3}" class="${r.text(`color-edge-arity`,`size-font-arity`,{middle:!0,halo:!0})}">${C(e.arity)}</text>`)}return a},Ve=(e,t)=>[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" class="${t.box(`color-group-box`,`color-group-border`,3)}"/>`,`<text x="${e.x+je}" y="${e.y+Me+24}" class="${t.text(`color-group-name`,24,{bold:!0})}">${C(e.name)}</text>`],He=(e,t,n)=>{let r=E(e.node),i=F(e.node),a=[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" class="${t.box(`color-container-box`,`color-container-border`,3)}" stroke-dasharray="10 6"/>`,...r===void 0?[]:[`<text x="${e.x+je}" y="${e.y+Me+n[`size-font-type`]}" class="${t.text(`color-container-name`,`size-font-type`)}">${C(r)}</text>`],`<text x="${e.x+je}" y="${e.y+A(e.node,n)-34+Me+24}" class="${t.text(`color-container-name`,24,{bold:!0})}">${C(e.node.name)}</text>`];return i===void 0?a:[`<a href="${C(i)}" xlink:href="${C(i)}">`,...a,`</a>`]},Ue=(e,t,n,r)=>{let{nodes:i,edges:a,polys:o}=e,s=e.groups??[],c=e.containers??[],l=e.styleOf??T,u=e=>h(n,e),d=`${Ae(r)}-arrow`,{family:f,embed:p,weight:g}=y(t),_=`${Object.hasOwn(n,`font-family`)?`'${Oe(f)}'`:`var(--gradia-font-family, '${Oe(f)}')`}, ui-sans-serif, -apple-system, Helvetica, Arial, sans-serif`,v=new Map,b=e=>{let t=v.get(e);return t===void 0&&(t=`gradia-${new De.default(5,ke,e).format(`b16`).toLowerCase().slice(0,8)}`,v.set(e,t)),t},x={text:(e,n,r={})=>b(`font-family: ${_}; font-size: ${typeof n==`number`?`${n}px`:m(t,n)}; `+(r.bold?`font-weight: 600; `:``)+(r.middle?`text-anchor: middle; `:``)+`fill: ${u(e)}`+(r.halo?`; stroke: ${u(`color-edge-halo`)}; stroke-width: 4.5; paint-order: stroke; stroke-linejoin: round`:``)),box:(e,t,n)=>b(`fill: ${u(e)}; stroke: ${u(t)}; stroke-width: ${n}`)},S=b(`fill: none; stroke: ${u(`color-edge-line`)}; stroke-width: 3`),w=b(`fill: ${u(`color-edge-line`)}`),E=me(o),{claim:D,occupied:O}=Le(e,E,t[`size-edge-hop-radius`],t),k=[],A=[];a.forEach((e,n)=>{k.push(`<path d="${ge(o[n],E[n],t[`size-edge-corner-radius`],t[`size-edge-hop-radius`])}" class="${S}" marker-end="url(#${d})"/>`),A.push(...Be(e,o[n],(e,t)=>D(e,n,t),x,t))});let j=i.flatMap(n=>Re(n,e,l(n),x,t)),M=s.flatMap(e=>Ve(e,x)),N=c.flatMap(e=>He(e,x,t)),ee=s.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),P=c.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),F=ze(e,[...O,...ee,...P],t[`size-canvas-margin`]);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="${F.x} ${F.y} ${F.w} ${F.h}" width="${F.w}" height="${F.h}">`,`<defs>`,`<style>`,...p===void 0?[]:[`@font-face { font-family: "${C(Oe(f))}"; `+(g===void 0?``:`font-weight: ${C(Oe(g))}; `)+`src: url(data:font/woff2;base64,${p}) format("woff2"); }`],...Array.from(v,([e,t])=>`.${t} { ${C(e)} }`),`</style>`,`<marker id="${d}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="21" markerHeight="21" markerUnits="userSpaceOnUse" orient="auto-start-reverse">`,`<path d="M 0 1 L 9 5 L 0 9 z" class="${w}"/>`,`</marker>`,`</defs>`,...M,...N,...k,...j,...A,`</svg>`,``].join(`
|
|
5
|
+
`)};function We(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}var Ge={abs:Math.abs,ceil:Math.ceil,floor:Math.floor,max:Math.max,min:Math.min,round:Math.round,sqrt:Math.sqrt,pow:Math.pow},V=class extends Error{constructor(e,t,n){super(e),this.position=t,this.token=n,this.name=`ExpressionError`}},H;(function(e){e[e.STRING=0]=`STRING`,e[e.NUMBER=1]=`NUMBER`,e[e.BOOLEAN=2]=`BOOLEAN`,e[e.NULL=3]=`NULL`,e[e.IDENTIFIER=4]=`IDENTIFIER`,e[e.OPERATOR=5]=`OPERATOR`,e[e.FUNCTION=6]=`FUNCTION`,e[e.DOT=7]=`DOT`,e[e.BRACKET_LEFT=8]=`BRACKET_LEFT`,e[e.BRACKET_RIGHT=9]=`BRACKET_RIGHT`,e[e.PAREN_LEFT=10]=`PAREN_LEFT`,e[e.PAREN_RIGHT=11]=`PAREN_RIGHT`,e[e.COMMA=12]=`COMMA`,e[e.QUESTION=13]=`QUESTION`,e[e.COLON=14]=`COLON`,e[e.DOLLAR=15]=`DOLLAR`})(H||={});var Ke=new Set([32,9,10,13]),qe=new Set([43,45,42,47,37,33,38,124,61,60,62]),Je=new Map([[`true`,H.BOOLEAN],[`false`,H.BOOLEAN],[`null`,H.NULL]]),Ye=new Map([[`===`,!0],[`!==`,!0],[`<=`,!0],[`>=`,!0],[`&&`,!0],[`||`,!0],[`+`,!0],[`-`,!0],[`*`,!0],[`/`,!0],[`%`,!0],[`!`,!0],[`<`,!0],[`>`,!0]]),Xe=new Map([[46,H.DOT],[91,H.BRACKET_LEFT],[93,H.BRACKET_RIGHT],[40,H.PAREN_LEFT],[41,H.PAREN_RIGHT],[44,H.COMMA],[63,H.QUESTION],[58,H.COLON],[36,H.DOLLAR]]),Ze=new Map;for(let[e,t]of Xe.entries())Ze.set(e,{type:t,value:String.fromCharCode(e)});function Qe(e){return e>=48&&e<=57}function $e(e){return e>=97&&e<=122||e>=65&&e<=90||e===95}function et(e){return $e(e)||Qe(e)}function tt(e){return qe.has(e)}var U;(function(e){e[e.Program=0]=`Program`,e[e.Literal=1]=`Literal`,e[e.Identifier=2]=`Identifier`,e[e.MemberExpression=3]=`MemberExpression`,e[e.CallExpression=4]=`CallExpression`,e[e.BinaryExpression=5]=`BinaryExpression`,e[e.UnaryExpression=6]=`UnaryExpression`,e[e.ConditionalExpression=7]=`ConditionalExpression`})(U||={});var nt=new Map([[`||`,2],[`&&`,3],[`===`,4],[`!==`,4],[`>`,5],[`>=`,5],[`<`,5],[`<=`,5],[`+`,6],[`-`,6],[`*`,7],[`/`,7],[`%`,7],[`!`,8]]),rt={type:U.Literal,value:null},it={type:U.Literal,value:!0},at={type:U.Literal,value:!1},ot=e=>{let t=0,n=e.length,r=()=>t>=n?null:e[t],i=()=>e[t++],a=e=>{let t=r();return t!==null&&t.type===e},o=e=>e.type===H.OPERATOR?nt.get(e.value)||-1:e.type===H.DOT||e.type===H.BRACKET_LEFT?9:e.type===H.QUESTION?1:-1,s=e=>{let n,o;if(i().type===H.DOT){if(!a(H.IDENTIFIER)){let e=r();throw new V(`Expected property name`,t,e?e.value:`<end of input>`)}let e=i();n={type:U.Identifier,name:e.value},o=!1}else{if(n=l(0),!a(H.BRACKET_RIGHT)){let e=r();throw new V(`Expected closing bracket`,t,e?e.value:`<end of input>`)}i(),o=!0}return{type:U.MemberExpression,object:e,property:n,computed:o}},c=()=>{let e=r();if(!e)throw new V(`Unexpected end of input`,t,`<end of input>`);if(e.type===H.OPERATOR&&(e.value===`!`||e.value===`-`)){i();let t=c();return{type:U.UnaryExpression,operator:e.value,argument:t,prefix:!0}}switch(e.type){case H.NUMBER:return i(),{type:U.Literal,value:Number(e.value)};case H.STRING:return i(),{type:U.Literal,value:e.value};case H.BOOLEAN:return i(),e.value===`true`?it:at;case H.NULL:return i(),rt;case H.IDENTIFIER:return i(),{type:U.Identifier,name:e.value};case H.FUNCTION:return(()=>{let e=i(),n=[];if(!a(H.PAREN_LEFT)){let e=r();throw new V(`Expected opening parenthesis after function name`,t,e?e.value:`<end of input>`)}for(i();;){if(a(H.PAREN_RIGHT)){i();break}if(!r()){let e=r();throw new V(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}if(n.length>0){if(!a(H.COMMA)){let e=r();throw new V(`Expected comma between function arguments`,t,e?e.value:`<end of input>`)}i()}let e=l(0);n.push(e)}return{type:U.CallExpression,callee:{type:U.Identifier,name:e.value},arguments:n}})();case H.PAREN_LEFT:{i();let e=l(0);if(!a(H.PAREN_RIGHT)){let e=r();throw new V(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}return i(),e}default:throw new V(`Unexpected token: ${e.type}`,t,e.value)}},l=(u=0)=>{let d=c();for(;t<n;){let n=e[t],c=o(n);if(c<=u)break;if(n.type!==H.QUESTION){if(n.type!==H.OPERATOR){if(n.type!==H.DOT&&n.type!==H.BRACKET_LEFT)break;d=s(d)}else{i();let e=l(c);d={type:U.BinaryExpression,operator:n.value,left:d,right:e}}}else{i();let e=l(0);if(!a(H.COLON)){let e=r();throw new V(`Expected : in conditional expression`,t,e?e.value:`<end of input>`)}i();let n=l(0);d={type:U.ConditionalExpression,test:d,consequent:e,alternate:n}}}return d},u=l();return{type:U.Program,body:u}},st=(e,t,n)=>{let r=t;n&&(r={...t,context:{...t.context,...n}});let i=e=>{switch(e.type){case U.Literal:return(e=>e.value)(e);case U.Identifier:return(e=>{if(!(e.name in r.context))throw new V(`Undefined variable: ${e.name}`);return r.context[e.name]})(e);case U.MemberExpression:return(e=>{let t=i(e.object);if(t==null)throw new V(`Cannot access property of null or undefined`);return t[e.computed?i(e.property):e.property.name]})(e);case U.CallExpression:return(e=>{let t=r.functions[e.callee.name];if(!t)throw new V(`Undefined function: ${e.callee.name}`);return t(...e.arguments.map((e=>i(e))))})(e);case U.BinaryExpression:return(e=>{if(e.operator===`&&`)return i(e.left)&&i(e.right);if(e.operator===`||`)return i(e.left)||i(e.right);let t=i(e.left),n=i(e.right);switch(e.operator){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return t/n;case`%`:return t%n;case`===`:return t===n;case`!==`:return t!==n;case`>`:return t>n;case`>=`:return t>=n;case`<`:return t<n;case`<=`:return t<=n;default:throw new V(`Unknown operator: ${e.operator}`)}})(e);case U.UnaryExpression:return(e=>{let t=i(e.argument);if(e.prefix)switch(e.operator){case`!`:return!t;case`-`:if(typeof t!=`number`)throw new V(`Cannot apply unary - to non-number: ${t}`);return-t;default:throw new V(`Unknown operator: ${e.operator}`)}throw new V(`Postfix operators are not supported: ${e.operator}`)})(e);case U.ConditionalExpression:return(e=>{let t=i(e.test);return i(t?e.consequent:e.alternate)})(e);default:throw new V(`Evaluation error: Unsupported node type: ${e.type}`)}};return i(e.body)};function ct(e){let t=ot((e=>{let t=e,n=t.length,r=Array(Math.ceil(n/3)),i=0,a=0;function o(e){let r=a+1;a++;let i=``,o=!1;for(;a<n;){let n=t.charCodeAt(a);if(n===e)return o||(i=t.substring(r,a)),a++,{type:H.STRING,value:i};n===92?(o||=(i=t.substring(r,a),!0),a++,i+=t[a]):o&&(i+=t[a]),a++}throw new V(`Unterminated string starting with ${String.fromCharCode(e)}`,a,t.substring(Math.max(0,a-10),a))}function s(){let e=a;for(t.charCodeAt(a)===45&&a++;a<n&&Qe(t.charCodeAt(a));)a++;if(a<n&&t.charCodeAt(a)===46)for(a++;a<n&&Qe(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:H.NUMBER,value:r}}function c(){a++;let e=a;if(a<n&&$e(t.charCodeAt(a)))for(a++;a<n&&et(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:H.FUNCTION,value:r}}function l(){let e=a++;for(;a<n&&et(t.charCodeAt(a));)a++;let r=t.slice(e,a),i=Je.get(r);return i?{type:i,value:r}:{type:H.IDENTIFIER,value:r}}function u(){if(a+2<n){let e=t.substring(a,a+3);if(Ye.has(e))return a+=3,{type:H.OPERATOR,value:e}}if(a+1<n){let e=t.substring(a,a+2);if(Ye.has(e))return a+=2,{type:H.OPERATOR,value:e}}let e=t[a];if(Ye.has(e))return a++,{type:H.OPERATOR,value:e};throw new V(`Unknown operator at position ${a}: ${t.substring(a,a+1)}`,a,t.substring(Math.max(0,a-10),a))}for(;a<n;){let e=t.charCodeAt(a);if(d=e,Ke.has(d)){a++;continue}let f=Ze.get(e);if(f)r[i++]=f,a++;else if(e!==34&&e!==39){if(Qe(e)||e===45&&a+1<n&&Qe(t.charCodeAt(a+1)))r[i++]=s();else if(e!==64){if($e(e))r[i++]=l();else{if(!tt(e))throw new V(`Unexpected character: ${t[a]}`,a,t.substring(Math.max(0,a-10),a));r[i++]=u()}}else r[i++]=c()}else r[i++]=o(e)}var d;return i===r.length?r:r.slice(0,i)})(e)),n=((e={},t={})=>({context:e,functions:t}))({},Ge);return(e={})=>st(t,n,e)}function lt(e,t={}){return ct(e)(t)}function ut(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)try{return ct(n),lt(n,t)}catch{return}}function dt(e){return typeof e==`number`}function ft(e){if(!e)return[0,0,0];if(dt(e))return[e,e,e];if(Array.isArray(e)&&e.length===0)return[0,0,0];let[t,n=t,r=t]=e;return[t,n,r]}function pt(e){return dt(e)?!0:Array.isArray(e)?e.every(e=>dt(e)):!1}function W(e){return e==null}function mt(e){return typeof e==`string`}function ht(e){return typeof e==`function`}function gt(e,t){if(typeof e==`function`)return e;if(typeof e==`string`){let n=e;return(...e)=>{let r={};for(let n=0;n<t.length;n++)r[t[n]]=e[n];return ut(n,r)}}return()=>e}function _t(e,t,n=`node`){if(W(e))return()=>t;if(mt(e)){let r=gt(e,[n]);return e=>{let n=r(e);return dt(n)?n:t}}return ht(e)?e:dt(e)?()=>e:()=>t}function vt(e,t=10,n=`node`){if(W(e))return()=>t;if(mt(e)){let r=gt(e,[n]);return e=>{let n=r(e);return pt(n)?n:t}}return ht(e)?e:dt(e)||Array.isArray(e)?()=>e:()=>t}function yt(e){return[e.x,e.y,e.z??0]}var bt=class{constructor(e,t={}){this.edgeIdCounter=new Map,this.nodeMap=Ct(e.nodes,t.node),this.edgeMap=wt(e.edges||[],t.edge,this.getEdgeId.bind(this))}data(){return{nodes:this.nodeMap,edges:this.edgeMap}}replace(e){this.nodeMap=e.nodes,this.edgeMap=e.edges,this.clearCache()}nodes(){return Array.from(this.nodeMap.values())}node(e){return this.nodeMap.get(e)}nodeAt(e){this.indexNodeCache||this.buildNodeIndexCache();let t=this.indexNodeCache.get(e);return t?this.nodeMap.get(t):void 0}nodeIndexOf(e){return this.nodeIndexCache||this.buildNodeIndexCache(),this.nodeIndexCache.get(e)??-1}firstNode(){return this.nodeMap.values().next().value}forEachNode(e){let t=0;this.nodeMap.forEach(n=>e(n,t++))}originalNode(e){return this.nodeMap.get(e)?._original}nodeCount(){return this.nodeMap.size}edges(){return Array.from(this.edgeMap.values())}edge(e){return this.edgeMap.get(e)}firstEdge(){return this.edgeMap.values().next().value}forEachEdge(e){let t=0;this.edgeMap.forEach(n=>e(n,t++))}originalEdge(e){return this.edgeMap.get(e)?._original}edgeCount(){return this.edgeMap.size}getEdgeId(e){if(e.id)return e.id;let t=`${e.source}-${e.target}`,n=this.edgeIdCounter.get(t)||0,r=n===0?t:`${t}-${n}`;return this.edgeIdCounter.set(t,n+1),r}degree(e,t=`both`){this.degreeCache||this.buildDegreeCache();let n=this.degreeCache.get(e);return n?n[t]:0}neighbors(e,t=`both`){if((!this.outAdjacencyCache||!this.inAdjacencyCache)&&this.buildAdjacencyCache(),t===`out`)return Array.from(this.outAdjacencyCache.get(e)||[]);if(t===`in`)return Array.from(this.inAdjacencyCache.get(e)||[]);if(this.bothAdjacencyCache)return Array.from(this.bothAdjacencyCache.get(e)||[]);let n=this.inAdjacencyCache.get(e),r=this.outAdjacencyCache.get(e);if(!n&&!r)return[];if(!n)return Array.from(r);if(!r)return Array.from(n);let i=new Set;return n.forEach(e=>i.add(e)),r.forEach(e=>i.add(e)),Array.from(i)}successors(e){return this.neighbors(e,`out`)}predecessors(e){return this.neighbors(e,`in`)}setNodeOrder(e){let t=new Map;for(let n of e)t.set(n.id,n);this.nodeMap=t,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}clearCache(){this.degreeCache=void 0,this.inAdjacencyCache=void 0,this.outAdjacencyCache=void 0,this.bothAdjacencyCache=void 0,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}buildDegreeCache(){this.degreeCache=new Map;for(let e of this.edges()){let{source:t,target:n}=e;if(e.source===e.target)continue;this.degreeCache.has(t)||this.degreeCache.set(t,{in:0,out:0,both:0});let r=this.degreeCache.get(e.source);r&&(r.out++,r.both++),this.degreeCache.has(n)||this.degreeCache.set(n,{in:0,out:0,both:0});let i=this.degreeCache.get(e.target);i&&(i.in++,i.both++)}}buildAdjacencyCache(){this.inAdjacencyCache=new Map,this.outAdjacencyCache=new Map;for(let e of this.edges())this.nodeMap.has(e.source)&&this.nodeMap.has(e.target)&&(this.outAdjacencyCache.has(e.source)||this.outAdjacencyCache.set(e.source,new Set),this.outAdjacencyCache.get(e.source).add(e.target),this.inAdjacencyCache.has(e.target)||this.inAdjacencyCache.set(e.target,new Set),this.inAdjacencyCache.get(e.target).add(e.source))}buildNodeIndexCache(){this.nodeIndexCache=new Map,this.indexNodeCache=new Map;let e=0;this.nodeMap.forEach((t,n)=>{this.nodeIndexCache.set(n,e),this.indexNodeCache.set(e,n),e++})}destroy(){this.clearCache(),this.nodeMap.clear(),this.edgeMap.clear(),this.edgeIdCounter.clear()}},xt=[`id`,`x`,`y`,`z`,`vx`,`vy`,`vz`,`fx`,`fy`,`fz`,`parentId`],St=[`id`,`source`,`target`,`points`];function Ct(e,t){if(!e)throw Error(`Data.nodes is required`);let n=new Map;for(let r of e){let e={_original:r};for(let t of xt){let n=r[t];W(n)||(e[t]=n)}if(t){let n=t(r);for(let t in n){let r=n[t];W(r)||(e[t]=r)}}if(W(e.id))throw Error(`Node is missing id field`);n.set(e.id,e)}return n}function wt(e,t,n){let r=new Map;for(let i of e){let e={_original:i};for(let t of St){let n=i[t];W(n)||(e[t]=n)}if(t){let n=t(i);for(let t in n){let r=n[t];W(r)||(e[t]=r)}}if(W(e.source)||W(e.target))throw Error(`Edge is missing source or target field`);W(e.id)&&(e.id=n?.(i)),r.set(e.id,e)}return r}var Tt=class{constructor(e,t={}){this.graph=new bt(e,t)}export(){return this.graph.data()}replace(e){this.graph.replace(e)}forEachNode(e){this.graph.forEachNode(e)}forEachEdge(e){this.graph.forEachEdge((t,n)=>{t.sourceNode=this.graph.node(t.source),t.targetNode=this.graph.node(t.target),e(t,n)})}destroy(){this.graph.destroy()}},Et=Symbol(`Comlink.proxy`),Dt=Symbol(`Comlink.endpoint`),Ot=Symbol(`Comlink.releaseProxy`),kt=Symbol(`Comlink.finalizer`),At=Symbol(`Comlink.thrown`),jt=e=>typeof e==`object`&&!!e||typeof e==`function`,Mt=new Map([[`proxy`,{canHandle:e=>jt(e)&&e[Et],serialize(e){let{port1:t,port2:n}=new MessageChannel;return Pt(e,t),[n,[n]]},deserialize(e){return e.start(),Lt(e)}}],[`throw`,{canHandle:e=>jt(e)&&At in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function Nt(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function Pt(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!Nt(n,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:a,type:o,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(Zt),l;try{let t=s.slice(0,-1).reduce((e,t)=>e[t],e),n=s.reduce((e,t)=>e[t],e);switch(o){case`GET`:l=n;break;case`SET`:t[s.slice(-1)[0]]=Zt(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=Yt(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;Pt(e,n),l=Jt(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[At]:0}}Promise.resolve(l).catch(e=>({value:e,[At]:0})).then(n=>{let[i,s]=Xt(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),It(t),kt in e&&typeof e[kt]==`function`&&e[kt]())}).catch(e=>{let[n,r]=Xt({value:TypeError(`Unserializable return value`),[At]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function Ft(e){return e.constructor.name===`MessagePort`}function It(e){Ft(e)&&e.close()}function Lt(e,t){let n=new Map;return e.addEventListener(`message`,function(e){let{data:t}=e;if(!t||!t.id)return;let r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),Wt(e,n,[],t)}function Rt(e){if(e)throw Error(`Proxy has been released and is not useable`)}function zt(e){return Qt(e,new Map,{type:`RELEASE`}).then(()=>{It(e)})}var Bt=new WeakMap,Vt=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(Bt.get(e)||0)-1;Bt.set(e,t),t===0&&zt(e)});function Ht(e,t){let n=(Bt.get(t)||0)+1;Bt.set(t,n),Vt&&Vt.register(e,t,e)}function Ut(e){Vt&&Vt.unregister(e)}function Wt(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(Rt(i),o===Ot)return()=>{Ut(a),zt(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=Qt(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(Zt);return r.then.bind(r)}return Wt(e,t,[...n,o])},set(r,a,o){Rt(i);let[s,c]=Xt(o);return Qt(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(Zt)},apply(r,a,o){Rt(i);let s=n[n.length-1];if(s===Dt)return Qt(e,t,{type:`ENDPOINT`}).then(Zt);if(s===`bind`)return Wt(e,t,n.slice(0,-1));let[c,l]=Kt(o);return Qt(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(Zt)},construct(r,a){Rt(i);let[o,s]=Kt(a);return Qt(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(Zt)}});return Ht(a,e),a}function Gt(e){return Array.prototype.concat.apply([],e)}function Kt(e){let t=e.map(Xt);return[t.map(e=>e[0]),Gt(t.map(e=>e[1]))]}var qt=new WeakMap;function Jt(e,t){return qt.set(e,t),e}function Yt(e){return Object.assign(e,{[Et]:!0})}function Xt(e){for(let[t,n]of Mt)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},qt.get(e)||[]]}function Zt(e){switch(e.type){case`HANDLER`:return Mt.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function Qt(e,t,n,r){return new Promise(i=>{let a=$t();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function $t(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}var en=class{constructor(){this.worker=null,this.workerApi=null}execute(e,t,n){return We(this,void 0,void 0,function*(){if(this.worker||(yield this.initWorker()),!this.workerApi)throw Error(`Worker API not initialized`);return yield this.workerApi.execute(e,t,n)})}destroy(){this.workerApi&&this.workerApi.destroy(),this.worker&&(this.worker.terminate(),this.worker=null,this.workerApi=null)}initWorker(){return We(this,void 0,void 0,function*(){let e=this.resolveWorkerPath(),t=e.includes(`/lib/`)||e.endsWith(`.mjs`)?`module`:`classic`;this.worker=new Worker(e,{type:t}),this.workerApi=Lt(this.worker)})}resolveWorkerPath(){let e=(()=>{if(typeof document>`u`)return null;let e=document.currentScript;if(e?.src)return e.src;let t=document.getElementsByTagName(`script`);for(let e=t.length-1;e>=0;e--){let n=t[e].src;if(n&&(n.includes(`index.js`)||n.includes(`index.min.js`)))return n}return null})();if(e){if(e.includes(`index.js`)||e.includes(`index.min.js`)){let t=e.replace(/index(\.min)?\.(m?js)(\?.*)?$/,`worker.js`);if(t!==e)return t}let t=e.replace(/\/runtime\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(t!==e)return t;let n=e.replace(/\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(n!==e)return n}return`./worker.js`}},tn=class{constructor(e){this.supervisor=null,this.initialOptions=this.mergeOptions(this.getDefaultOptions(),e)}get options(){return this.runtimeOptions||this.initialOptions}mergeOptions(e,t){return Object.assign({},e,t||{})}execute(e,t){return We(this,void 0,void 0,function*(){this.runtimeOptions=this.mergeOptions(this.initialOptions,t);let{node:n,edge:r,enableWorker:i}=this.runtimeOptions;this.context=new Tt(e,{node:n,edge:r}),this.model=this.context.graph,i&&typeof Worker<`u`?yield this.layoutInWorker(e,this.runtimeOptions):yield this.layout(this.runtimeOptions)})}layoutInWorker(e,t){var n;return We(this,void 0,void 0,function*(){try{this.supervisor||=new en;let r=yield this.supervisor.execute(this.id,e,t);(n=this.context)==null||n.replace(r)}catch(e){console.error(`Layout in worker failed, fallback to main thread layout.`,e),yield this.layout(t)}})}forEachNode(e){this.context.forEachNode(e)}forEachEdge(e){this.context.forEachEdge(e)}destroy(){var e;(e=this.context)==null||e.destroy(),this.model=null,this.context=null,this.supervisor&&=(this.supervisor.destroy(),null)}};function nn(e){return Array.isArray(e)}var rn=(function(e){var t=typeof e;return e!==null&&t===`object`||t===`function`}),an=function(e){return typeof e==`object`&&!!e},on={}.toString,sn=function(e,t){return on.call(e)===`[object `+t+`]`},cn=function(e){if(!an(e)||!sn(e,`Object`))return!1;if(Object.getPrototypeOf(e)===null)return!0;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},ln=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function un(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function dn(e){throw Error(`Could not dynamically require "`+e+`". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.`)}var fn,pn;function mn(){if(pn)return fn;pn=1;function e(){this.__data__=[],this.size=0}return fn=e,fn}var hn,gn;function _n(){if(gn)return hn;gn=1;function e(e,t){return e===t||e!==e&&t!==t}return hn=e,hn}var vn,yn;function bn(){if(yn)return vn;yn=1;var e=_n();function t(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}return vn=t,vn}var xn,Sn;function Cn(){if(Sn)return xn;Sn=1;var e=bn(),t=Array.prototype.splice;function n(n){var r=this.__data__,i=e(r,n);return i<0?!1:(i==r.length-1?r.pop():t.call(r,i,1),--this.size,!0)}return xn=n,xn}var wn,Tn;function En(){if(Tn)return wn;Tn=1;var e=bn();function t(t){var n=this.__data__,r=e(n,t);return r<0?void 0:n[r][1]}return wn=t,wn}var Dn,On;function kn(){if(On)return Dn;On=1;var e=bn();function t(t){return e(this.__data__,t)>-1}return Dn=t,Dn}var An,jn;function Mn(){if(jn)return An;jn=1;var e=bn();function t(t,n){var r=this.__data__,i=e(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this}return An=t,An}var Nn,Pn;function Fn(){if(Pn)return Nn;Pn=1;var e=mn(),t=Cn(),n=En(),r=kn(),i=Mn();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Nn=a,Nn}var In,Ln;function Rn(){if(Ln)return In;Ln=1;var e=Fn();function t(){this.__data__=new e,this.size=0}return In=t,In}var zn,Bn;function Vn(){if(Bn)return zn;Bn=1;function e(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}return zn=e,zn}var Hn,Un;function Wn(){if(Un)return Hn;Un=1;function e(e){return this.__data__.get(e)}return Hn=e,Hn}var Gn,Kn;function qn(){if(Kn)return Gn;Kn=1;function e(e){return this.__data__.has(e)}return Gn=e,Gn}var Jn,Yn;function Xn(){return Yn?Jn:(Yn=1,Jn=typeof ln==`object`&&ln&&ln.Object===Object&&ln,Jn)}var Zn,Qn;function G(){if(Qn)return Zn;Qn=1;var e=Xn(),t=typeof self==`object`&&self&&self.Object===Object&&self;return Zn=e||t||Function(`return this`)(),Zn}var $n,er;function tr(){return er?$n:(er=1,$n=G().Symbol,$n)}var nr,rr;function ir(){if(rr)return nr;rr=1;var e=tr(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,i=e?e.toStringTag:void 0;function a(e){var t=n.call(e,i),a=e[i];try{e[i]=void 0;var o=!0}catch{}var s=r.call(e);return o&&(t?e[i]=a:delete e[i]),s}return nr=a,nr}var ar,or;function sr(){if(or)return ar;or=1;var e=Object.prototype.toString;function t(t){return e.call(t)}return ar=t,ar}var cr,lr;function ur(){if(lr)return cr;lr=1;var e=tr(),t=ir(),n=sr(),r=`[object Null]`,i=`[object Undefined]`,a=e?e.toStringTag:void 0;function o(e){return e==null?e===void 0?i:r:a&&a in Object(e)?t(e):n(e)}return cr=o,cr}var dr,fr;function K(){if(fr)return dr;fr=1;function e(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}return dr=e,dr}var pr,mr;function hr(){if(mr)return pr;mr=1;var e=ur(),t=K(),n=`[object AsyncFunction]`,r=`[object Function]`,i=`[object GeneratorFunction]`,a=`[object Proxy]`;function o(o){if(!t(o))return!1;var s=e(o);return s==r||s==i||s==n||s==a}return pr=o,pr}var gr,_r;function vr(){return _r?gr:(_r=1,gr=G()[`__core-js_shared__`],gr)}var yr,br;function xr(){if(br)return yr;br=1;var e=vr(),t=function(){var t=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||``);return t?`Symbol(src)_1.`+t:``}();function n(e){return!!t&&t in e}return yr=n,yr}var Sr,Cr;function wr(){if(Cr)return Sr;Cr=1;var e=Function.prototype.toString;function t(t){if(t!=null){try{return e.call(t)}catch{}try{return t+``}catch{}}return``}return Sr=t,Sr}var Tr,Er;function Dr(){if(Er)return Tr;Er=1;var e=hr(),t=xr(),n=K(),r=wr(),i=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=RegExp(`^`+c.call(l).replace(i,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function d(i){return!n(i)||t(i)?!1:(e(i)?u:a).test(r(i))}return Tr=d,Tr}var Or,kr;function Ar(){if(kr)return Or;kr=1;function e(e,t){return e?.[t]}return Or=e,Or}var jr,Mr;function Nr(){if(Mr)return jr;Mr=1;var e=Dr(),t=Ar();function n(n,r){var i=t(n,r);return e(i)?i:void 0}return jr=n,jr}var Pr,Fr;function Ir(){return Fr?Pr:(Fr=1,Pr=Nr()(G(),`Map`),Pr)}var Lr,Rr;function zr(){return Rr?Lr:(Rr=1,Lr=Nr()(Object,`create`),Lr)}var Br,Vr;function Hr(){if(Vr)return Br;Vr=1;var e=zr();function t(){this.__data__=e?e(null):{},this.size=0}return Br=t,Br}var Ur,Wr;function Gr(){if(Wr)return Ur;Wr=1;function e(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}return Ur=e,Ur}var Kr,qr;function Jr(){if(qr)return Kr;qr=1;var e=zr(),t=`__lodash_hash_undefined__`,n=Object.prototype.hasOwnProperty;function r(r){var i=this.__data__;if(e){var a=i[r];return a===t?void 0:a}return n.call(i,r)?i[r]:void 0}return Kr=r,Kr}var Yr,Xr;function Zr(){if(Xr)return Yr;Xr=1;var e=zr(),t=Object.prototype.hasOwnProperty;function n(n){var r=this.__data__;return e?r[n]!==void 0:t.call(r,n)}return Yr=n,Yr}var Qr,$r;function ei(){if($r)return Qr;$r=1;var e=zr(),t=`__lodash_hash_undefined__`;function n(n,r){var i=this.__data__;return this.size+=+!this.has(n),i[n]=e&&r===void 0?t:r,this}return Qr=n,Qr}var ti,ni;function ri(){if(ni)return ti;ni=1;var e=Hr(),t=Gr(),n=Jr(),r=Zr(),i=ei();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,ti=a,ti}var ii,ai;function oi(){if(ai)return ii;ai=1;var e=ri(),t=Fn(),n=Ir();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return ii=r,ii}var si,ci;function li(){if(ci)return si;ci=1;function e(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}return si=e,si}var ui,di;function fi(){if(di)return ui;di=1;var e=li();function t(t,n){var r=t.__data__;return e(n)?r[typeof n==`string`?`string`:`hash`]:r.map}return ui=t,ui}var pi,mi;function hi(){if(mi)return pi;mi=1;var e=fi();function t(t){var n=e(this,t).delete(t);return this.size-=+!!n,n}return pi=t,pi}var gi,_i;function vi(){if(_i)return gi;_i=1;var e=fi();function t(t){return e(this,t).get(t)}return gi=t,gi}var yi,bi;function xi(){if(bi)return yi;bi=1;var e=fi();function t(t){return e(this,t).has(t)}return yi=t,yi}var Si,Ci;function wi(){if(Ci)return Si;Ci=1;var e=fi();function t(t,n){var r=e(this,t),i=r.size;return r.set(t,n),this.size+=r.size==i?0:1,this}return Si=t,Si}var Ti,Ei;function Di(){if(Ei)return Ti;Ei=1;var e=oi(),t=hi(),n=vi(),r=xi(),i=wi();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Ti=a,Ti}var Oi,ki;function Ai(){if(ki)return Oi;ki=1;var e=Fn(),t=Ir(),n=Di(),r=200;function i(i,a){var o=this.__data__;if(o instanceof e){var s=o.__data__;if(!t||s.length<r-1)return s.push([i,a]),this.size=++o.size,this;o=this.__data__=new n(s)}return o.set(i,a),this.size=o.size,this}return Oi=i,Oi}var ji,Mi;function Ni(){if(Mi)return ji;Mi=1;var e=Fn(),t=Rn(),n=Vn(),r=Wn(),i=qn(),a=Ai();function o(t){var n=this.__data__=new e(t);this.size=n.size}return o.prototype.clear=t,o.prototype.delete=n,o.prototype.get=r,o.prototype.has=i,o.prototype.set=a,ji=o,ji}var Pi,Fi;function Ii(){if(Fi)return Pi;Fi=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}return Pi=e,Pi}var Li,Ri;function zi(){if(Ri)return Li;Ri=1;var e=Nr();return Li=function(){try{var t=e(Object,`defineProperty`);return t({},``,{}),t}catch{}}(),Li}var Bi,Vi;function Hi(){if(Vi)return Bi;Vi=1;var e=zi();function t(t,n,r){n==`__proto__`&&e?e(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}return Bi=t,Bi}var Ui,Wi;function Gi(){if(Wi)return Ui;Wi=1;var e=Hi(),t=_n(),n=Object.prototype.hasOwnProperty;function r(r,i,a){var o=r[i];(!(n.call(r,i)&&t(o,a))||a===void 0&&!(i in r))&&e(r,i,a)}return Ui=r,Ui}var Ki,qi;function Ji(){if(qi)return Ki;qi=1;var e=Gi(),t=Hi();function n(n,r,i,a){var o=!i;i||={};for(var s=-1,c=r.length;++s<c;){var l=r[s],u=a?a(i[l],n[l],l,i,n):void 0;u===void 0&&(u=n[l]),o?t(i,l,u):e(i,l,u)}return i}return Ki=n,Ki}var Yi,Xi;function Zi(){if(Xi)return Yi;Xi=1;function e(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}return Yi=e,Yi}var Qi,$i;function q(){if($i)return Qi;$i=1;function e(e){return typeof e==`object`&&!!e}return Qi=e,Qi}var ea,ta;function na(){if(ta)return ea;ta=1;var e=ur(),t=q(),n=`[object Arguments]`;function r(r){return t(r)&&e(r)==n}return ea=r,ea}var ra,ia;function aa(){if(ia)return ra;ia=1;var e=na(),t=q(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable;return ra=e(function(){return arguments}())?e:function(e){return t(e)&&r.call(e,`callee`)&&!i.call(e,`callee`)},ra}var oa,sa;function J(){return sa?oa:(sa=1,oa=Array.isArray,oa)}var ca={exports:{}},la,ua;function da(){if(ua)return la;ua=1;function e(){return!1}return la=e,la}ca.exports;var fa;function pa(){return fa?ca.exports:(fa=1,(function(e,t){var n=G(),r=da(),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?n.Buffer:void 0;e.exports=(o?o.isBuffer:void 0)||r})(ca,ca.exports),ca.exports)}var ma,ha;function ga(){if(ha)return ma;ha=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function n(n,r){var i=typeof n;return r??=e,!!r&&(i==`number`||i!=`symbol`&&t.test(n))&&n>-1&&n%1==0&&n<r}return ma=n,ma}var _a,va;function ya(){if(va)return _a;va=1;var e=9007199254740991;function t(t){return typeof t==`number`&&t>-1&&t%1==0&&t<=e}return _a=t,_a}var ba,xa;function Sa(){if(xa)return ba;xa=1;var e=ur(),t=ya(),n=q(),r=`[object Arguments]`,i=`[object Array]`,a=`[object Boolean]`,o=`[object Date]`,s=`[object Error]`,c=`[object Function]`,l=`[object Map]`,u=`[object Number]`,d=`[object Object]`,f=`[object RegExp]`,p=`[object Set]`,m=`[object String]`,h=`[object WeakMap]`,g=`[object ArrayBuffer]`,_=`[object DataView]`,v=`[object Float32Array]`,y=`[object Float64Array]`,b=`[object Int8Array]`,x=`[object Int16Array]`,S=`[object Int32Array]`,C=`[object Uint8Array]`,w=`[object Uint8ClampedArray]`,T=`[object Uint16Array]`,E=`[object Uint32Array]`,D={};D[v]=D[y]=D[b]=D[x]=D[S]=D[C]=D[w]=D[T]=D[E]=!0,D[r]=D[i]=D[g]=D[a]=D[_]=D[o]=D[s]=D[c]=D[l]=D[u]=D[d]=D[f]=D[p]=D[m]=D[h]=!1;function O(r){return n(r)&&t(r.length)&&!!D[e(r)]}return ba=O,ba}var Ca,wa;function Ta(){if(wa)return Ca;wa=1;function e(e){return function(t){return e(t)}}return Ca=e,Ca}var Ea={exports:{}};Ea.exports;var Da;function Oa(){return Da?Ea.exports:(Da=1,(function(e,t){var n=Xn(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r&&n.process;e.exports=function(){try{return i&&i.require&&i.require(`util`).types||a&&a.binding&&a.binding(`util`)}catch{}}()})(Ea,Ea.exports),Ea.exports)}var ka,Aa;function ja(){if(Aa)return ka;Aa=1;var e=Sa(),t=Ta(),n=Oa(),r=n&&n.isTypedArray;return ka=r?t(r):e,ka}var Ma,Na;function Pa(){if(Na)return Ma;Na=1;var e=Zi(),t=aa(),n=J(),r=pa(),i=ga(),a=ja(),o=Object.prototype.hasOwnProperty;function s(s,c){var l=n(s),u=!l&&t(s),d=!l&&!u&&r(s),f=!l&&!u&&!d&&a(s),p=l||u||d||f,m=p?e(s.length,String):[],h=m.length;for(var g in s)(c||o.call(s,g))&&!(p&&(g==`length`||d&&(g==`offset`||g==`parent`)||f&&(g==`buffer`||g==`byteLength`||g==`byteOffset`)||i(g,h)))&&m.push(g);return m}return Ma=s,Ma}var Fa,Ia;function La(){if(Ia)return Fa;Ia=1;var e=Object.prototype;function t(t){var n=t&&t.constructor;return t===(typeof n==`function`&&n.prototype||e)}return Fa=t,Fa}var Ra,za;function Ba(){if(za)return Ra;za=1;function e(e,t){return function(n){return e(t(n))}}return Ra=e,Ra}var Va,Ha;function Ua(){return Ha?Va:(Ha=1,Va=Ba()(Object.keys,Object),Va)}var Wa,Ga;function Ka(){if(Ga)return Wa;Ga=1;var e=La(),t=Ua(),n=Object.prototype.hasOwnProperty;function r(r){if(!e(r))return t(r);var i=[];for(var a in Object(r))n.call(r,a)&&a!=`constructor`&&i.push(a);return i}return Wa=r,Wa}var qa,Ja;function Ya(){if(Ja)return qa;Ja=1;var e=hr(),t=ya();function n(n){return n!=null&&t(n.length)&&!e(n)}return qa=n,qa}var Xa,Za;function Qa(){if(Za)return Xa;Za=1;var e=Pa(),t=Ka(),n=Ya();function r(r){return n(r)?e(r):t(r)}return Xa=r,Xa}var $a,eo;function to(){if(eo)return $a;eo=1;var e=Ji(),t=Qa();function n(n,r){return n&&e(r,t(r),n)}return $a=n,$a}var no,ro;function io(){if(ro)return no;ro=1;function e(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return no=e,no}var ao,oo;function so(){if(oo)return ao;oo=1;var e=K(),t=La(),n=io(),r=Object.prototype.hasOwnProperty;function i(i){if(!e(i))return n(i);var a=t(i),o=[];for(var s in i)(s!=`constructor`||!a&&r.call(i,s))&&o.push(s);return o}return ao=i,ao}var co,lo;function uo(){if(lo)return co;lo=1;var e=Pa(),t=so(),n=Ya();function r(r){return n(r)?e(r,!0):t(r)}return co=r,co}var fo,po;function mo(){if(po)return fo;po=1;var e=Ji(),t=uo();function n(n,r){return n&&e(r,t(r),n)}return fo=n,fo}var ho={exports:{}};ho.exports;var go;function _o(){return go?ho.exports:(go=1,(function(e,t){var n=G(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}e.exports=s})(ho,ho.exports),ho.exports)}var vo,yo;function bo(){if(yo)return vo;yo=1;function e(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}return vo=e,vo}var xo,So;function Co(){if(So)return xo;So=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}return xo=e,xo}var wo,To;function Eo(){if(To)return wo;To=1;function e(){return[]}return wo=e,wo}var Do,Oo;function ko(){if(Oo)return Do;Oo=1;var e=Co(),t=Eo(),n=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return Do=r?function(t){return t==null?[]:(t=Object(t),e(r(t),function(e){return n.call(t,e)}))}:t,Do}var Ao,jo;function Mo(){if(jo)return Ao;jo=1;var e=Ji(),t=ko();function n(n,r){return e(n,t(n),r)}return Ao=n,Ao}var No,Po;function Fo(){if(Po)return No;Po=1;function e(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}return No=e,No}var Io,Lo;function Ro(){return Lo?Io:(Lo=1,Io=Ba()(Object.getPrototypeOf,Object),Io)}var zo,Bo;function Vo(){if(Bo)return zo;Bo=1;var e=Fo(),t=Ro(),n=ko(),r=Eo();return zo=Object.getOwnPropertySymbols?function(r){for(var i=[];r;)e(i,n(r)),r=t(r);return i}:r,zo}var Ho,Uo;function Wo(){if(Uo)return Ho;Uo=1;var e=Ji(),t=Vo();function n(n,r){return e(n,t(n),r)}return Ho=n,Ho}var Go,Ko;function qo(){if(Ko)return Go;Ko=1;var e=Fo(),t=J();function n(n,r,i){var a=r(n);return t(n)?a:e(a,i(n))}return Go=n,Go}var Jo,Yo;function Xo(){if(Yo)return Jo;Yo=1;var e=qo(),t=ko(),n=Qa();function r(r){return e(r,n,t)}return Jo=r,Jo}var Zo,Qo;function $o(){if(Qo)return Zo;Qo=1;var e=qo(),t=Vo(),n=uo();function r(r){return e(r,n,t)}return Zo=r,Zo}var es,ts;function ns(){return ts?es:(ts=1,es=Nr()(G(),`DataView`),es)}var rs,is;function as(){return is?rs:(is=1,rs=Nr()(G(),`Promise`),rs)}var os,ss;function cs(){return ss?os:(ss=1,os=Nr()(G(),`Set`),os)}var ls,us;function ds(){return us?ls:(us=1,ls=Nr()(G(),`WeakMap`),ls)}var fs,ps;function ms(){if(ps)return fs;ps=1;var e=ns(),t=Ir(),n=as(),r=cs(),i=ds(),a=ur(),o=wr(),s=`[object Map]`,c=`[object Object]`,l=`[object Promise]`,u=`[object Set]`,d=`[object WeakMap]`,f=`[object DataView]`,p=o(e),m=o(t),h=o(n),g=o(r),_=o(i),v=a;return(e&&v(new e(new ArrayBuffer(1)))!=f||t&&v(new t)!=s||n&&v(n.resolve())!=l||r&&v(new r)!=u||i&&v(new i)!=d)&&(v=function(e){var t=a(e),n=t==c?e.constructor:void 0,r=n?o(n):``;if(r)switch(r){case p:return f;case m:return s;case h:return l;case g:return u;case _:return d}return t}),fs=v,fs}var hs,gs;function _s(){if(gs)return hs;gs=1;var e=Object.prototype.hasOwnProperty;function t(t){var n=t.length,r=new t.constructor(n);return n&&typeof t[0]==`string`&&e.call(t,`index`)&&(r.index=t.index,r.input=t.input),r}return hs=t,hs}var vs,ys;function bs(){return ys?vs:(ys=1,vs=G().Uint8Array,vs)}var xs,Ss;function Cs(){if(Ss)return xs;Ss=1;var e=bs();function t(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}return xs=t,xs}var ws,Ts;function Es(){if(Ts)return ws;Ts=1;var e=Cs();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}return ws=t,ws}var Ds,Os;function ks(){if(Os)return Ds;Os=1;var e=/\w*$/;function t(t){var n=new t.constructor(t.source,e.exec(t));return n.lastIndex=t.lastIndex,n}return Ds=t,Ds}var As,js;function Ms(){if(js)return As;js=1;var e=tr(),t=e?e.prototype:void 0,n=t?t.valueOf:void 0;function r(e){return n?Object(n.call(e)):{}}return As=r,As}var Ns,Ps;function Fs(){if(Ps)return Ns;Ps=1;var e=Cs();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}return Ns=t,Ns}var Is,Ls;function Rs(){if(Ls)return Is;Ls=1;var e=Cs(),t=Es(),n=ks(),r=Ms(),i=Fs(),a=`[object Boolean]`,o=`[object Date]`,s=`[object Map]`,c=`[object Number]`,l=`[object RegExp]`,u=`[object Set]`,d=`[object String]`,f=`[object Symbol]`,p=`[object ArrayBuffer]`,m=`[object DataView]`,h=`[object Float32Array]`,g=`[object Float64Array]`,_=`[object Int8Array]`,v=`[object Int16Array]`,y=`[object Int32Array]`,b=`[object Uint8Array]`,x=`[object Uint8ClampedArray]`,S=`[object Uint16Array]`,C=`[object Uint32Array]`;function w(w,T,E){var D=w.constructor;switch(T){case p:return e(w);case a:case o:return new D(+w);case m:return t(w,E);case h:case g:case _:case v:case y:case b:case x:case S:case C:return i(w,E);case s:return new D;case c:case d:return new D(w);case l:return n(w);case u:return new D;case f:return r(w)}}return Is=w,Is}var zs,Bs;function Vs(){if(Bs)return zs;Bs=1;var e=K(),t=Object.create;return zs=function(){function n(){}return function(r){if(!e(r))return{};if(t)return t(r);n.prototype=r;var i=new n;return n.prototype=void 0,i}}(),zs}var Hs,Us;function Ws(){if(Us)return Hs;Us=1;var e=Vs(),t=Ro(),n=La();function r(r){return typeof r.constructor==`function`&&!n(r)?e(t(r)):{}}return Hs=r,Hs}var Gs,Ks;function qs(){if(Ks)return Gs;Ks=1;var e=ms(),t=q(),n=`[object Map]`;function r(r){return t(r)&&e(r)==n}return Gs=r,Gs}var Js,Ys;function Xs(){if(Ys)return Js;Ys=1;var e=qs(),t=Ta(),n=Oa(),r=n&&n.isMap;return Js=r?t(r):e,Js}var Zs,Qs;function $s(){if(Qs)return Zs;Qs=1;var e=ms(),t=q(),n=`[object Set]`;function r(r){return t(r)&&e(r)==n}return Zs=r,Zs}var ec,tc;function nc(){if(tc)return ec;tc=1;var e=$s(),t=Ta(),n=Oa(),r=n&&n.isSet;return ec=r?t(r):e,ec}var rc,ic;function ac(){if(ic)return rc;ic=1;var e=Ni(),t=Ii(),n=Gi(),r=to(),i=mo(),a=_o(),o=bo(),s=Mo(),c=Wo(),l=Xo(),u=$o(),d=ms(),f=_s(),p=Rs(),m=Ws(),h=J(),g=pa(),_=Xs(),v=K(),y=nc(),b=Qa(),x=uo(),S=1,C=2,w=4,T=`[object Arguments]`,E=`[object Array]`,D=`[object Boolean]`,O=`[object Date]`,k=`[object Error]`,A=`[object Function]`,j=`[object GeneratorFunction]`,M=`[object Map]`,N=`[object Number]`,ee=`[object Object]`,P=`[object RegExp]`,F=`[object Set]`,I=`[object String]`,L=`[object Symbol]`,R=`[object WeakMap]`,z=`[object ArrayBuffer]`,te=`[object DataView]`,ne=`[object Float32Array]`,re=`[object Float64Array]`,ie=`[object Int8Array]`,ae=`[object Int16Array]`,oe=`[object Int32Array]`,se=`[object Uint8Array]`,ce=`[object Uint8ClampedArray]`,le=`[object Uint16Array]`,ue=`[object Uint32Array]`,B={};B[T]=B[E]=B[z]=B[te]=B[D]=B[O]=B[ne]=B[re]=B[ie]=B[ae]=B[oe]=B[M]=B[N]=B[ee]=B[P]=B[F]=B[I]=B[L]=B[se]=B[ce]=B[le]=B[ue]=!0,B[k]=B[A]=B[R]=!1;function de(E,D,O,k,M,N){var P,F=D&S,I=D&C,L=D&w;if(O&&(P=M?O(E,k,M,N):O(E)),P!==void 0)return P;if(!v(E))return E;var R=h(E);if(R){if(P=f(E),!F)return o(E,P)}else{var z=d(E),te=z==A||z==j;if(g(E))return a(E,F);if(z==ee||z==T||te&&!M){if(P=I||te?{}:m(E),!F)return I?c(E,i(P,E)):s(E,r(P,E))}else{if(!B[z])return M?E:{};P=p(E,z,F)}}N||=new e;var ne=N.get(E);if(ne)return ne;N.set(E,P),y(E)?E.forEach(function(e){P.add(de(e,D,O,e,E,N))}):_(E)&&E.forEach(function(e,t){P.set(t,de(e,D,O,t,E,N))});var re=R?void 0:(L?I?u:l:I?x:b)(E);return t(re||E,function(e,t){re&&(t=e,e=E[t]),n(P,t,de(e,D,O,t,E,N))}),P}return rc=de,rc}var oc,sc;function cc(){if(sc)return oc;sc=1;var e=ac(),t=4;function n(n){return e(n,t)}return oc=n,oc}var lc,uc;function dc(){if(uc)return lc;uc=1;function e(e){return function(){return e}}return lc=e,lc}var fc,pc;function mc(){if(pc)return fc;pc=1;function e(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}return fc=e,fc}var hc,gc;function _c(){return gc?hc:(gc=1,hc=mc()(),hc)}var vc,yc;function bc(){if(yc)return vc;yc=1;var e=_c(),t=Qa();function n(n,r){return n&&e(n,r,t)}return vc=n,vc}var xc,Sc;function Cc(){if(Sc)return xc;Sc=1;var e=Ya();function t(t,n){return function(r,i){if(r==null)return r;if(!e(r))return t(r,i);for(var a=r.length,o=n?a:-1,s=Object(r);(n?o--:++o<a)&&i(s[o],o,s)!==!1;);return r}}return xc=t,xc}var wc,Tc;function Ec(){if(Tc)return wc;Tc=1;var e=bc();return wc=Cc()(e),wc}var Dc,Oc;function kc(){if(Oc)return Dc;Oc=1;function e(e){return e}return Dc=e,Dc}var Ac,jc;function Mc(){if(jc)return Ac;jc=1;var e=kc();function t(t){return typeof t==`function`?t:e}return Ac=t,Ac}var Nc,Pc;function Fc(){if(Pc)return Nc;Pc=1;var e=Ii(),t=Ec(),n=Mc(),r=J();function i(i,a){return(r(i)?e:t)(i,n(a))}return Nc=i,Nc}var Ic,Lc;function Rc(){return Lc?Ic:(Lc=1,Ic=Fc(),Ic)}var zc,Bc;function Vc(){if(Bc)return zc;Bc=1;var e=Ec();function t(t,n){var r=[];return e(t,function(e,t,i){n(e,t,i)&&r.push(e)}),r}return zc=t,zc}var Hc,Uc;function Wc(){if(Uc)return Hc;Uc=1;var e=`__lodash_hash_undefined__`;function t(t){return this.__data__.set(t,e),this}return Hc=t,Hc}var Gc,Kc;function qc(){if(Kc)return Gc;Kc=1;function e(e){return this.__data__.has(e)}return Gc=e,Gc}var Jc,Yc;function Xc(){if(Yc)return Jc;Yc=1;var e=Di(),t=Wc(),n=qc();function r(t){var n=-1,r=t==null?0:t.length;for(this.__data__=new e;++n<r;)this.add(t[n])}return r.prototype.add=r.prototype.push=t,r.prototype.has=n,Jc=r,Jc}var Zc,Qc;function $c(){if(Qc)return Zc;Qc=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}return Zc=e,Zc}var el,tl;function nl(){if(tl)return el;tl=1;function e(e,t){return e.has(t)}return el=e,el}var rl,il;function al(){if(il)return rl;il=1;var e=Xc(),t=$c(),n=nl(),r=1,i=2;function a(a,o,s,c,l,u){var d=s&r,f=a.length,p=o.length;if(f!=p&&!(d&&p>f))return!1;var m=u.get(a),h=u.get(o);if(m&&h)return m==o&&h==a;var g=-1,_=!0,v=s&i?new e:void 0;for(u.set(a,o),u.set(o,a);++g<f;){var y=a[g],b=o[g];if(c)var x=d?c(b,y,g,o,a,u):c(y,b,g,a,o,u);if(x!==void 0){if(x)continue;_=!1;break}if(v){if(!t(o,function(e,t){if(!n(v,t)&&(y===e||l(y,e,s,c,u)))return v.push(t)})){_=!1;break}}else if(!(y===b||l(y,b,s,c,u))){_=!1;break}}return u.delete(a),u.delete(o),_}return rl=a,rl}var ol,sl;function cl(){if(sl)return ol;sl=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}return ol=e,ol}var ll,ul;function dl(){if(ul)return ll;ul=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}return ll=e,ll}var fl,pl;function ml(){if(pl)return fl;pl=1;var e=tr(),t=bs(),n=_n(),r=al(),i=cl(),a=dl(),o=1,s=2,c=`[object Boolean]`,l=`[object Date]`,u=`[object Error]`,d=`[object Map]`,f=`[object Number]`,p=`[object RegExp]`,m=`[object Set]`,h=`[object String]`,g=`[object Symbol]`,_=`[object ArrayBuffer]`,v=`[object DataView]`,y=e?e.prototype:void 0,b=y?y.valueOf:void 0;function x(e,y,x,S,C,w,T){switch(x){case v:if(e.byteLength!=y.byteLength||e.byteOffset!=y.byteOffset)return!1;e=e.buffer,y=y.buffer;case _:return!(e.byteLength!=y.byteLength||!w(new t(e),new t(y)));case c:case l:case f:return n(+e,+y);case u:return e.name==y.name&&e.message==y.message;case p:case h:return e==y+``;case d:var E=i;case m:var D=S&o;if(E||=a,e.size!=y.size&&!D)return!1;var O=T.get(e);if(O)return O==y;S|=s,T.set(e,y);var k=r(E(e),E(y),S,C,w,T);return T.delete(e),k;case g:if(b)return b.call(e)==b.call(y)}return!1}return fl=x,fl}var hl,gl;function _l(){if(gl)return hl;gl=1;var e=Xo(),t=1,n=Object.prototype.hasOwnProperty;function r(r,i,a,o,s,c){var l=a&t,u=e(r),d=u.length;if(d!=e(i).length&&!l)return!1;for(var f=d;f--;){var p=u[f];if(!(l?p in i:n.call(i,p)))return!1}var m=c.get(r),h=c.get(i);if(m&&h)return m==i&&h==r;var g=!0;c.set(r,i),c.set(i,r);for(var _=l;++f<d;){p=u[f];var v=r[p],y=i[p];if(o)var b=l?o(y,v,p,i,r,c):o(v,y,p,r,i,c);if(!(b===void 0?v===y||s(v,y,a,o,c):b)){g=!1;break}_||=p==`constructor`}if(g&&!_){var x=r.constructor,S=i.constructor;x!=S&&`constructor`in r&&`constructor`in i&&!(typeof x==`function`&&x instanceof x&&typeof S==`function`&&S instanceof S)&&(g=!1)}return c.delete(r),c.delete(i),g}return hl=r,hl}var vl,yl;function bl(){if(yl)return vl;yl=1;var e=Ni(),t=al(),n=ml(),r=_l(),i=ms(),a=J(),o=pa(),s=ja(),c=1,l=`[object Arguments]`,u=`[object Array]`,d=`[object Object]`,f=Object.prototype.hasOwnProperty;function p(p,m,h,g,_,v){var y=a(p),b=a(m),x=y?u:i(p),S=b?u:i(m);x=x==l?d:x,S=S==l?d:S;var C=x==d,w=S==d,T=x==S;if(T&&o(p)){if(!o(m))return!1;y=!0,C=!1}if(T&&!C)return v||=new e,y||s(p)?t(p,m,h,g,_,v):n(p,m,x,h,g,_,v);if(!(h&c)){var E=C&&f.call(p,`__wrapped__`),D=w&&f.call(m,`__wrapped__`);if(E||D){var O=E?p.value():p,k=D?m.value():m;return v||=new e,_(O,k,h,g,v)}}return T?(v||=new e,r(p,m,h,g,_,v)):!1}return vl=p,vl}var xl,Sl;function Cl(){if(Sl)return xl;Sl=1;var e=bl(),t=q();function n(r,i,a,o,s){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:e(r,i,a,o,n,s)}return xl=n,xl}var wl,Tl;function El(){if(Tl)return wl;Tl=1;var e=Ni(),t=Cl(),n=1,r=2;function i(i,a,o,s){var c=o.length,l=c,u=!s;if(i==null)return!l;for(i=Object(i);c--;){var d=o[c];if(u&&d[2]?d[1]!==i[d[0]]:!(d[0]in i))return!1}for(;++c<l;){d=o[c];var f=d[0],p=i[f],m=d[1];if(u&&d[2]){if(p===void 0&&!(f in i))return!1}else{var h=new e;if(s)var g=s(p,m,f,i,a,h);if(!(g===void 0?t(m,p,n|r,s,h):g))return!1}}return!0}return wl=i,wl}var Dl,Ol;function kl(){if(Ol)return Dl;Ol=1;var e=K();function t(t){return t===t&&!e(t)}return Dl=t,Dl}var Al,jl;function Ml(){if(jl)return Al;jl=1;var e=kl(),t=Qa();function n(n){for(var r=t(n),i=r.length;i--;){var a=r[i],o=n[a];r[i]=[a,o,e(o)]}return r}return Al=n,Al}var Nl,Pl;function Fl(){if(Pl)return Nl;Pl=1;function e(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}return Nl=e,Nl}var Il,Ll;function Rl(){if(Ll)return Il;Ll=1;var e=El(),t=Ml(),n=Fl();function r(r){var i=t(r);return i.length==1&&i[0][2]?n(i[0][0],i[0][1]):function(t){return t===r||e(t,r,i)}}return Il=r,Il}var zl,Bl;function Vl(){if(Bl)return zl;Bl=1;var e=ur(),t=q(),n=`[object Symbol]`;function r(r){return typeof r==`symbol`||t(r)&&e(r)==n}return zl=r,zl}var Hl,Ul;function Wl(){if(Ul)return Hl;Ul=1;var e=J(),t=Vl(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(i,a){if(e(i))return!1;var o=typeof i;return o==`number`||o==`symbol`||o==`boolean`||i==null||t(i)?!0:r.test(i)||!n.test(i)||a!=null&&i in Object(a)}return Hl=i,Hl}var Gl,Kl;function ql(){if(Kl)return Gl;Kl=1;var e=Di(),t=`Expected a function`;function n(r,i){if(typeof r!=`function`||i!=null&&typeof i!=`function`)throw TypeError(t);var a=function(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);var o=r.apply(this,e);return a.cache=n.set(t,o)||n,o};return a.cache=new(n.Cache||e),a}return n.Cache=e,Gl=n,Gl}var Jl,Yl;function Xl(){if(Yl)return Jl;Yl=1;var e=ql(),t=500;function n(n){var r=e(n,function(e){return i.size===t&&i.clear(),e}),i=r.cache;return r}return Jl=n,Jl}var Zl,Ql;function $l(){if(Ql)return Zl;Ql=1;var e=Xl(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g;return Zl=e(function(e){var r=[];return e.charCodeAt(0)===46&&r.push(``),e.replace(t,function(e,t,i,a){r.push(i?a.replace(n,`$1`):t||e)}),r}),Zl}var eu,tu;function nu(){if(tu)return eu;tu=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}return eu=e,eu}var ru,iu;function au(){if(iu)return ru;iu=1;var e=tr(),t=nu(),n=J(),r=Vl(),i=e?e.prototype:void 0,a=i?i.toString:void 0;function o(e){if(typeof e==`string`)return e;if(n(e))return t(e,o)+``;if(r(e))return a?a.call(e):``;var i=e+``;return i==`0`&&1/e==-1/0?`-0`:i}return ru=o,ru}var ou,su;function cu(){if(su)return ou;su=1;var e=au();function t(t){return t==null?``:e(t)}return ou=t,ou}var lu,uu;function du(){if(uu)return lu;uu=1;var e=J(),t=Wl(),n=$l(),r=cu();function i(i,a){return e(i)?i:t(i,a)?[i]:n(r(i))}return lu=i,lu}var fu,pu;function mu(){if(pu)return fu;pu=1;var e=Vl();function t(t){if(typeof t==`string`||e(t))return t;var n=t+``;return n==`0`&&1/t==-1/0?`-0`:n}return fu=t,fu}var hu,gu;function _u(){if(gu)return hu;gu=1;var e=du(),t=mu();function n(n,r){r=e(r,n);for(var i=0,a=r.length;n!=null&&i<a;)n=n[t(r[i++])];return i&&i==a?n:void 0}return hu=n,hu}var vu,yu;function bu(){if(yu)return vu;yu=1;var e=_u();function t(t,n,r){var i=t==null?void 0:e(t,n);return i===void 0?r:i}return vu=t,vu}var xu,Su;function Cu(){if(Su)return xu;Su=1;function e(e,t){return e!=null&&t in Object(e)}return xu=e,xu}var wu,Tu;function Eu(){if(Tu)return wu;Tu=1;var e=du(),t=aa(),n=J(),r=ga(),i=ya(),a=mu();function o(o,s,c){s=e(s,o);for(var l=-1,u=s.length,d=!1;++l<u;){var f=a(s[l]);if(!(d=o!=null&&c(o,f)))break;o=o[f]}return d||++l!=u?d:(u=o==null?0:o.length,!!u&&i(u)&&r(f,u)&&(n(o)||t(o)))}return wu=o,wu}var Du,Ou;function ku(){if(Ou)return Du;Ou=1;var e=Cu(),t=Eu();function n(n,r){return n!=null&&t(n,r,e)}return Du=n,Du}var Au,ju;function Mu(){if(ju)return Au;ju=1;var e=Cl(),t=bu(),n=ku(),r=Wl(),i=kl(),a=Fl(),o=mu(),s=1,c=2;function l(l,u){return r(l)&&i(u)?a(o(l),u):function(r){var i=t(r,l);return i===void 0&&i===u?n(r,l):e(u,i,s|c)}}return Au=l,Au}var Nu,Pu;function Fu(){if(Pu)return Nu;Pu=1;function e(e){return function(t){return t?.[e]}}return Nu=e,Nu}var Iu,Lu;function Ru(){if(Lu)return Iu;Lu=1;var e=_u();function t(t){return function(n){return e(n,t)}}return Iu=t,Iu}var zu,Bu;function Vu(){if(Bu)return zu;Bu=1;var e=Fu(),t=Ru(),n=Wl(),r=mu();function i(i){return n(i)?e(r(i)):t(i)}return zu=i,zu}var Hu,Uu;function Y(){if(Uu)return Hu;Uu=1;var e=Rl(),t=Mu(),n=kc(),r=J(),i=Vu();function a(a){return typeof a==`function`?a:a==null?n:typeof a==`object`?r(a)?t(a[0],a[1]):e(a):i(a)}return Hu=a,Hu}var Wu,Gu;function Ku(){if(Gu)return Wu;Gu=1;var e=Co(),t=Vc(),n=Y(),r=J();function i(i,a){return(r(i)?e:t)(i,n(a,3))}return Wu=i,Wu}var qu,Ju;function Yu(){if(Ju)return qu;Ju=1;var e=Object.prototype.hasOwnProperty;function t(t,n){return t!=null&&e.call(t,n)}return qu=t,qu}var Xu,Zu;function Qu(){if(Zu)return Xu;Zu=1;var e=Yu(),t=Eu();function n(n,r){return n!=null&&t(n,r,e)}return Xu=n,Xu}var $u,ed;function td(){if(ed)return $u;ed=1;var e=Ka(),t=ms(),n=aa(),r=J(),i=Ya(),a=pa(),o=La(),s=ja(),c=`[object Map]`,l=`[object Set]`,u=Object.prototype.hasOwnProperty;function d(d){if(d==null)return!0;if(i(d)&&(r(d)||typeof d==`string`||typeof d.splice==`function`||a(d)||s(d)||n(d)))return!d.length;var f=t(d);if(f==c||f==l)return!d.size;if(o(d))return!e(d).length;for(var p in d)if(u.call(d,p))return!1;return!0}return $u=d,$u}var nd,rd;function id(){if(rd)return nd;rd=1;function e(e){return e===void 0}return nd=e,nd}var ad,od;function sd(){if(od)return ad;od=1;var e=Ec(),t=Ya();function n(n,r){var i=-1,a=t(n)?Array(n.length):[];return e(n,function(e,t,n){a[++i]=r(e,t,n)}),a}return ad=n,ad}var cd,ld;function ud(){if(ld)return cd;ld=1;var e=nu(),t=Y(),n=sd(),r=J();function i(i,a){return(r(i)?e:n)(i,t(a,3))}return cd=i,cd}var dd,fd;function pd(){if(fd)return dd;fd=1;function e(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}return dd=e,dd}var md,hd;function gd(){if(hd)return md;hd=1;function e(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}return md=e,md}var _d,vd;function yd(){if(vd)return _d;vd=1;var e=pd(),t=Ec(),n=Y(),r=gd(),i=J();function a(a,o,s){var c=i(a)?e:r,l=arguments.length<3;return c(a,n(o,4),s,l,t)}return _d=a,_d}var bd,xd;function Sd(){if(xd)return bd;xd=1;var e=ur(),t=J(),n=q(),r=`[object String]`;function i(i){return typeof i==`string`||!t(i)&&n(i)&&e(i)==r}return bd=i,bd}var Cd,wd;function Td(){return wd?Cd:(wd=1,Cd=Fu()(`length`),Cd)}var Ed,Dd;function Od(){if(Dd)return Ed;Dd=1;var e=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function t(t){return e.test(t)}return Ed=t,Ed}var kd,Ad;function jd(){if(Ad)return kd;Ad=1;var e=`\\ud800-\\udfff`,t=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,n=`\\ufe0e\\ufe0f`,r=`[`+e+`]`,i=`[`+t+`]`,a=`\\ud83c[\\udffb-\\udfff]`,o=`(?:`+i+`|`+a+`)`,s=`[^`+e+`]`,c=`(?:\\ud83c[\\udde6-\\uddff]){2}`,l=`[\\ud800-\\udbff][\\udc00-\\udfff]`,u=`\\u200d`,d=o+`?`,f=`[`+n+`]?`,p=`(?:`+u+`(?:`+[s,c,l].join(`|`)+`)`+f+d+`)*`,m=f+d+p,h=`(?:`+[s+i+`?`,i,c,l,r].join(`|`)+`)`,g=RegExp(a+`(?=`+a+`)|`+h+m,`g`);function _(e){for(var t=g.lastIndex=0;g.test(e);)++t;return t}return kd=_,kd}var Md,Nd;function Pd(){if(Nd)return Md;Nd=1;var e=Td(),t=Od(),n=jd();function r(r){return t(r)?n(r):e(r)}return Md=r,Md}var Fd,Id;function Ld(){if(Id)return Fd;Id=1;var e=Ka(),t=ms(),n=Ya(),r=Sd(),i=Pd(),a=`[object Map]`,o=`[object Set]`;function s(s){if(s==null)return 0;if(n(s))return r(s)?i(s):s.length;var c=t(s);return c==a||c==o?s.size:e(s).length}return Fd=s,Fd}var Rd,zd;function Bd(){if(zd)return Rd;zd=1;var e=Ii(),t=Vs(),n=bc(),r=Y(),i=Ro(),a=J(),o=pa(),s=hr(),c=K(),l=ja();function u(u,d,f){var p=a(u),m=p||o(u)||l(u);if(d=r(d,4),f==null){var h=u&&u.constructor;f=m?p?new h:[]:c(u)&&s(h)?t(i(u)):{}}return(m?e:n)(u,function(e,t,n){return d(f,e,t,n)}),f}return Rd=u,Rd}var Vd,Hd;function Ud(){if(Hd)return Vd;Hd=1;var e=tr(),t=aa(),n=J(),r=e?e.isConcatSpreadable:void 0;function i(e){return n(e)||t(e)||!!(r&&e&&e[r])}return Vd=i,Vd}var Wd,Gd;function Kd(){if(Gd)return Wd;Gd=1;var e=Fo(),t=Ud();function n(r,i,a,o,s){var c=-1,l=r.length;for(a||=t,s||=[];++c<l;){var u=r[c];i>0&&a(u)?i>1?n(u,i-1,a,o,s):e(s,u):o||(s[s.length]=u)}return s}return Wd=n,Wd}var qd,Jd;function Yd(){if(Jd)return qd;Jd=1;function e(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}return qd=e,qd}var Xd,Zd;function Qd(){if(Zd)return Xd;Zd=1;var e=Yd(),t=Math.max;function n(n,r,i){return r=t(r===void 0?n.length-1:r,0),function(){for(var a=arguments,o=-1,s=t(a.length-r,0),c=Array(s);++o<s;)c[o]=a[r+o];o=-1;for(var l=Array(r+1);++o<r;)l[o]=a[o];return l[r]=i(c),e(n,this,l)}}return Xd=n,Xd}var $d,ef;function tf(){if(ef)return $d;ef=1;var e=dc(),t=zi(),n=kc();return $d=t?function(n,r){return t(n,`toString`,{configurable:!0,enumerable:!1,value:e(r),writable:!0})}:n,$d}var nf,rf;function af(){if(rf)return nf;rf=1;var e=800,t=16,n=Date.now;function r(r){var i=0,a=0;return function(){var o=n(),s=t-(o-a);if(a=o,s>0){if(++i>=e)return arguments[0]}else i=0;return r.apply(void 0,arguments)}}return nf=r,nf}var of,sf;function cf(){if(sf)return of;sf=1;var e=tf();return of=af()(e),of}var lf,uf;function df(){if(uf)return lf;uf=1;var e=kc(),t=Qd(),n=cf();function r(r,i){return n(t(r,i,e),r+``)}return lf=r,lf}var ff,pf;function mf(){if(pf)return ff;pf=1;function e(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}return ff=e,ff}var hf,gf;function _f(){if(gf)return hf;gf=1;function e(e){return e!==e}return hf=e,hf}var vf,yf;function bf(){if(yf)return vf;yf=1;function e(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}return vf=e,vf}var xf,Sf;function Cf(){if(Sf)return xf;Sf=1;var e=mf(),t=_f(),n=bf();function r(r,i,a){return i===i?n(r,i,a):e(r,t,a)}return xf=r,xf}var wf,Tf;function Ef(){if(Tf)return wf;Tf=1;var e=Cf();function t(t,n){return!!(t!=null&&t.length)&&e(t,n,0)>-1}return wf=t,wf}var Df,Of;function kf(){if(Of)return Df;Of=1;function e(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}return Df=e,Df}var Af,jf;function Mf(){if(jf)return Af;jf=1;function e(){}return Af=e,Af}var Nf,Pf;function Ff(){if(Pf)return Nf;Pf=1;var e=cs(),t=Mf(),n=dl();return Nf=e&&1/n(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t,Nf}var If,Lf;function Rf(){if(Lf)return If;Lf=1;var e=Xc(),t=Ef(),n=kf(),r=nl(),i=Ff(),a=dl(),o=200;function s(s,c,l){var u=-1,d=t,f=s.length,p=!0,m=[],h=m;if(l)p=!1,d=n;else if(f>=o){var g=c?null:i(s);if(g)return a(g);p=!1,d=r,h=new e}else h=c?[]:m;outer:for(;++u<f;){var _=s[u],v=c?c(_):_;if(_=l||_!==0?_:0,p&&v===v){for(var y=h.length;y--;)if(h[y]===v)continue outer;c&&h.push(v),m.push(_)}else d(h,v,l)||(h!==m&&h.push(v),m.push(_))}return m}return If=s,If}var zf,Bf;function Vf(){if(Bf)return zf;Bf=1;var e=Ya(),t=q();function n(n){return t(n)&&e(n)}return zf=n,zf}var Hf,Uf;function Wf(){if(Uf)return Hf;Uf=1;var e=Kd(),t=df(),n=Rf(),r=Vf();return Hf=t(function(t){return n(e(t,1,r,!0))}),Hf}var Gf,Kf;function qf(){if(Kf)return Gf;Kf=1;var e=nu();function t(t,n){return e(n,function(e){return t[e]})}return Gf=t,Gf}var Jf,Yf;function Xf(){if(Yf)return Jf;Yf=1;var e=qf(),t=Qa();function n(n){return n==null?[]:e(n,t(n))}return Jf=n,Jf}var Zf,Qf;function X(){if(Qf)return Zf;Qf=1;var e;if(typeof dn==`function`)try{e={clone:cc(),constant:dc(),each:Rc(),filter:Ku(),has:Qu(),isArray:J(),isEmpty:td(),isFunction:hr(),isUndefined:id(),keys:Qa(),map:ud(),reduce:yd(),size:Ld(),transform:Bd(),union:Wf(),values:Xf()}}catch{}return e||=window._,Zf=e,Zf}var $f,ep;function tp(){if(ep)return $f;ep=1;var e=X();$f=i;var t=`\0`,n=`\0`,r=``;function i(t){this._isDirected=!e.has(t,`directed`)||t.directed,this._isMultigraph=e.has(t,`multigraph`)?t.multigraph:!1,this._isCompound=e.has(t,`compound`)?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[n]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultNodeLabelFn=t,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return e.keys(this._nodes)},i.prototype.sources=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._in[n])})},i.prototype.sinks=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._out[n])})},i.prototype.setNodes=function(t,n){var r=arguments,i=this;return e.each(t,function(e){r.length>1?i.setNode(e,n):i.setNode(e)}),this},i.prototype.setNode=function(t,r){return e.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=n,this._children[t]={},this._children[n][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(t){return e.has(this._nodes,t)},i.prototype.removeNode=function(t){var n=this;if(e.has(this._nodes,t)){var r=function(e){n.removeEdge(n._edgeObjs[e])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],e.each(this.children(t),function(e){n.setParent(e)}),delete this._children[t]),e.each(e.keys(this._in[t]),r),delete this._in[t],delete this._preds[t],e.each(e.keys(this._out[t]),r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},i.prototype.setParent=function(t,r){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(e.isUndefined(r))r=n;else{r+=``;for(var i=r;!e.isUndefined(i);i=this.parent(i))if(i===t)throw Error(`Setting `+r+` as parent of `+t+` would create a cycle`);this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==n)return t}},i.prototype.children=function(t){if(e.isUndefined(t)&&(t=n),this._isCompound){var r=this._children[t];if(r)return e.keys(r)}else if(t===n)return this.nodes();else if(this.hasNode(t))return[]},i.prototype.predecessors=function(t){var n=this._preds[t];if(n)return e.keys(n)},i.prototype.successors=function(t){var n=this._sucs[t];if(n)return e.keys(n)},i.prototype.neighbors=function(t){var n=this.predecessors(t);if(n)return e.union(n,this.successors(t))},i.prototype.isLeaf=function(e){return(this.isDirected()?this.successors(e):this.neighbors(e)).length===0},i.prototype.filterNodes=function(t){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var r=this;e.each(this._nodes,function(e,r){t(r)&&n.setNode(r,e)}),e.each(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,r.edge(e))});var i={};function a(e){var t=r.parent(e);return t===void 0||n.hasNode(t)?(i[e]=t,t):t in i?i[t]:a(t)}return this._isCompound&&e.each(n.nodes(),function(e){n.setParent(e,a(e))}),n},i.prototype.setDefaultEdgeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultEdgeLabelFn=t,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return e.values(this._edgeObjs)},i.prototype.setPath=function(t,n){var r=this,i=arguments;return e.reduce(t,function(e,t){return i.length>1?r.setEdge(e,t,n):r.setEdge(e,t),t}),this},i.prototype.setEdge=function(){var t,n,r,i,o=!1,l=arguments[0];typeof l==`object`&&l&&`v`in l?(t=l.v,n=l.w,r=l.name,arguments.length===2&&(i=arguments[1],o=!0)):(t=l,n=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=``+t,n=``+n,e.isUndefined(r)||(r=``+r);var u=s(this._isDirected,t,n,r);if(e.has(this._edgeLabels,u))return o&&(this._edgeLabels[u]=i),this;if(!e.isUndefined(r)&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(t),this.setNode(n),this._edgeLabels[u]=o?i:this._defaultEdgeLabelFn(t,n,r);var d=c(this._isDirected,t,n,r);return t=d.v,n=d.w,Object.freeze(d),this._edgeObjs[u]=d,a(this._preds[n],t),a(this._sucs[t],n),this._in[n][u]=d,this._out[t][u]=d,this._edgeCount++,this},i.prototype.edge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(t,n,r){var i=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,t,n,r);return e.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],o(this._preds[t],e),o(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},i.prototype.inEdges=function(t,n){var r=this._in[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.v===n}):i}},i.prototype.outEdges=function(t,n){var r=this._out[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.w===n}):i}},i.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))};function a(e,t){e[t]?e[t]++:e[t]=1}function o(e,t){--e[t]||delete e[t]}function s(n,i,a,o){var s=``+i,c=``+a;if(!n&&s>c){var l=s;s=c,c=l}return s+r+c+r+(e.isUndefined(o)?t:o)}function c(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function l(e,t){return s(e,t.v,t.w,t.name)}return $f}var np,rp;function ip(){return rp?np:(rp=1,np=`2.1.8`,np)}var ap,op;function sp(){return op?ap:(op=1,ap={Graph:tp(),version:ip()},ap)}var cp,lp;function up(){if(lp)return cp;lp=1;var e=X(),t=tp();cp={write:n,read:a};function n(t){var n={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:r(t),edges:i(t)};return e.isUndefined(t.graph())||(n.value=e.clone(t.graph())),n}function r(t){return e.map(t.nodes(),function(n){var r=t.node(n),i=t.parent(n),a={v:n};return e.isUndefined(r)||(a.value=r),e.isUndefined(i)||(a.parent=i),a})}function i(t){return e.map(t.edges(),function(n){var r=t.edge(n),i={v:n.v,w:n.w};return e.isUndefined(n.name)||(i.name=n.name),e.isUndefined(r)||(i.value=r),i})}function a(n){var r=new t(n.options).setGraph(n.value);return e.each(n.nodes,function(e){r.setNode(e.v,e.value),e.parent&&r.setParent(e.v,e.parent)}),e.each(n.edges,function(e){r.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),r}return cp}var dp,fp;function pp(){if(fp)return dp;fp=1;var e=X();dp=t;function t(t){var n={},r=[],i;function a(r){e.has(n,r)||(n[r]=!0,i.push(r),e.each(t.successors(r),a),e.each(t.predecessors(r),a))}return e.each(t.nodes(),function(e){i=[],a(e),i.length&&r.push(i)}),r}return dp}var mp,hp;function gp(){if(hp)return mp;hp=1;var e=X();mp=t;function t(){this._arr=[],this._keyIndices={}}return t.prototype.size=function(){return this._arr.length},t.prototype.keys=function(){return this._arr.map(function(e){return e.key})},t.prototype.has=function(t){return e.has(this._keyIndices,t)},t.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority},t.prototype.min=function(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key},t.prototype.add=function(t,n){var r=this._keyIndices;if(t=String(t),!e.has(r,t)){var i=this._arr,a=i.length;return r[t]=a,i.push({key:t,priority:n}),this._decrease(a),!0}return!1},t.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},t.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error(`New priority is greater than current priority. Key: `+e+` Old: `+this._arr[n].priority+` New: `+t);this._arr[n].priority=t,this._decrease(n)},t.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))},t.prototype._decrease=function(e){for(var t=this._arr,n=t[e].priority,r;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r},t.prototype._swap=function(e,t){var n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t},mp}var _p,vp;function yp(){if(vp)return _p;vp=1;var e=X(),t=gp();_p=r;var n=e.constant(1);function r(e,t,r,a){return i(e,String(t),r||n,a||function(t){return e.outEdges(t)})}function i(e,n,r,i){var a={},o=new t,s,c,l=function(e){var t=e.v===s?e.w:e.v,n=a[t],i=r(e),l=c.distance+i;if(i<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+i);l<n.distance&&(n.distance=l,n.predecessor=s,o.decrease(t,l))};for(e.nodes().forEach(function(e){var t=e===n?0:1/0;a[e]={distance:t},o.add(e,t)});o.size()>0&&(s=o.removeMin(),c=a[s],c.distance!==1/0);)i(s).forEach(l);return a}return _p}var bp,xp;function Sp(){if(xp)return bp;xp=1;var e=yp(),t=X();bp=n;function n(n,r,i){return t.transform(n.nodes(),function(t,a){t[a]=e(n,a,r,i)},{})}return bp}var Cp,wp;function Tp(){if(wp)return Cp;wp=1;var e=X();Cp=t;function t(t){var n=0,r=[],i={},a=[];function o(s){var c=i[s]={onStack:!0,lowlink:n,index:n++};if(r.push(s),t.successors(s).forEach(function(t){e.has(i,t)?i[t].onStack&&(c.lowlink=Math.min(c.lowlink,i[t].index)):(o(t),c.lowlink=Math.min(c.lowlink,i[t].lowlink))}),c.lowlink===c.index){var l=[],u;do u=r.pop(),i[u].onStack=!1,l.push(u);while(s!==u);a.push(l)}}return t.nodes().forEach(function(t){e.has(i,t)||o(t)}),a}return Cp}var Ep,Dp;function Op(){if(Dp)return Ep;Dp=1;var e=X(),t=Tp();Ep=n;function n(n){return e.filter(t(n),function(e){return e.length>1||e.length===1&&n.hasEdge(e[0],e[0])})}return Ep}var kp,Ap;function jp(){if(Ap)return kp;Ap=1;var e=X();kp=n;var t=e.constant(1);function n(e,n,i){return r(e,n||t,i||function(t){return e.outEdges(t)})}function r(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:1/0})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s<o.distance&&(o.distance=s,o.predecessor=i.predecessor)})})}),r}return kp}var Mp,Np;function Pp(){if(Np)return Mp;Np=1;var e=X();Mp=t,t.CycleException=n;function t(t){var r={},i={},a=[];function o(s){if(e.has(i,s))throw new n;e.has(r,s)||(i[s]=!0,r[s]=!0,e.each(t.predecessors(s),o),delete i[s],a.push(s))}if(e.each(t.sinks(),o),e.size(r)!==t.nodeCount())throw new n;return a}function n(){}return n.prototype=Error(),Mp}var Fp,Ip;function Lp(){if(Ip)return Fp;Ip=1;var e=Pp();Fp=t;function t(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}return Fp}var Rp,zp;function Bp(){if(zp)return Rp;zp=1;var e=X();Rp=t;function t(t,r,i){e.isArray(r)||(r=[r]);var a=(t.isDirected()?t.successors:t.neighbors).bind(t),o=[],s={};return e.each(r,function(e){if(!t.hasNode(e))throw Error(`Graph does not have node: `+e);n(t,e,i===`post`,s,a,o)}),o}function n(t,r,i,a,o,s){e.has(a,r)||(a[r]=!0,i||s.push(r),e.each(o(r),function(e){n(t,e,i,a,o,s)}),i&&s.push(r))}return Rp}var Vp,Hp;function Up(){if(Hp)return Vp;Hp=1;var e=Bp();Vp=t;function t(t,n){return e(t,n,`post`)}return Vp}var Wp,Gp;function Kp(){if(Gp)return Wp;Gp=1;var e=Bp();Wp=t;function t(t,n){return e(t,n,`pre`)}return Wp}var qp,Jp;function Yp(){if(Jp)return qp;Jp=1;var e=X(),t=tp(),n=gp();qp=r;function r(r,i){var a=new t,o={},s=new n,c;function l(e){var t=e.v===c?e.w:e.v,n=s.priority(t);if(n!==void 0){var r=i(e);r<n&&(o[t]=c,s.decrease(t,r))}}if(r.nodeCount()===0)return a;e.each(r.nodes(),function(e){s.add(e,1/0),a.setNode(e)}),s.decrease(r.nodes()[0],0);for(var u=!1;s.size()>0;){if(c=s.removeMin(),e.has(o,c))a.setEdge(c,o[c]);else if(u)throw Error(`Input graph is not connected: `+r);else u=!0;r.nodeEdges(c).forEach(l)}return a}return qp}var Xp,Zp;function Qp(){return Zp?Xp:(Zp=1,Xp={components:pp(),dijkstra:yp(),dijkstraAll:Sp(),findCycles:Op(),floydWarshall:jp(),isAcyclic:Lp(),postorder:Up(),preorder:Kp(),prim:Yp(),tarjan:Tp(),topsort:Pp()},Xp)}var $p,em;function tm(){if(em)return $p;em=1;var e=sp();return $p={Graph:e.Graph,json:up(),alg:Qp(),version:e.version},$p}var nm,rm;function Z(){if(rm)return nm;rm=1;var e;if(typeof dn==`function`)try{e=tm()}catch{}return e||=window.graphlib,nm=e,nm}var im,am;function om(){if(am)return im;am=1;var e=ac(),t=1,n=4;function r(r){return e(r,t|n)}return im=r,im}var sm,cm;function lm(){if(cm)return sm;cm=1;var e=_n(),t=Ya(),n=ga(),r=K();function i(i,a,o){if(!r(o))return!1;var s=typeof a;return(s==`number`?t(o)&&n(a,o.length):s==`string`&&a in o)?e(o[a],i):!1}return sm=i,sm}var um,dm;function fm(){if(dm)return um;dm=1;var e=df(),t=_n(),n=lm(),r=uo(),i=Object.prototype,a=i.hasOwnProperty;return um=e(function(e,o){e=Object(e);var s=-1,c=o.length,l=c>2?o[2]:void 0;for(l&&n(o[0],o[1],l)&&(c=1);++s<c;)for(var u=o[s],d=r(u),f=-1,p=d.length;++f<p;){var m=d[f],h=e[m];(h===void 0||t(h,i[m])&&!a.call(e,m))&&(e[m]=u[m])}return e}),um}var pm,mm;function hm(){if(mm)return pm;mm=1;var e=Y(),t=Ya(),n=Qa();function r(r){return function(i,a,o){var s=Object(i);if(!t(i)){var c=e(a,3);i=n(i),a=function(e){return c(s[e],e,s)}}var l=r(i,a,o);return l>-1?s[c?i[l]:l]:void 0}}return pm=r,pm}var gm,_m;function vm(){if(_m)return gm;_m=1;var e=/\s/;function t(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}return gm=t,gm}var ym,bm;function xm(){if(bm)return ym;bm=1;var e=vm(),t=/^\s+/;function n(n){return n&&n.slice(0,e(n)+1).replace(t,``)}return ym=n,ym}var Sm,Cm;function wm(){if(Cm)return Sm;Cm=1;var e=xm(),t=K(),n=Vl(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt;function c(c){if(typeof c==`number`)return c;if(n(c))return r;if(t(c)){var l=typeof c.valueOf==`function`?c.valueOf():c;c=t(l)?l+``:l}if(typeof c!=`string`)return c===0?c:+c;c=e(c);var u=a.test(c);return u||o.test(c)?s(c.slice(2),u?2:8):i.test(c)?r:+c}return Sm=c,Sm}var Tm,Em;function Dm(){if(Em)return Tm;Em=1;var e=wm(),t=1/0,n=17976931348623157e292;function r(r){return r?(r=e(r),r===t||r===-t?(r<0?-1:1)*n:r===r?r:0):r===0?r:0}return Tm=r,Tm}var Om,km;function Am(){if(km)return Om;km=1;var e=Dm();function t(t){var n=e(t),r=n%1;return n===n?r?n-r:n:0}return Om=t,Om}var jm,Mm;function Nm(){if(Mm)return jm;Mm=1;var e=mf(),t=Y(),n=Am(),r=Math.max;function i(i,a,o){var s=i==null?0:i.length;if(!s)return-1;var c=o==null?0:n(o);return c<0&&(c=r(s+c,0)),e(i,t(a,3),c)}return jm=i,jm}var Pm,Fm;function Im(){return Fm?Pm:(Fm=1,Pm=hm()(Nm()),Pm)}var Lm,Rm;function zm(){if(Rm)return Lm;Rm=1;var e=Kd();function t(t){return t!=null&&t.length?e(t,1):[]}return Lm=t,Lm}var Bm,Vm;function Hm(){if(Vm)return Bm;Vm=1;var e=_c(),t=Mc(),n=uo();function r(r,i){return r==null?r:e(r,t(i),n)}return Bm=r,Bm}var Um,Wm;function Gm(){if(Wm)return Um;Wm=1;function e(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}return Um=e,Um}var Km,qm;function Jm(){if(qm)return Km;qm=1;var e=Hi(),t=bc(),n=Y();function r(r,i){var a={};return i=n(i,3),t(r,function(t,n,r){e(a,n,i(t,n,r))}),a}return Km=r,Km}var Ym,Xm;function Zm(){if(Xm)return Ym;Xm=1;var e=Vl();function t(t,n,r){for(var i=-1,a=t.length;++i<a;){var o=t[i],s=n(o);if(s!=null&&(c===void 0?s===s&&!e(s):r(s,c)))var c=s,l=o}return l}return Ym=t,Ym}var Qm,$m;function eh(){if($m)return Qm;$m=1;function e(e,t){return e>t}return Qm=e,Qm}var th,nh;function rh(){if(nh)return th;nh=1;var e=Zm(),t=eh(),n=kc();function r(r){return r&&r.length?e(r,n,t):void 0}return th=r,th}var ih,ah;function oh(){if(ah)return ih;ah=1;var e=Hi(),t=_n();function n(n,r,i){(i!==void 0&&!t(n[r],i)||i===void 0&&!(r in n))&&e(n,r,i)}return ih=n,ih}var sh,ch;function lh(){if(ch)return sh;ch=1;var e=ur(),t=Ro(),n=q(),r=`[object Object]`,i=Function.prototype,a=Object.prototype,o=i.toString,s=a.hasOwnProperty,c=o.call(Object);function l(i){if(!n(i)||e(i)!=r)return!1;var a=t(i);if(a===null)return!0;var l=s.call(a,`constructor`)&&a.constructor;return typeof l==`function`&&l instanceof l&&o.call(l)==c}return sh=l,sh}var uh,dh;function fh(){if(dh)return uh;dh=1;function e(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}return uh=e,uh}var ph,mh;function hh(){if(mh)return ph;mh=1;var e=Ji(),t=uo();function n(n){return e(n,t(n))}return ph=n,ph}var gh,_h;function vh(){if(_h)return gh;_h=1;var e=oh(),t=_o(),n=Fs(),r=bo(),i=Ws(),a=aa(),o=J(),s=Vf(),c=pa(),l=hr(),u=K(),d=lh(),f=ja(),p=fh(),m=hh();function h(h,g,_,v,y,b,x){var S=p(h,_),C=p(g,_),w=x.get(C);if(w){e(h,_,w);return}var T=b?b(S,C,_+``,h,g,x):void 0,E=T===void 0;if(E){var D=o(C),O=!D&&c(C),k=!D&&!O&&f(C);T=C,D||O||k?o(S)?T=S:s(S)?T=r(S):O?(E=!1,T=t(C,!0)):k?(E=!1,T=n(C,!0)):T=[]:d(C)||a(C)?(T=S,a(S)?T=m(S):(!u(S)||l(S))&&(T=i(C))):E=!1}E&&(x.set(C,T),y(T,C,v,b,x),x.delete(C)),e(h,_,T)}return gh=h,gh}var yh,bh;function xh(){if(bh)return yh;bh=1;var e=Ni(),t=oh(),n=_c(),r=vh(),i=K(),a=uo(),o=fh();function s(c,l,u,d,f){c!==l&&n(l,function(n,a){if(f||=new e,i(n))r(c,l,a,u,s,d,f);else{var p=d?d(o(c,a),n,a+``,c,l,f):void 0;p===void 0&&(p=n),t(c,a,p)}},a)}return yh=s,yh}var Sh,Ch;function wh(){if(Ch)return Sh;Ch=1;var e=df(),t=lm();function n(n){return e(function(e,r){var i=-1,a=r.length,o=a>1?r[a-1]:void 0,s=a>2?r[2]:void 0;for(o=n.length>3&&typeof o==`function`?(a--,o):void 0,s&&t(r[0],r[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++i<a;){var c=r[i];c&&n(e,c,i,o)}return e})}return Sh=n,Sh}var Th,Eh;function Dh(){if(Eh)return Th;Eh=1;var e=xh();return Th=wh()(function(t,n,r){e(t,n,r)}),Th}var Oh,kh;function Ah(){if(kh)return Oh;kh=1;function e(e,t){return e<t}return Oh=e,Oh}var jh,Mh;function Nh(){if(Mh)return jh;Mh=1;var e=Zm(),t=Ah(),n=kc();function r(r){return r&&r.length?e(r,n,t):void 0}return jh=r,jh}var Ph,Fh;function Ih(){if(Fh)return Ph;Fh=1;var e=Zm(),t=Y(),n=Ah();function r(r,i){return r&&r.length?e(r,t(i,2),n):void 0}return Ph=r,Ph}var Lh,Rh;function zh(){if(Rh)return Lh;Rh=1;var e=G();return Lh=function(){return e.Date.now()},Lh}var Bh,Vh;function Hh(){if(Vh)return Bh;Vh=1;var e=Gi(),t=du(),n=ga(),r=K(),i=mu();function a(a,o,s,c){if(!r(a))return a;o=t(o,a);for(var l=-1,u=o.length,d=u-1,f=a;f!=null&&++l<u;){var p=i(o[l]),m=s;if(p===`__proto__`||p===`constructor`||p===`prototype`)return a;if(l!=d){var h=f[p];m=c?c(h,p,f):void 0,m===void 0&&(m=r(h)?h:n(o[l+1])?[]:{})}e(f,p,m),f=f[p]}return a}return Bh=a,Bh}var Uh,Wh;function Gh(){if(Wh)return Uh;Wh=1;var e=_u(),t=Hh(),n=du();function r(r,i,a){for(var o=-1,s=i.length,c={};++o<s;){var l=i[o],u=e(r,l);a(u,l)&&t(c,n(l,r),u)}return c}return Uh=r,Uh}var Kh,qh;function Jh(){if(qh)return Kh;qh=1;var e=Gh(),t=ku();function n(n,r){return e(n,r,function(e,r){return t(n,r)})}return Kh=n,Kh}var Yh,Xh;function Zh(){if(Xh)return Yh;Xh=1;var e=zm(),t=Qd(),n=cf();function r(r){return n(t(r,void 0,e),r+``)}return Yh=r,Yh}var Qh,$h;function eg(){if($h)return Qh;$h=1;var e=Jh();return Qh=Zh()(function(t,n){return t==null?{}:e(t,n)}),Qh}var tg,ng;function rg(){if(ng)return tg;ng=1;var e=Math.ceil,t=Math.max;function n(n,r,i,a){for(var o=-1,s=t(e((r-n)/(i||1)),0),c=Array(s);s--;)c[a?s:++o]=n,n+=i;return c}return tg=n,tg}var ig,ag;function og(){if(ag)return ig;ag=1;var e=rg(),t=lm(),n=Dm();function r(r){return function(i,a,o){return o&&typeof o!=`number`&&t(i,a,o)&&(a=o=void 0),i=n(i),a===void 0?(a=i,i=0):a=n(a),o=o===void 0?i<a?1:-1:n(o),e(i,a,o,r)}}return ig=r,ig}var sg,cg;function lg(){return cg?sg:(cg=1,sg=og()(),sg)}var ug,dg;function fg(){if(dg)return ug;dg=1;function e(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}return ug=e,ug}var pg,mg;function hg(){if(mg)return pg;mg=1;var e=Vl();function t(t,n){if(t!==n){var r=t!==void 0,i=t===null,a=t===t,o=e(t),s=n!==void 0,c=n===null,l=n===n,u=e(n);if(!c&&!u&&!o&&t>n||o&&s&&l&&!c&&!u||i&&s&&l||!r&&l||!a)return 1;if(!i&&!o&&!u&&t<n||u&&r&&a&&!i&&!o||c&&r&&a||!s&&a||!l)return-1}return 0}return pg=t,pg}var gg,_g;function vg(){if(_g)return gg;_g=1;var e=hg();function t(t,n,r){for(var i=-1,a=t.criteria,o=n.criteria,s=a.length,c=r.length;++i<s;){var l=e(a[i],o[i]);if(l)return i>=c?l:l*(r[i]==`desc`?-1:1)}return t.index-n.index}return gg=t,gg}var yg,bg;function xg(){if(bg)return yg;bg=1;var e=nu(),t=_u(),n=Y(),r=sd(),i=fg(),a=Ta(),o=vg(),s=kc(),c=J();function l(l,u,d){u=u.length?e(u,function(e){return c(e)?function(n){return t(n,e.length===1?e[0]:e)}:e}):[s];var f=-1;return u=e(u,a(n)),i(r(l,function(t,n,r){return{criteria:e(u,function(e){return e(t)}),index:++f,value:t}}),function(e,t){return o(e,t,d)})}return yg=l,yg}var Sg,Cg;function wg(){if(Cg)return Sg;Cg=1;var e=Kd(),t=xg(),n=df(),r=lm();return Sg=n(function(n,i){if(n==null)return[];var a=i.length;return a>1&&r(n,i[0],i[1])?i=[]:a>2&&r(i[0],i[1],i[2])&&(i=[i[0]]),t(n,e(i,1),[])}),Sg}var Tg,Eg;function Dg(){if(Eg)return Tg;Eg=1;var e=cu(),t=0;function n(n){var r=++t;return e(n)+r}return Tg=n,Tg}var Og,kg;function Ag(){if(kg)return Og;kg=1;function e(e,t,n){for(var r=-1,i=e.length,a=t.length,o={};++r<i;){var s=r<a?t[r]:void 0;n(o,e[r],s)}return o}return Og=e,Og}var jg,Mg;function Ng(){if(Mg)return jg;Mg=1;var e=Gi(),t=Ag();function n(n,r){return t(n||[],r||[],e)}return jg=n,jg}var Pg,Fg;function Q(){if(Fg)return Pg;Fg=1;var e;if(typeof dn==`function`)try{e={cloneDeep:om(),constant:dc(),defaults:fm(),each:Rc(),filter:Ku(),find:Im(),flatten:zm(),forEach:Fc(),forIn:Hm(),has:Qu(),isUndefined:id(),last:Gm(),map:ud(),mapValues:Jm(),max:rh(),merge:Dh(),min:Nh(),minBy:Ih(),now:zh(),pick:eg(),range:lg(),reduce:yd(),sortBy:wg(),uniqueId:Dg(),values:Xf(),zipObject:Ng()}}catch{}return e||=window._,Pg=e,Pg}var Ig,Lg;function Rg(){if(Lg)return Ig;Lg=1,Ig=e;function e(){var e={};e._next=e._prev=e,this._sentinel=e}e.prototype.dequeue=function(){var e=this._sentinel,n=e._prev;if(n!==e)return t(n),n},e.prototype.enqueue=function(e){var n=this._sentinel;e._prev&&e._next&&t(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n},e.prototype.toString=function(){for(var e=[],t=this._sentinel,r=t._prev;r!==t;)e.push(JSON.stringify(r,n)),r=r._prev;return`[`+e.join(`, `)+`]`};function t(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function n(e,t){if(e!==`_next`&&e!==`_prev`)return t}return Ig}var zg,Bg;function Vg(){if(Bg)return zg;Bg=1;var e=Q(),t=Z().Graph,n=Rg();zg=i;var r=e.constant(1);function i(t,n){if(t.nodeCount()<=1)return[];var i=s(t,n||r),o=a(i.graph,i.buckets,i.zeroIdx);return e.flatten(e.map(o,function(e){return t.outEdges(e.v,e.w)}),!0)}function a(e,t,n){for(var r=[],i=t[t.length-1],a=t[0],s;e.nodeCount();){for(;s=a.dequeue();)o(e,t,n,s);for(;s=i.dequeue();)o(e,t,n,s);if(e.nodeCount()){for(var c=t.length-2;c>0;--c)if(s=t[c].dequeue(),s){r=r.concat(o(e,t,n,s,!0));break}}}return r}function o(t,n,r,i,a){var o=a?[]:void 0;return e.forEach(t.inEdges(i.v),function(e){var i=t.edge(e),s=t.node(e.v);a&&o.push({v:e.v,w:e.w}),s.out-=i,c(n,r,s)}),e.forEach(t.outEdges(i.v),function(e){var i=t.edge(e),a=e.w,o=t.node(a);o.in-=i,c(n,r,o)}),t.removeNode(i.v),o}function s(r,i){var a=new t,o=0,s=0;e.forEach(r.nodes(),function(e){a.setNode(e,{v:e,in:0,out:0})}),e.forEach(r.edges(),function(e){var t=a.edge(e.v,e.w)||0,n=i(e),r=t+n;a.setEdge(e.v,e.w,r),s=Math.max(s,a.node(e.v).out+=n),o=Math.max(o,a.node(e.w).in+=n)});var l=e.range(s+o+3).map(function(){return new n}),u=o+1;return e.forEach(a.nodes(),function(e){c(l,u,a.node(e))}),{graph:a,buckets:l,zeroIdx:u}}function c(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}return zg}var Hg,Ug;function Wg(){if(Ug)return Hg;Ug=1;var e=Q(),t=Vg();Hg={run:n,undo:i};function n(n){var i=n.graph().acyclicer===`greedy`?t(n,a(n)):r(n);e.forEach(i,function(t){var r=n.edge(t);n.removeEdge(t),r.forwardName=t.name,r.reversed=!0,n.setEdge(t.w,t.v,r,e.uniqueId(`rev`))});function a(e){return function(t){return e.edge(t).weight}}}function r(t){var n=[],r={},i={};function a(o){e.has(i,o)||(i[o]=!0,r[o]=!0,e.forEach(t.outEdges(o),function(t){e.has(r,t.w)?n.push(t):a(t.w)}),delete r[o])}return e.forEach(t.nodes(),a),n}function i(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}})}return Hg}var Gg,Kg;function $(){if(Kg)return Gg;Kg=1;var e=Q(),t=Z().Graph;Gg={addDummyNode:n,simplify:r,asNonCompoundGraph:i,successorWeights:a,predecessorWeights:o,intersectRect:s,buildLayerMatrix:c,normalizeRanks:l,removeEmptyRanks:u,addBorderNode:d,maxRank:f,partition:p,time:m,notime:h};function n(t,n,r,i){var a;do a=e.uniqueId(i);while(t.hasNode(a));return r.dummy=n,t.setNode(a,r),a}function r(n){var r=new t().setGraph(n.graph());return e.forEach(n.nodes(),function(e){r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){var t=r.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);r.setEdge(e.v,e.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),r}function i(n){var r=new t({multigraph:n.isMultigraph()}).setGraph(n.graph());return e.forEach(n.nodes(),function(e){n.children(e).length||r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){r.setEdge(e,n.edge(e))}),r}function a(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.outEdges(n),function(e){r[e.w]=(r[e.w]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function o(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.inEdges(n),function(e){r[e.v]=(r[e.v]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function s(e,t){var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);var c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function c(t){var n=e.map(e.range(f(t)+1),function(){return[]});return e.forEach(t.nodes(),function(r){var i=t.node(r),a=i.rank;e.isUndefined(a)||(n[a][i.order]=r)}),n}function l(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank}));e.forEach(t.nodes(),function(r){var i=t.node(r);e.has(i,`rank`)&&(i.rank-=n)})}function u(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank})),r=[];e.forEach(t.nodes(),function(e){var i=t.node(e).rank-n;r[i]||(r[i]=[]),r[i].push(e)});var i=0,a=t.graph().nodeRankFactor;e.forEach(r,function(n,r){e.isUndefined(n)&&r%a!==0?--i:i&&e.forEach(n,function(e){t.node(e).rank+=i})})}function d(e,t,r,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=i),n(e,`border`,a,t)}function f(t){return e.max(e.map(t.nodes(),function(n){var r=t.node(n).rank;if(!e.isUndefined(r))return r}))}function p(t,n){var r={lhs:[],rhs:[]};return e.forEach(t,function(e){n(e)?r.lhs.push(e):r.rhs.push(e)}),r}function m(t,n){var r=e.now();try{return n()}finally{console.log(t+` time: `+(e.now()-r)+`ms`)}}function h(e,t){return t()}return Gg}var qg,Jg;function Yg(){if(Jg)return qg;Jg=1;var e=Q(),t=$();qg={run:n,undo:i};function n(t){t.graph().dummyChains=[],e.forEach(t.edges(),function(e){r(t,e)})}function r(e,n){var r=n.v,i=e.node(r).rank,a=n.w,o=e.node(a).rank,s=n.name,c=e.edge(n),l=c.labelRank;if(o!==i+1){e.removeEdge(n);var u,d,f=0;for(++i;i<o;++f,++i)c.points=[],d={width:0,height:0,edgeLabel:c,edgeObj:n,rank:i},u=t.addDummyNode(e,`edge`,d,`_d`),i===l&&(d.width=c.width,d.height=c.height,d.dummy=`edge-label`,d.labelpos=c.labelpos),e.setEdge(r,u,{weight:c.weight},s),f===0&&e.graph().dummyChains.push(u),r=u;e.setEdge(r,a,{weight:c.weight},s)}}function i(t){e.forEach(t.graph().dummyChains,function(e){var n=t.node(e),r=n.edgeLabel,i;for(t.setEdge(n.edgeObj,r);n.dummy;)i=t.successors(e)[0],t.removeNode(e),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),e=i,n=t.node(e)})}return qg}var Xg,Zg;function Qg(){if(Zg)return Xg;Zg=1;var e=Q();Xg={longestPath:t,slack:n};function t(t){var n={};function r(i){var a=t.node(i);if(e.has(n,i))return a.rank;n[i]=!0;var o=e.min(e.map(t.outEdges(i),function(e){return r(e.w)-t.edge(e).minlen}));return(o===1/0||o==null)&&(o=0),a.rank=o}e.forEach(t.sources(),r)}function n(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}return Xg}var $g,e_;function t_(){if(e_)return $g;e_=1;var e=Q(),t=Z().Graph,n=Qg().slack;$g=r;function r(e){var r=new t({directed:!1}),s=e.nodes()[0],c=e.nodeCount();r.setNode(s,{});for(var l,u;i(r,e)<c;)l=a(r,e),u=r.hasNode(l.v)?n(e,l):-n(e,l),o(r,e,u);return r}function i(t,r){function i(a){e.forEach(r.nodeEdges(a),function(e){var o=e.v,s=a===o?e.w:o;!t.hasNode(s)&&!n(r,e)&&(t.setNode(s,{}),t.setEdge(a,s,{}),i(s))})}return e.forEach(t.nodes(),i),t.nodeCount()}function a(t,r){return e.minBy(r.edges(),function(e){if(t.hasNode(e.v)!==t.hasNode(e.w))return n(r,e)})}function o(t,n,r){e.forEach(t.nodes(),function(e){n.node(e).rank+=r})}return $g}var n_,r_;function i_(){if(r_)return n_;r_=1;var e=Q(),t=t_(),n=Qg().slack,r=Qg().longestPath,i=Z().alg.preorder,a=Z().alg.postorder,o=$().simplify;n_=s,s.initLowLimValues=d,s.initCutValues=c,s.calcCutValue=u,s.leaveEdge=p,s.enterEdge=m,s.exchangeEdges=h;function s(e){e=o(e),r(e);var n=t(e);d(n),c(n,e);for(var i,a;i=p(n);)a=m(n,e,i),h(n,e,i,a)}function c(t,n){var r=a(t,t.nodes());r=r.slice(0,r.length-1),e.forEach(r,function(e){l(t,n,e)})}function l(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=u(e,t,n)}function u(t,n,r){var i=t.node(r).parent,a=!0,o=n.edge(r,i),s=0;return o||=(a=!1,n.edge(i,r)),s=o.weight,e.forEach(n.nodeEdges(r),function(e){var o=e.v===r,c=o?e.w:e.v;if(c!==i){var l=o===a,u=n.edge(e).weight;if(s+=l?u:-u,_(t,r,c)){var d=t.edge(r,c).cutvalue;s+=l?-d:d}}}),s}function d(e,t){arguments.length<2&&(t=e.nodes()[0]),f(e,{},1,t)}function f(t,n,r,i,a){var o=r,s=t.node(i);return n[i]=!0,e.forEach(t.neighbors(i),function(a){e.has(n,a)||(r=f(t,n,r,a,i))}),s.low=o,s.lim=r++,a?s.parent=a:delete s.parent,r}function p(t){return e.find(t.edges(),function(e){return t.edge(e).cutvalue<0})}function m(t,r,i){var a=i.v,o=i.w;r.hasEdge(a,o)||(a=i.w,o=i.v);var s=t.node(a),c=t.node(o),l=s,u=!1;s.lim>c.lim&&(l=c,u=!0);var d=e.filter(r.edges(),function(e){return u===v(t,t.node(e.v),l)&&u!==v(t,t.node(e.w),l)});return e.minBy(d,function(e){return n(r,e)})}function h(e,t,n,r){var i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),d(e),c(e,t),g(e,t)}function g(t,n){var r=i(t,e.find(t.nodes(),function(e){return!n.node(e).parent}));r=r.slice(1),e.forEach(r,function(e){var r=t.node(e).parent,i=n.edge(e,r),a=!1;i||(i=n.edge(r,e),a=!0),n.node(e).rank=n.node(r).rank+(a?i.minlen:-i.minlen)})}function _(e,t,n){return e.hasEdge(t,n)}function v(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}return n_}var a_,o_;function s_(){if(o_)return a_;o_=1;var e=Qg().longestPath,t=t_(),n=i_();a_=r;function r(e){switch(e.graph().ranker){case`network-simplex`:o(e);break;case`tight-tree`:a(e);break;case`longest-path`:i(e);break;default:o(e)}}var i=e;function a(n){e(n),t(n)}function o(e){n(e)}return a_}var c_,l_;function u_(){if(l_)return c_;l_=1;var e=Q();c_=t;function t(t){var i=r(t);e.forEach(t.graph().dummyChains,function(e){for(var r=t.node(e),a=r.edgeObj,o=n(t,i,a.v,a.w),s=o.path,c=o.lca,l=0,u=s[l],d=!0;e!==a.w;){if(r=t.node(e),d){for(;(u=s[l])!==c&&t.node(u).maxRank<r.rank;)l++;u===c&&(d=!1)}if(!d){for(;l<s.length-1&&t.node(u=s[l+1]).minRank<=r.rank;)l++;u=s[l]}t.setParent(e,u),e=t.successors(e)[0]}})}function n(e,t,n,r){var i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c=n,l;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));for(l=c,c=r;(c=e.parent(c))!==l;)a.push(c);return{path:i.concat(a.reverse()),lca:l}}function r(t){var n={},r=0;function i(a){var o=r;e.forEach(t.children(a),i),n[a]={low:o,lim:r++}}return e.forEach(t.children(),i),n}return c_}var d_,f_;function p_(){if(f_)return d_;f_=1;var e=Q(),t=$();d_={run:n,cleanup:o};function n(n){var o=t.addDummyNode(n,`root`,{},`_root`),s=i(n),c=e.max(e.values(s))-1,l=2*c+1;n.graph().nestingRoot=o,e.forEach(n.edges(),function(e){n.edge(e).minlen*=l});var u=a(n)+1;e.forEach(n.children(),function(e){r(n,o,l,u,c,s,e)}),n.graph().nodeRankFactor=l}function r(n,i,a,o,s,c,l){var u=n.children(l);if(!u.length){l!==i&&n.setEdge(i,l,{weight:0,minlen:a});return}var d=t.addBorderNode(n,`_bt`),f=t.addBorderNode(n,`_bb`),p=n.node(l);n.setParent(d,l),p.borderTop=d,n.setParent(f,l),p.borderBottom=f,e.forEach(u,function(e){r(n,i,a,o,s,c,e);var t=n.node(e),u=t.borderTop?t.borderTop:e,p=t.borderBottom?t.borderBottom:e,m=t.borderTop?o:2*o,h=u===p?s-c[l]+1:1;n.setEdge(d,u,{weight:m,minlen:h,nestingEdge:!0}),n.setEdge(p,f,{weight:m,minlen:h,nestingEdge:!0})}),n.parent(l)||n.setEdge(i,d,{weight:0,minlen:s+c[l]})}function i(t){var n={};function r(i,a){var o=t.children(i);o&&o.length&&e.forEach(o,function(e){r(e,a+1)}),n[i]=a}return e.forEach(t.children(),function(e){r(e,1)}),n}function a(t){return e.reduce(t.edges(),function(e,n){return e+t.edge(n).weight},0)}function o(t){var n=t.graph();t.removeNode(n.nestingRoot),delete n.nestingRoot,e.forEach(t.edges(),function(e){t.edge(e).nestingEdge&&t.removeEdge(e)})}return d_}var m_,h_;function g_(){if(h_)return m_;h_=1;var e=Q(),t=$();m_=n;function n(t){function n(i){var a=t.children(i),o=t.node(i);if(a.length&&e.forEach(a,n),e.has(o,`minRank`)){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s<c;++s)r(t,`borderLeft`,`_bl`,i,o,s),r(t,`borderRight`,`_br`,i,o,s)}}e.forEach(t.children(),n)}function r(e,n,r,i,a,o){var s={width:0,height:0,rank:o,borderType:n},c=a[n][o-1],l=t.addDummyNode(e,`border`,s,r);a[n][o]=l,e.setParent(l,i),c&&e.setEdge(c,l,{weight:1})}return m_}var __,v_;function y_(){if(v_)return __;v_=1;var e=Q();__={adjust:t,undo:n};function t(e){var t=e.graph().rankdir.toLowerCase();(t===`lr`||t===`rl`)&&r(e)}function n(e){var t=e.graph().rankdir.toLowerCase();(t===`bt`||t===`rl`)&&a(e),(t===`lr`||t===`rl`)&&(s(e),r(e))}function r(t){e.forEach(t.nodes(),function(e){i(t.node(e))}),e.forEach(t.edges(),function(e){i(t.edge(e))})}function i(e){var t=e.width;e.width=e.height,e.height=t}function a(t){e.forEach(t.nodes(),function(e){o(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,o),e.has(r,`y`)&&o(r)})}function o(e){e.y=-e.y}function s(t){e.forEach(t.nodes(),function(e){c(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,c),e.has(r,`x`)&&c(r)})}function c(e){var t=e.x;e.x=e.y,e.y=t}return __}var b_,x_;function S_(){if(x_)return b_;x_=1;var e=Q();b_=t;function t(t){var n={},r=e.filter(t.nodes(),function(e){return!t.children(e).length}),i=e.max(e.map(r,function(e){return t.node(e).rank})),a=e.map(e.range(i+1),function(){return[]});function o(r){e.has(n,r)||(n[r]=!0,a[t.node(r).rank].push(r),e.forEach(t.successors(r),o))}var s=e.sortBy(r,function(e){return t.node(e).rank});return e.forEach(s,o),a}return b_}var C_,w_;function T_(){if(w_)return C_;w_=1;var e=Q();C_=t;function t(e,t){for(var r=0,i=1;i<t.length;++i)r+=n(e,t[i-1],t[i]);return r}function n(t,n,r){for(var i=e.zipObject(r,e.map(r,function(e,t){return t})),a=e.flatten(e.map(n,function(n){return e.sortBy(e.map(t.outEdges(n),function(e){return{pos:i[e.w],weight:t.edge(e).weight}}),`pos`)}),!0),o=1;o<r.length;)o<<=1;var s=2*o-1;--o;var c=e.map(Array(s),function(){return 0}),l=0;return e.forEach(a.forEach(function(e){var t=e.pos+o;c[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=c[t+1]),t=t-1>>1,c[t]+=e.weight;l+=e.weight*n})),l}return C_}var E_,D_;function O_(){if(D_)return E_;D_=1;var e=Q();E_=t;function t(t,n){return e.map(n,function(n){var r=t.inEdges(n);if(r.length){var i=e.reduce(r,function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:n,barycenter:i.sum/i.weight,weight:i.weight}}return{v:n}})}return E_}var k_,A_;function j_(){if(A_)return k_;A_=1;var e=Q();k_=t;function t(t,r){var i={};return e.forEach(t,function(t,n){var r=i[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:n};e.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)}),e.forEach(r.edges(),function(t){var n=i[t.v],r=i[t.w];!e.isUndefined(n)&&!e.isUndefined(r)&&(r.indegree++,n.out.push(i[t.w]))}),n(e.filter(i,function(e){return!e.indegree}))}function n(t){var n=[];function i(t){return function(n){n.merged||(e.isUndefined(n.barycenter)||e.isUndefined(t.barycenter)||n.barycenter>=t.barycenter)&&r(t,n)}}function a(e){return function(n){n.in.push(e),--n.indegree===0&&t.push(n)}}for(;t.length;){var o=t.pop();n.push(o),e.forEach(o.in.reverse(),i(o)),e.forEach(o.out,a(o))}return e.map(e.filter(n,function(e){return!e.merged}),function(t){return e.pick(t,[`vs`,`i`,`barycenter`,`weight`])})}function r(e,t){var n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}return k_}var M_,N_;function P_(){if(N_)return M_;N_=1;var e=Q(),t=$();M_=n;function n(n,a){var o=t.partition(n,function(t){return e.has(t,`barycenter`)}),s=o.lhs,c=e.sortBy(o.rhs,function(e){return-e.i}),l=[],u=0,d=0,f=0;s.sort(i(!!a)),f=r(l,c,f),e.forEach(s,function(e){f+=e.vs.length,l.push(e.vs),u+=e.barycenter*e.weight,d+=e.weight,f=r(l,c,f)});var p={vs:e.flatten(l,!0)};return d&&(p.barycenter=u/d,p.weight=d),p}function r(t,n,r){for(var i;n.length&&(i=e.last(n)).i<=r;)n.pop(),t.push(i.vs),r++;return r}function i(e){return function(t,n){return t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}}return M_}var F_,I_;function L_(){if(I_)return F_;I_=1;var e=Q(),t=O_(),n=j_(),r=P_();F_=i;function i(s,c,l,u){var d=s.children(c),f=s.node(c),p=f?f.borderLeft:void 0,m=f?f.borderRight:void 0,h={};p&&(d=e.filter(d,function(e){return e!==p&&e!==m}));var g=t(s,d);e.forEach(g,function(t){if(s.children(t.v).length){var n=i(s,t.v,l,u);h[t.v]=n,e.has(n,`barycenter`)&&o(t,n)}});var _=n(g,l);a(_,h);var v=r(_,u);if(p&&(v.vs=e.flatten([p,v.vs,m],!0),s.predecessors(p).length)){var y=s.node(s.predecessors(p)[0]),b=s.node(s.predecessors(m)[0]);e.has(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+y.order+b.order)/(v.weight+2),v.weight+=2}return v}function a(t,n){e.forEach(t,function(t){t.vs=e.flatten(t.vs.map(function(e){return n[e]?n[e].vs:e}),!0)})}function o(t,n){e.isUndefined(t.barycenter)?(t.barycenter=n.barycenter,t.weight=n.weight):(t.barycenter=(t.barycenter*t.weight+n.barycenter*n.weight)/(t.weight+n.weight),t.weight+=n.weight)}return F_}var R_,z_;function B_(){if(z_)return R_;z_=1;var e=Q(),t=Z().Graph;R_=n;function n(n,i,a){var o=r(n),s=new t({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(e){return n.node(e)});return e.forEach(n.nodes(),function(t){var r=n.node(t),c=n.parent(t);(r.rank===i||r.minRank<=i&&i<=r.maxRank)&&(s.setNode(t),s.setParent(t,c||o),e.forEach(n[a](t),function(r){var i=r.v===t?r.w:r.v,a=s.edge(i,t),o=e.isUndefined(a)?0:a.weight;s.setEdge(i,t,{weight:n.edge(r).weight+o})}),e.has(r,`minRank`)&&s.setNode(t,{borderLeft:r.borderLeft[i],borderRight:r.borderRight[i]}))}),s}function r(t){for(var n;t.hasNode(n=e.uniqueId(`_root`)););return n}return R_}var V_,H_;function U_(){if(H_)return V_;H_=1;var e=Q();V_=t;function t(t,n,r){var i={},a;e.forEach(r,function(e){for(var r=t.parent(e),o,s;r;){if(o=t.parent(r),o?(s=i[o],i[o]=r):(s=a,a=r),s&&s!==r){n.setEdge(s,r);return}r=o}})}return V_}var W_,G_;function K_(){if(G_)return W_;G_=1;var e=Q(),t=S_(),n=T_(),r=L_(),i=B_(),a=U_(),o=Z().Graph,s=$();W_=c;function c(r){var i=s.maxRank(r),a=l(r,e.range(1,i+1),`inEdges`),o=l(r,e.range(i-1,-1,-1),`outEdges`),c=t(r);d(r,c);for(var f=1/0,p,m=0,h=0;h<4;++m,++h){u(m%2?a:o,m%4>=2),c=s.buildLayerMatrix(r);var g=n(r,c);g<f&&(h=0,p=e.cloneDeep(c),f=g)}d(r,p)}function l(t,n,r){return e.map(n,function(e){return i(t,e,r)})}function u(t,n){var i=new o;e.forEach(t,function(t){var o=t.graph().root,s=r(t,o,i,n);e.forEach(s.vs,function(e,n){t.node(e).order=n}),a(t,i,s.vs)})}function d(t,n){e.forEach(n,function(n){e.forEach(n,function(e,n){t.node(e).order=n})})}return W_}var q_,J_;function Y_(){if(J_)return q_;J_=1;var e=Q(),t=Z().Graph,n=$();q_={positionX:m,findType1Conflicts:r,findType2Conflicts:i,addConflict:o,hasConflict:s,verticalAlignment:c,horizontalCompaction:l,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function r(t,n){var r={};function i(n,i){var s=0,c=0,l=n.length,u=e.last(i);return e.forEach(i,function(n,d){var f=a(t,n),p=f?t.node(f).order:l;(f||n===u)&&(e.forEach(i.slice(c,d+1),function(n){e.forEach(t.predecessors(n),function(e){var i=t.node(e),a=i.order;(a<s||p<a)&&!(i.dummy&&t.node(n).dummy)&&o(r,e,n)})}),c=d+1,s=p)}),i}return e.reduce(n,i),r}function i(t,n){var r={};function i(n,i,a,s,c){var l;e.forEach(e.range(i,a),function(i){l=n[i],t.node(l).dummy&&e.forEach(t.predecessors(l),function(e){var n=t.node(e);n.dummy&&(n.order<s||n.order>c)&&o(r,e,l)})})}function a(n,r){var a=-1,o,s=0;return e.forEach(r,function(e,c){if(t.node(e).dummy===`border`){var l=t.predecessors(e);l.length&&(o=t.node(l[0]).order,i(r,s,c,a,o),s=c,a=o)}i(r,s,r.length,o,n.length)}),r}return e.reduce(n,a),r}function a(t,n){if(t.node(n).dummy)return e.find(t.predecessors(n),function(e){return t.node(e).dummy})}function o(e,t,n){if(t>n){var r=t;t=n,n=r}var i=e[t];i||(e[t]=i={}),i[n]=!0}function s(t,n,r){if(n>r){var i=n;n=r,r=i}return e.has(t[n],r)}function c(t,n,r,i){var a={},o={},c={};return e.forEach(n,function(t){e.forEach(t,function(e,t){a[e]=e,o[e]=e,c[e]=t})}),e.forEach(n,function(t){var n=-1;e.forEach(t,function(t){var l=i(t);if(l.length){l=e.sortBy(l,function(e){return c[e]});for(var u=(l.length-1)/2,d=Math.floor(u),f=Math.ceil(u);d<=f;++d){var p=l[d];o[t]===t&&n<c[p]&&!s(r,t,p)&&(o[p]=t,o[t]=a[t]=a[p],n=c[p])}}})}),{root:a,align:o}}function l(t,n,r,i,a){var o={},s=u(t,n,r,a),c=a?`borderLeft`:`borderRight`;function l(e,t){for(var n=s.nodes(),r=n.pop(),i={};r;)i[r]?e(r):(i[r]=!0,n.push(r),n=n.concat(t(r))),r=n.pop()}function d(e){o[e]=s.inEdges(e).reduce(function(e,t){return Math.max(e,o[t.v]+s.edge(t))},0)}function f(e){var n=s.outEdges(e).reduce(function(e,t){return Math.min(e,o[t.w]-s.edge(t))},1/0),r=t.node(e);n!==1/0&&r.borderType!==c&&(o[e]=Math.max(o[e],n))}return l(d,s.predecessors.bind(s)),l(f,s.successors.bind(s)),e.forEach(i,function(e){o[e]=o[r[e]]}),o}function u(n,r,i,a){var o=new t,s=n.graph(),c=h(s.nodesep,s.edgesep,a);return e.forEach(r,function(t){var r;e.forEach(t,function(e){var t=i[e];if(o.setNode(t),r){var a=i[r],s=o.edge(a,t);o.setEdge(a,t,Math.max(c(n,e,r),s||0))}r=e})}),o}function d(t,n){return e.minBy(e.values(n),function(n){var r=-1/0,i=1/0;return e.forIn(n,function(e,n){var a=g(t,n)/2;r=Math.max(e+a,r),i=Math.min(e-a,i)}),r-i})}function f(t,n){var r=e.values(n),i=e.min(r),a=e.max(r);e.forEach([`u`,`d`],function(r){e.forEach([`l`,`r`],function(o){var s=r+o,c=t[s],l;if(c!==n){var u=e.values(c);l=o===`l`?i-e.min(u):a-e.max(u),l&&(t[s]=e.mapValues(c,function(e){return e+l}))}})})}function p(t,n){return e.mapValues(t.ul,function(r,i){if(n)return t[n.toLowerCase()][i];var a=e.sortBy(e.map(t,i));return(a[1]+a[2])/2})}function m(t){var a=n.buildLayerMatrix(t),o=e.merge(r(t,a),i(t,a)),s={},u;return e.forEach([`u`,`d`],function(n){u=n===`u`?a:e.values(a).reverse(),e.forEach([`l`,`r`],function(r){r===`r`&&(u=e.map(u,function(t){return e.values(t).reverse()}));var i=(n===`u`?t.predecessors:t.successors).bind(t),a=c(t,u,o,i),d=l(t,u,a.root,a.align,r===`r`);r===`r`&&(d=e.mapValues(d,function(e){return-e})),s[n+r]=d})}),f(s,d(t,s)),p(s,t.graph().align)}function h(t,n,r){return function(i,a,o){var s=i.node(a),c=i.node(o),l=0,u;if(l+=s.width/2,e.has(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:u=-s.width/2;break;case`r`:u=s.width/2}if(u&&(l+=r?u:-u),u=0,l+=(s.dummy?n:t)/2,l+=(c.dummy?n:t)/2,l+=c.width/2,e.has(c,`labelpos`))switch(c.labelpos.toLowerCase()){case`l`:u=c.width/2;break;case`r`:u=-c.width/2}return u&&(l+=r?u:-u),u=0,l}}function g(e,t){return e.node(t).width}return q_}var X_,Z_;function Q_(){if(Z_)return X_;Z_=1;var e=Q(),t=$(),n=Y_().positionX;X_=r;function r(r){r=t.asNonCompoundGraph(r),i(r),e.forEach(n(r),function(e,t){r.node(t).x=e})}function i(n){var r=t.buildLayerMatrix(n),i=n.graph().ranksep,a=0;e.forEach(r,function(t){var r=e.max(e.map(t,function(e){return n.node(e).height}));e.forEach(t,function(e){n.node(e).y=a+r/2}),a+=r+i})}return X_}var $_,ev;function tv(){if(ev)return $_;ev=1;var e=Q(),t=Wg(),n=Yg(),r=s_(),i=$().normalizeRanks,a=u_(),o=$().removeEmptyRanks,s=p_(),c=g_(),l=y_(),u=K_(),d=Q_(),f=$(),p=Z().Graph;$_=m;function m(e,t){var n=t&&t.debugTiming?f.time:f.notime;n(`layout`,function(){var t=n(` buildLayoutGraph`,function(){return T(e)});n(` runLayout`,function(){h(t,n)}),n(` updateInputGraph`,function(){g(e,t)})})}function h(e,p){p(` makeSpaceForEdgeLabels`,function(){E(e)}),p(` removeSelfEdges`,function(){P(e)}),p(` acyclic`,function(){t.run(e)}),p(` nestingGraph.run`,function(){s.run(e)}),p(` rank`,function(){r(f.asNonCompoundGraph(e))}),p(` injectEdgeLabelProxies`,function(){D(e)}),p(` removeEmptyRanks`,function(){o(e)}),p(` nestingGraph.cleanup`,function(){s.cleanup(e)}),p(` normalizeRanks`,function(){i(e)}),p(` assignRankMinMax`,function(){O(e)}),p(` removeEdgeLabelProxies`,function(){k(e)}),p(` normalize.run`,function(){n.run(e)}),p(` parentDummyChains`,function(){a(e)}),p(` addBorderSegments`,function(){c(e)}),p(` order`,function(){u(e)}),p(` insertSelfEdges`,function(){F(e)}),p(` adjustCoordinateSystem`,function(){l.adjust(e)}),p(` position`,function(){d(e)}),p(` positionSelfEdges`,function(){I(e)}),p(` removeBorderNodes`,function(){ee(e)}),p(` normalize.undo`,function(){n.undo(e)}),p(` fixupEdgeLabelCoords`,function(){M(e)}),p(` undoCoordinateSystem`,function(){l.undo(e)}),p(` translateGraph`,function(){A(e)}),p(` assignNodeIntersects`,function(){j(e)}),p(` reversePoints`,function(){N(e)}),p(` acyclic.undo`,function(){t.undo(e)})}function g(t,n){e.forEach(t.nodes(),function(e){var r=t.node(e),i=n.node(e);r&&(r.x=i.x,r.y=i.y,n.children(e).length&&(r.width=i.width,r.height=i.height))}),e.forEach(t.edges(),function(r){var i=t.edge(r),a=n.edge(r);i.points=a.points,e.has(a,`x`)&&(i.x=a.x,i.y=a.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height}var _=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],v={ranksep:50,edgesep:20,nodesep:50,rankdir:`tb`},y=[`acyclicer`,`ranker`,`rankdir`,`align`],b=[`width`,`height`],x={width:0,height:0},S=[`minlen`,`weight`,`width`,`height`,`labeloffset`],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},w=[`labelpos`];function T(t){var n=new p({multigraph:!0,compound:!0}),r=R(t.graph());return n.setGraph(e.merge({},v,L(r,_),e.pick(r,y))),e.forEach(t.nodes(),function(r){var i=R(t.node(r));n.setNode(r,e.defaults(L(i,b),x)),n.setParent(r,t.parent(r))}),e.forEach(t.edges(),function(r){var i=R(t.edge(r));n.setEdge(r,e.merge({},C,L(i,S),e.pick(i,w)))}),n}function E(t){var n=t.graph();n.ranksep/=2,e.forEach(t.edges(),function(e){var r=t.edge(e);r.minlen*=2,r.labelpos.toLowerCase()!==`c`&&(n.rankdir===`TB`||n.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function D(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e};f.addDummyNode(t,`edge-proxy`,i,`_ep`)}})}function O(t){var n=0;e.forEach(t.nodes(),function(r){var i=t.node(r);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,n=e.max(n,i.maxRank))}),t.graph().maxRank=n}function k(t){e.forEach(t.nodes(),function(e){var n=t.node(e);n.dummy===`edge-proxy`&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}function A(t){var n=1/0,r=0,i=1/0,a=0,o=t.graph(),s=o.marginx||0,c=o.marginy||0;function l(e){var t=e.x,o=e.y,s=e.width,c=e.height;n=Math.min(n,t-s/2),r=Math.max(r,t+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}e.forEach(t.nodes(),function(e){l(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.has(r,`x`)&&l(r)}),n-=s,i-=c,e.forEach(t.nodes(),function(e){var r=t.node(e);r.x-=n,r.y-=i}),e.forEach(t.edges(),function(r){var a=t.edge(r);e.forEach(a.points,function(e){e.x-=n,e.y-=i}),e.has(a,`x`)&&(a.x-=n),e.has(a,`y`)&&(a.y-=i)}),o.width=r-n+s,o.height=a-i+c}function j(t){e.forEach(t.edges(),function(e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(f.intersectRect(r,a)),n.points.push(f.intersectRect(i,o))})}function M(t){e.forEach(t.edges(),function(n){var r=t.edge(n);if(e.has(r,`x`))switch((r.labelpos===`l`||r.labelpos===`r`)&&(r.width-=r.labeloffset),r.labelpos){case`l`:r.x-=r.width/2+r.labeloffset;break;case`r`:r.x+=r.width/2+r.labeloffset}})}function N(t){e.forEach(t.edges(),function(e){var n=t.edge(e);n.reversed&&n.points.reverse()})}function ee(t){e.forEach(t.nodes(),function(n){if(t.children(n).length){var r=t.node(n),i=t.node(r.borderTop),a=t.node(r.borderBottom),o=t.node(e.last(r.borderLeft)),s=t.node(e.last(r.borderRight));r.width=Math.abs(s.x-o.x),r.height=Math.abs(a.y-i.y),r.x=o.x+r.width/2,r.y=i.y+r.height/2}}),e.forEach(t.nodes(),function(e){t.node(e).dummy===`border`&&t.removeNode(e)})}function P(t){e.forEach(t.edges(),function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||=[],n.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function F(t){var n=f.buildLayerMatrix(t);e.forEach(n,function(n){var r=0;e.forEach(n,function(n,i){var a=t.node(n);a.order=i+r,e.forEach(a.selfEdges,function(e){f.addDummyNode(t,`selfedge`,{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++r,e:e.e,label:e.label},`_se`)}),delete a.selfEdges})})}function I(t){e.forEach(t.nodes(),function(e){var n=t.node(e);if(n.dummy===`selfedge`){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}})}function L(t,n){return e.mapValues(e.pick(t,n),Number)}function R(t){var n={};return e.forEach(t,function(e,t){n[t.toLowerCase()]=e}),n}return $_}var nv,rv;function iv(){if(rv)return nv;rv=1;var e=Q(),t=$(),n=Z().Graph;nv={debugOrdering:r};function r(r){var i=t.buildLayerMatrix(r),a=new n({compound:!0,multigraph:!0}).setGraph({});return e.forEach(r.nodes(),function(e){a.setNode(e,{label:e}),a.setParent(e,`layer`+r.node(e).rank)}),e.forEach(r.edges(),function(e){a.setEdge(e.v,e.w,{},e.name)}),e.forEach(i,function(t,n){var r=`layer`+n;a.setNode(r,{rank:`same`}),e.reduce(t,function(e,t){return a.setEdge(e,t,{style:`invis`}),t})}),a}return nv}var av,ov;function sv(){return ov?av:(ov=1,av=`0.8.5`,av)}var cv,lv;function uv(){return lv?cv:(lv=1,cv={graphlib:Z(),layout:tv(),debug:iv(),util:{time:$().time,notime:$().notime},version:sv()},cv)}var dv=uv(),fv=un(dv),pv=function(e){return sn(e,`Boolean`)};function mv(e,t){if(e){var n;if(nn(e))for(var r=0,i=e.length;r<i&&(n=t(e[r],r),n!==!1);r++);else if(rn(e)){for(var a in e)if(e.hasOwnProperty(a)&&(n=t(e[a],a),n===!1))break}}}var hv=Object.prototype.hasOwnProperty,gv=(function(e,t){if(e===null||!cn(e))return{};var n={};return mv(t,function(t){hv.call(e,t)&&(n[t]=e[t])}),n}),_v=class extends tn{constructor(){super(...arguments),this.id=`dagre`,this.isCompoundGraph=null,this.config={graphAttributes:[`rankdir`,`align`,`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`,`acyclicer`,`ranker`],nodeAttributes:[`width`,`height`],edgeAttributes:[`minlen`,`weight`,`width`,`height`,`labelpos`,`labeloffset`]}}getDefaultOptions(){return{directed:!0,multigraph:!0,rankdir:`TB`,align:void 0,nodesep:50,edgesep:10,ranksep:50,marginx:0,marginy:0,acyclicer:void 0,ranker:`network-simplex`,nodeSize:[0,0],edgeMinLen:1,edgeWeight:1,edgeLabelSize:[0,0],edgeLabelPos:`r`,edgeLabelOffset:10}}layout(){return We(this,void 0,void 0,function*(){let e=new dv.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});e.setGraph(gv(this.options,this.config.graphAttributes)),e.setDefaultEdgeLabel(()=>({}));let t=vt(this.options.nodeSize,0);this.model.forEachNode(n=>{let r=n._original,[i,a]=ft(t(r)),o={width:i,height:a};if(e.setNode(String(n.id),o),this.isCompound()){if(W(n.parentId))return;e.setParent(String(n.id),String(n.parentId))}});let{edgeLabelSize:n,edgeLabelOffset:r,edgeLabelPos:i,edgeMinLen:a,edgeWeight:o}=this.options,s=vt(n,0,`edge`),c=_t(r,10,`edge`),l=typeof i==`string`?()=>i:gt(i,[`edge`]),u=_t(a,1,`edge`),d=_t(o,1,`edge`);this.model.forEachEdge(t=>{let n=t._original,[r,i]=ft(s(n)),a={width:r,height:i,labelpos:l(n),labeloffset:c(n),minlen:u(n),weight:d(n)};e.setEdge(String(t.source),String(t.target),a,String(t.id))}),fv.layout(e),this.model.forEachNode(t=>{let n=e.node(String(t.id));n&&(t.x=n.x,t.y=n.y,t.size=[n.width,n.height])}),this.model.forEachEdge(t=>{let n=e.edge(String(t.source),String(t.target),String(t.id));if(!n)return;let{width:r,height:i,weight:a,minlen:o,labelpos:s,labeloffset:c,points:l}=n;t.labelSize=[r,i],t.weight=a,t.minLen=o,t.labelPos=s,t.labelOffset=c,t.points=l.map(yt)})})}isCompound(){return this.isCompoundGraph===null?pv(this.options.compound)?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(e=>!W(e.parentId)),this.isCompoundGraph):this.isCompoundGraph}},vv=26,yv=72,bv=24,xv=28,Sv=16,Cv=8,wv=20,Tv=24,Ev=12,Dv=22,Ov=52,kv=24,Av=3,jv=(e,t,n)=>{let r=(e,t)=>{let n=Array.from(new Set(e)).sort((e,t)=>e-t),r=[];for(let e of n)(r.length===0||e-r[r.length-1]>t)&&r.push(e);return r},i=r(e.map(e=>t.get(e.id)),vv),a=r(e.map(e=>n.get(e.id)),yv),o=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n},s=new Map,c=new Map;for(let n of e)s.set(n.id,o(i,t.get(n.id)));for(;;){for(let t of e)c.set(t.id,o(a,n.get(t.id)));let t=new Map,r;for(let i of e){let e=`${s.get(i.id)}:${c.get(i.id)}`,o=t.get(e);if(o===void 0){t.set(e,i);continue}let l=a[c.get(i.id)];r=Math.abs(n.get(i.id)-l)>Math.abs(n.get(o.id)-l)?n.get(i.id):n.get(o.id);break}if(r===void 0)break;a.push(r),a.sort((e,t)=>e-t)}return{col:s,row:c,ncols:i.length,nrows:a.length}},Mv=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)},Nv=(e,t,n,r)=>{let i=new Set;for(let t of e)i.add(`${n.get(t.id)}:${r.get(t.id)}`);let a=new Map;for(let e of t)e.source!==e.target&&(Mv(a,e.source,e.target),Mv(a,e.target,e.source));for(let t of e){let e=a.get(t.id);if(e===void 0)continue;let o=e.map(e=>r.get(e)).sort((e,t)=>e-t),s=o[Math.floor((o.length-1)/2)],c=r.get(t.id),l=Math.abs(s-c);if(l===0)continue;let u=Math.sign(s-c),d;if(l===1){if(!e.some(e=>r.get(e)===s&&Math.abs(n.get(e)-n.get(t.id))===1))continue;d=s}else d=c+u*Math.ceil(l/2);for(let e=d;e!==c;e-=u)if(!i.has(`${n.get(t.id)}:${e}`)){i.delete(`${n.get(t.id)}:${c}`),i.add(`${n.get(t.id)}:${e}`),r.set(t.id,e);break}}},Pv=(e,t,n,r)=>{let i=new Set;for(let t of e)i.add(`${n.get(t.id)}:${r.get(t.id)}`);let a=new Set;for(let e of t)a.add(e.source),a.add(e.target);let o=e.filter(e=>!a.has(e.id)).sort((e,t)=>r.get(e.id)-r.get(t.id));for(let e of o){let t=n.get(e.id);for(let n=0;n<r.get(e.id);n++)if(!i.has(`${t}:${n}`)){i.delete(`${t}:${r.get(e.id)}`),i.add(`${t}:${n}`),r.set(e.id,n);break}}let s=new Map;for(let t of e)Mv(s,r.get(t.id),t);let c=Math.max(...s.keys()),l=new Map,u=-1,d=new Set;for(let e=0;e<=c;e++){let t=s.get(e)??[];(u<0||t.some(e=>d.has(n.get(e.id))))&&(u++,d=new Set);for(let e of t)d.add(n.get(e.id));l.set(e,u)}for(let t of e)r.set(t.id,l.get(r.get(t.id)));return u+1},Fv=(e,t,n,r,i,a)=>{let o=Array.from(e).filter(([,e])=>e===`in`).map(([e])=>e),s=Array.from(e).filter(([,e])=>e===`out`).map(([e])=>e);if(o.length>0){for(let e of n.keys())n.set(e,n.get(e)+1);i++}s.length>0&&i++;let c=(e,i)=>{let o=new Map;for(let n of e){let e=t.find(e=>e.source===n||e.target===n);o.set(n,e.source===n?e.target:e.source)}let s=e=>r.get(o.get(e));e.sort((e,t)=>s(e)-s(t));let c=[];for(let t of e){let e=s(t),o=e=>c.some(t=>r.get(t)===e),l;for(let t=0;l===void 0&&t<a;t++)e+t<a&&!o(e+t)?l=e+t:e-t>=0&&!o(e-t)&&(l=e-t);if(l===void 0){for(let[t,n]of r)n>e&&r.set(t,n+1);a++,l=e+1}n.set(t,i),r.set(t,l),c.push(t)}};return c(o,0),c(s,i-1),{ncols:i,nrows:a}},Iv=e=>e.gate===`t`?[e.chans[0]]:e.gate===`s`?[e.chans[1]]:e.chans,Lv=(e,t,n,r,i,a)=>{let o=(e,t)=>({mirror:e===`r`,hairpin:e===t}),s=e.map((e,a)=>{let s=t.get(e.source);if(e.source===e.target)return{chans:[s],guts:[],flags:[o(`l`,`l`)]};let c=t.get(e.target),l=n.get(e.source),u=n.get(e.target),d=r[a].s===`e`?s:s-1,f=r[a].t===`w`?c-1:c,p=r[a].s===`e`?`l`:`r`,m=r[a].t===`w`?`r`:`l`;if(d===f)return{chans:[d],guts:[],flags:[o(p,m)]};let h=f>d?`r`:`l`,g=i.has(e.target)?`t`:i.has(e.source)?`s`:void 0;return{chans:[d,f],guts:[u>l?u-1:u],flags:[o(p,h),o(h===`r`?`l`:`r`,m)],gate:g}}),c=new Map,l=new Map,u=new Map,d=new Map,f=(e,t)=>u.set(e,Math.max(u.get(e)??0,t));s.forEach((t,n)=>{let r=Iv(t);for(let e of r)c.set(e,(c.get(e)??0)+1);for(let e of t.guts)l.set(e,(l.get(e)??0)+1);let{name:i,arity:o,source:s,target:u}=e[n];s!==u&&(i!==void 0&&t.chans.length===1?f(t.chans[0],x(i,a[`size-font-edge`])+16):i!==void 0&&t.guts.length>0&&d.set(t.guts[0],(d.get(t.guts[0])??0)+1),o!==void 0&&f(r[r.length-1],24+x(o,a[`size-font-arity`])+Cv))});let p=new Map,m=new Map;for(let t of e.filter(e=>e.source===e.target)){let e=(p.get(t.source)??0)+1;p.set(t.source,e);let r=n.get(t.source)-1;m.set(r,Math.max(m.get(r)??0,e))}return{plans:s,chanCnt:c,gutCnt:l,chanLbl:u,gutLbl:d,gutLoop:m}},Rv=(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{let p=Array.from({length:a},()=>0),m=Array.from({length:o},()=>0);for(let a of e)p[t.get(a.id)]=Math.max(p[t.get(a.id)],r.get(a.id)),m[n.get(a.id)]=Math.max(m[n.get(a.id)],i.get(a.id));let h=Array.from({length:a},(e,t)=>{let n=s.get(t)??0;return Math.min(f[`graph-channel-width-max`],Math.max(f[`graph-channel-width-min`],n===0?bv:xv+(n-1)*f[`size-edge-track-gap`],l.get(t)??0))}),g=Array.from({length:o},(e,t)=>{let n=c.get(t)??0,r=u.get(t)??0,i=d.get(t)??0;return Math.min(f[`graph-gutter-height-max`],Math.max(f[`graph-gutter-height-min`],n===0?wv:Tv+(n-1)*f[`size-edge-track-gap`],r>0?Tv+r*Dv:0,i>0?Ov+(i-1)*f[`size-edge-track-gap`]+Ev:0))}),_=[],v=[],y=f[`size-canvas-margin`];for(let e=0;e<p.length;e++)_.push(y+p[e]/2),y+=p[e]+h[e];let b=f[`size-canvas-margin`];for(let e=0;e<m.length;e++)v.push(b+m[e]/2),b+=m[e]+g[e];return{colWidth:p,rowHeight:m,chanW:h,gutH:g,colCX:_,rowCY:v}},zv=(e,t,n,r,i)=>{let{colWidth:a,rowHeight:o,chanW:s,gutH:c,colCX:l,rowCY:u}=r,d=e=>u[e]+o[e]/2+c[e]/2,f=new Map;e.forEach((e,r)=>{let{chans:i,guts:a,flags:o,gate:s}=t[r],c=n.get(`${r}:s`),l=n.get(`${r}:t`);if(e.source===e.target)Mv(f,i[0],{edge:r,posIn:c.y,posOut:l.y-Ov,...o[0]});else if(i.length===1)Mv(f,i[0],{edge:r,posIn:c.y,posOut:l.y,...o[0]});else{let e=d(a[0]);s!==`s`&&Mv(f,i[0],{edge:r,posIn:c.y,posOut:e,...o[0]}),s!==`t`&&Mv(f,i[1],{edge:r,posIn:e,posOut:l.y,...o[1]})}});let p=new Map;for(let[e,t]of f)for(let[n,r]of pe(t,s[e],Sv,i[`size-edge-track-gap`]))p.set(`${e}:${n}`,r);let m=(e,t)=>l[e]+a[e]/2+s[e]/2+p.get(`${e}:${t}`),h=new Map;e.forEach((e,r)=>{let{chans:i,guts:a,gate:o}=t[r];if(a.length===0)return;let s=n.get(`${r}:s`),c=n.get(`${r}:t`);Mv(h,a[0],{edge:r,posIn:o===`s`?s.x:m(i[0],r),posOut:o===`t`?c.x:m(i[1],r),mirror:s.y>d(a[0])})});let g=new Map;for(let[e,t]of h)for(let[n,r]of pe(t,c[e],Ev,i[`size-edge-track-gap`]))g.set(`${e}:${n}`,r);return{chanX:m,gutY:(e,t)=>d(e)+g.get(`${e}:${t}`)}},Bv=(e,t,n,r,i,a,o)=>{let s=new Map;return e.forEach((e,n)=>{e.source===e.target&&s.set(e.source,Math.min(s.get(e.source)??1/0,a(t[n].chans[0],n)))}),e.map((e,c)=>{let l=n.get(`${c}:s`),u=n.get(`${c}:t`),{chans:d,guts:f,flags:p,gate:m}=t[c],h;if(e.source===e.target){let t=a(d[0],c),n=i(e.source)-r.get(e.source)/2-Ov-(t-s.get(e.source));h=[[l.x,l.y],[t,l.y],[t,n],[u.x,n],[u.x,u.y]]}else if(d.length===1){let e=a(d[0],c);h=!p[0].hairpin&&l.y===u.y?[[l.x,l.y],[u.x,u.y]]:[[l.x,l.y],[e,l.y],[e,u.y],[u.x,u.y]]}else{let e=a(d[0],c),t=a(d[1],c),n=o(f[0],c);h=m===`t`?[[l.x,l.y],[e,l.y],[e,n],[u.x,n]]:m===`s`?[[l.x,n],[t,n],[t,u.y],[u.x,u.y]]:[[l.x,l.y],[e,l.y],[e,n],[t,n],[t,u.y],[u.x,u.y]]}return ae(h)})},Vv=(e,t,n,r,i,a,o,s,c,l)=>{let u=ie(e,c),d=zv(e,t,oe(e,n,a,o,r,i,u,void 0,l.fixedPort),s,c),f=oe(e,n,a,o,r,i,u,e=>t[e].guts.length>0?d.gutY(t[e].guts[0],e):void 0,l.fixedPort),{chanX:p,gutY:m}=zv(e,t,f,s,c),h=Bv(e,t,f,i,o,p,m);return{portPos:f,gutY:m,polys:h,hops:me(h).reduce((e,t)=>e+Array.from(t.values()).reduce((e,t)=>e+t.length,0),0)}},Hv=(e,t,n,r,i,a,o,s,c,l)=>{let u=(e,a)=>!n.some(t=>t.guts[0]===e&&Math.min(...t.chans)<a&&a<=Math.max(...t.chans)+ +(t.gate===`t`))&&!t.some(t=>t.source===t.target&&i.get(t.source)===e+1&&r.get(t.source)===a),d=e=>{let t=i.get(e),n=r.get(e),c=(o.rowHeight[t]-a.get(e))/2,l=t>0&&u(t-1,n)?o.gutH[t-1]-wv:0,d=t<s-1&&u(t,n)?o.gutH[t]-wv:0;return[-(c+l),c+d]},f=(e,r)=>t.every((t,a)=>{let o=t.source===e?`s`:t.target===e?`t`:null;if(o===null||n[a].guts.length===0)return!0;let s=n[a].guts[0],c=r.portPos.get(`${a}:${o}`).y-r.gutY(s,a);return i.get(e)>s?c>=kv:c<=-24}),p=t.map((e,t)=>n[t].chans.length===1&&!n[t].flags[0].hairpin&&i.get(e.source)===i.get(e.target)),m=e=>t.filter((t,n)=>p[n]&&e.portPos.get(`${n}:s`).y!==e.portPos.get(`${n}:t`).y).length,h=(e,t)=>e.hops<t.hops||e.hops===t.hops&&m(e)<m(t),g=l();for(let n=0;n<Av;n++){let n=!1;for(let r of e){let[e,i]=d(r.id),a=new Set;t.forEach((e,t)=>{if(!p[t])return;let n=g.portPos.get(`${t}:s`),i=g.portPos.get(`${t}:t`);e.source===r.id?a.add(i.y-n.y):e.target===r.id&&a.add(n.y-i.y)});let o=c.get(r.id)??0,s;for(let t of a){if(t===0||o+t<e||o+t>i)continue;c.set(r.id,o+t);let n=l();f(r.id,n)&&h(n,s?.routing??g)&&(s={shift:o+t,routing:n})}c.set(r.id,s?.shift??o),s!==void 0&&(g=s.routing,n=!0)}if(!n)break}return g},Uv=(e,t,n)=>e.map((e,r)=>{let i=t.get(e.source),a=t.get(e.target);return e.source===e.target?{s:`e`,t:`n`}:{s:n.fixedPort?.(r,`s`)===void 0?i<=a?`e`:`w`:`e`,t:n.fixedPort?.(r,`t`)===void 0?i<a?`w`:`e`:`w`}}),Wv=(e,t,n,r,i,a)=>{let o=ie(t,i),s=new Map;t.forEach((e,t)=>{s.set(`${n[t].s}:${e.source}`,(s.get(`${n[t].s}:${e.source}`)??0)+1),s.set(`${n[t].t}:${e.target}`,(s.get(`${n[t].t}:${e.target}`)??0)+1)});for(let t of e){if(a.fixedSize?.has(t.id))continue;let e=Math.max(s.get(`w:${t.id}`)??0,s.get(`e:${t.id}`)??0),n=Math.max(0,e-i[`graph-node-degree-max`]);r.set(t.id,Math.max(r.get(t.id)+n*o,e*o+10))}},Gv=async(e,t,n={})=>{let r=Array.from(e.nodes.values()),i=e.edges,a=n.gates??new Map,o=r.filter(e=>!a.has(e.id)),s=i.filter(e=>!a.has(e.source)&&!a.has(e.target)),{boxW:c,boxH:l,contentH:u}=re(r,t,()=>t[`size-node-height-scale`]/2,n.fixedSize),d=Math.max(Math.floor(t[`graph-columns-max`]),1),f=new Map,p=new Map,m,h;if(o.some(e=>j(e)!==void 0)){let e=e=>j(e)??1/0,t=Array.from(new Set(o.map(e))).sort((e,t)=>e-t);m=1,h=0;for(let n of t){let t=o.filter(t=>e(t)===n);t.forEach((e,t)=>{f.set(e.id,t%d),p.set(e.id,h+Math.floor(t/d))}),m=Math.max(m,Math.min(t.length,d)),h+=Math.ceil(t.length/d)}}else{let e=new Map,n=new Map;if(o.length>0){let r=new _v({rankdir:`LR`,nodesep:t[`graph-node-separation`],ranksep:t[`graph-rank-separation`],nodeSize:e=>e.size});await r.execute({nodes:o.map(e=>({id:e.id,size:[c.get(e.id),l.get(e.id)]})),edges:s.map((e,t)=>({id:`e${t}`,source:e.source,target:e.target}))}),r.forEachNode(t=>{e.set(String(t.id),t.x),n.set(String(t.id),t.y)})}let r=jv(o,e,n);for(let[e,t]of r.col)f.set(e,t);for(let[e,t]of r.row)p.set(e,t);if(Nv(o,s,f,p),r.ncols>d)for(let e of o){let t=f.get(e.id);f.set(e.id,t%d),p.set(e.id,p.get(e.id)+Math.floor(t/d)*r.nrows)}m=Math.min(r.ncols,d),h=Pv(o,s,f,p)}({ncols:m,nrows:h}=Fv(a,i,f,p,m,h));let g=Uv(i,f,n),_=Lv(i,f,p,g,a,t);if(_.plans.some(e=>e.chans.some(e=>e<0))){for(let e of r)f.set(e.id,f.get(e.id)+1);m++,_=Lv(i,f,p,g,a,t)}let{plans:v,chanCnt:y,gutCnt:b,chanLbl:x,gutLbl:S,gutLoop:C}=_;Wv(r,i,g,l,t,n);let w=Rv(r,f,p,c,l,m,h,y,b,x,S,C,t),T=new Map,E=e=>w.colCX[f.get(e)],D=e=>w.rowCY[p.get(e)]+(T.get(e)??0);return{nodes:r,edges:i,cx:E,cy:D,boxW:c,boxH:l,contentH:u,polys:Hv(r,i,v,f,p,l,w,h,T,()=>Vv(i,v,g,c,l,E,D,w,t,n)).polys}},Kv=`\0`,qv=28,Jv=16,Yv=40,Xv=8,Zv=12,Qv=e=>{let t=Array.from(e.nodes.values());for(let e of t)if(e.id.includes(Kv))throw Error(`node id ${JSON.stringify(e.id)} contains a reserved control character`);let n=t.filter(w);if(n.length!==1)throw Error(`expected exactly one node annotated with "primary: true" (found ${n.length})`);let r=n[0],i=new Set,a=new Set,o=!1;for(let t of e.edges)if(t.source===r.id&&t.target===r.id)o=!0;else if(t.target===r.id)i.add(t.source);else if(t.source===r.id)a.add(t.target);else throw Error(`edge "${t.source}" --> "${t.target}" does not connect to primary node "${r.id}"`);let s=new Set,c=[],l=[];for(let e of t){if(e.id===r.id)continue;let t=i.has(e.id),n=a.has(e.id);if(!t&&!n)throw Error(`node "${e.id}" is neither input nor output of primary node "${r.id}"`);t&&n?(s.add(e.id),c.push({...e,id:e.id+`\0in`}),l.push({...e,id:e.id+`\0out`})):t?c.push(e):l.push(e)}o&&l.unshift({...r,id:r.id+`\0self`,attrs:r.attrs.filter(e=>e.key!==`primary`)});let u=e.edges.map(e=>e.source===r.id&&e.target===r.id?{...e,target:e.target+`\0self`}:e.target===r.id&&s.has(e.source)?{...e,source:e.source+`\0in`}:e.source===r.id&&s.has(e.target)?{...e,target:e.target+`\0out`}:e);return{center:r,inputs:c,outputs:l,nodes:[r,...c,...l],edges:u}},$v={graph:{render:Gv,gated:!0},hub:{render:async(e,t,n={})=>{let{center:r,inputs:i,outputs:a,nodes:o,edges:s}=Qv(e),c=new Set(i.map(e=>e.id)),l=t[`size-canvas-margin`],u=t[`hub-node-gap`],d=t[`size-node-height-scale`],f=e=>e===r.id?1:c.has(e)?0:2,p=s.map(()=>({s:`e`,t:`w`})),{boxW:m,boxH:h,contentH:g}=re(o,t,()=>d/2,n.fixedSize),_=ie(s,t),v=new Map;s.forEach((e,t)=>{v.set(`${p[t].s}:${e.source}`,(v.get(`${p[t].s}:${e.source}`)??0)+1),v.set(`${p[t].t}:${e.target}`,(v.get(`${p[t].t}:${e.target}`)??0)+1)});for(let e of o){if(n.fixedSize?.has(e.id))continue;let r=Math.max(v.get(`w:${e.id}`)??0,v.get(`e:${e.id}`)??0),i=Math.max(0,r-t[`hub-node-degree-max`]);h.set(e.id,Math.max(h.get(e.id)+i*_,r*_+10))}let y=t[`hub-node-count-max`],b=i.length>=a.length?[i,a]:[a,i],S=[y>0&&b[0].length>y,!1],C=S[0]?Math.ceil(b[0].length/2):b[0].length;S[1]=y>0&&b[1].length>C;let w=new Set;for(let[e,t]of b.entries())S[e]&&t.filter((e,t)=>t%2==0).forEach(e=>w.add(e.id));let E=e=>{let t=Math.max(v.get(`w:${e}`)??0,v.get(`e:${e}`)??0);return n.fixedSize?.has(e)?h.get(e)/2:Math.min(h.get(e)/2,(t-1)*_/2+Zv)},D=new Map,O=e=>{let[t,n,r,i]=[-1/0,-1/0,-1/0,0];for(let a of e){let e=h.get(a.id),o=e/2;w.has(a.id)?(o=Math.max(o,n+u+e/2,t+E(a.id)),n=o+e/2,r=o+E(a.id)):(o=Math.max(o,t+u+e/2,r+e/2),t=o+e/2),D.set(a.id,o),i=Math.max(i,o+e/2)}return i},k=[O(i),O(a)],A=Math.max(k[0],h.get(r.id),k[1]),j=new Map;for(let[e,t]of[i,a].entries())for(let n of t)j.set(n.id,l+(A-k[e])/2+D.get(n.id));j.set(r.id,l+A/2);let M=(e,t)=>e.filter(e=>w.has(e.id)===t).reduce((e,t)=>Math.max(e,m.get(t.id)),0),N=[M(i,!0),M(a,!0)],ee=s.reduce((e,n)=>w.has(n.target)&&n.arity!==void 0?Math.max(e,24+x(n.arity,t[`size-font-arity`])+Xv):e,Yv),P=(e,t)=>M(e,!1)+(N[t]>0?(t===1?ee:Yv)+N[t]:0),F=[P(i,0),m.get(r.id),P(a,1)],I=e=>Math.min(f(e.source),f(e.target)),L=[s.filter(e=>I(e)===0).length,s.filter(e=>I(e)===1).length].map(e=>Math.min(t[`hub-channel-width-max`],Math.max(t[`hub-channel-width-min`],qv+(e-1)*t[`size-edge-track-gap`]))),R=[],z=l;for(let e=0;e<3;e++)R.push(z),z+=F[e]+(e<2?L[e]:0);let te=e=>{let t=f(e);return t===0?R[0]+(w.has(e)?N[0]:F[0])-m.get(e)/2:t===2?R[2]+(w.has(e)?F[2]-N[1]:0)+m.get(e)/2:R[1]+F[1]/2},ne=e=>j.get(e),se=oe(s,p,te,ne,m,h,_,void 0,n.fixedPort),ce=[[],[]];s.forEach((e,t)=>{ce[I(e)].push({edge:t,posIn:se.get(`${t}:s`).y,posOut:se.get(`${t}:t`).y,mirror:!1})});let le=new Map;ce.forEach((e,n)=>{for(let[r,i]of pe(e,L[n],Jv,t[`size-edge-track-gap`]))le.set(`${n}:${r}`,i)});let ue=(e,t)=>R[e]+F[e]+L[e]/2+le.get(`${e}:${t}`);return{nodes:o,edges:s,cx:te,cy:ne,boxW:m,boxH:h,contentH:g,polys:s.map((e,t)=>{let n=se.get(`${t}:s`),r=se.get(`${t}:t`),i=ue(I(e),t),a;return a=n.y===r.y?[[n.x,n.y],[r.x,r.y]]:[[n.x,n.y],[i,n.y],[i,r.y],[r.x,r.y]],ae(a)}),styleOf:e=>e.id.endsWith(`\0out`)?{fill:`color-node-ghost-box`,stroke:`color-node-ghost-border`,text:`color-node-ghost-name`,dash:`10 6`}:e.id.endsWith(`\0self`)?{fill:`color-node-self-box`,stroke:`color-node-self-border`,text:`color-node-self-name`,dash:`10 6`}:T(e)}},gated:!1},grid:{render:async(e,t,n={})=>{let r=Array.from(e.nodes.values()).sort((e,t)=>(j(e)??1/0)-(j(t)??1/0)||0),i=t[`size-canvas-margin`],a=t[`grid-gap-horizontal`],o=t[`grid-gap-vertical`],s=Math.max(Math.floor(t[`grid-columns-max`]),1),c=Math.max(Math.floor(t[`grid-columns-min`]),1);if(e.edges.length>0){let t=e.edges[0];throw Error(`diagram type "grid" does not support edges (found ${e.edges.length}, first is "${t.source}" --> "${t.target}")`)}let{boxW:l,boxH:u,contentH:d}=re(r,t,()=>t[`size-node-height-scale`]/2,n.fixedSize),f=e=>n.fixedSize?.has(e.id)??!1,p=r.reduce((e,t)=>f(t)?e:Math.max(e,u.get(t.id)),0),m=r.reduce((e,t)=>Math.max(e,l.get(t.id)),0);for(let e of r)t[`grid-node-height-equal`]&&!f(e)&&u.set(e.id,p),t[`grid-node-width-equal`]&&l.set(e.id,m);let h=Math.max(Math.min(Math.max(Math.ceil(Math.sqrt(r.length)),c),s,r.length),1),g=Math.ceil(r.length/h),_=Array.from({length:h},()=>0),v=Array.from({length:g},()=>0);r.forEach((e,t)=>{let[n,r]=[t%h,Math.floor(t/h)];_[n]=Math.max(_[n],l.get(e.id)),v[r]=Math.max(v[r],u.get(e.id))});let y=[],b=i;for(let e=0;e<h;e++)y.push(b),b+=_[e]+a;let x=[],S=i;for(let e=0;e<g;e++)x.push(S),S+=v[e]+o;let C=new Map,w=new Map;return r.forEach((e,t)=>{C.set(e.id,y[t%h]+l.get(e.id)/2),w.set(e.id,x[Math.floor(t/h)]+u.get(e.id)/2)}),{nodes:r,edges:[],cx:e=>C.get(e),cy:e=>w.get(e),boxW:l,boxH:u,contentH:d,polys:[]}},gated:!1}},ey=Object.keys($v),ty=`graph`,ny=e=>{let t;for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#type[ \t]+([a-z][a-z0-9-]*)[ \t]*$/.exec(n);e!==null&&Object.hasOwn($v,e[1])&&(t=e[1])}return t},ry=[`svg:standalone`,`svg:embedded`,`url:xml`,`url:base64`];e.Gradia=class e{static config=Object.freeze({...p});static parse(e){return d(e)}static async generate(e,t={}){let n=t.type??`graph`;if(!Object.hasOwn($v,n))throw Error(`invalid diagram type "${n}"`);let r=t.format??`svg:standalone`;if(!ry.includes(r))throw Error(`invalid output format "${r}"`);let i=g(t.config??{},{trusted:!0}),a={...p,...i};for(let[t,n]of e.nodes)if(n.id!==t)throw Error(`node id "${n.id}" does not match its map key "${t}"`);for(let t of e.edges)for(let n of[t.source,t.target])if(!e.nodes.has(n))throw Error(`endpoint "${n}" of edge "${t.source}" --> "${t.target}" is not a declared node`);let o=ve(e,ey),s=e=>Se(e,o,n,$v,a),c=Te(e,o),l=Ue(c===null?await s(e):Ee(c,await Promise.all(c.map(e=>s(e.graph))),a),a,i,JSON.stringify({type:n,config:a,explicit:Object.keys(i).sort(),nodes:Array.from(e.nodes.values()),edges:e.edges}));return r===`svg:embedded`?l.replace(/^<\?xml[^?]*\?>\n/,``):r===`url:xml`?`data:image/svg+xml,${encodeURIComponent(l)}`:r===`url:base64`?`data:image/svg+xml;base64,${btoa(Array.from(new TextEncoder().encode(l),e=>String.fromCharCode(e)).join(``))}`:l}static async render(t,n={}){let r=e.parse(t),i=n.type??ny(t),a={..._(t),...g(n.config??{},{trusted:!0})};return e.generate(r,{...n,type:i,config:a})}},e.diagramFormatDefault=`svg:standalone`,e.diagramFormats=ry,e.diagramTypeDefault=ty,e.diagramTypes=ey});
|