@rse/gradia 1.4.1 → 1.4.2
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 +6 -0
- package/dst/gradia-api-type-graph.js +9 -0
- package/dst/gradia-api.umd.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -392,6 +392,12 @@ unlabeled diagram can be spaced out, while the `-max` options cap it, so
|
|
|
392
392
|
that neither many parallel edges nor a long label can push the nodes
|
|
393
393
|
apart without bound.
|
|
394
394
|
|
|
395
|
+
In a `graph` diagram (a `graph` container level, too) whose nodes end up
|
|
396
|
+
in a single column, the container boxes are widened to the widest one,
|
|
397
|
+
so the stacked boxes line up: their content stays centered, and their
|
|
398
|
+
height remains the one of their content. With more than one column,
|
|
399
|
+
every container box keeps the width of its own content.
|
|
400
|
+
|
|
395
401
|
The `hub-node-count-max` option controls the wrapping of the input and
|
|
396
402
|
output column of a `hub` diagram: given a positive value, a column of
|
|
397
403
|
more nodes than this wraps into two staggered sub-columns, whose nodes
|
|
@@ -694,6 +694,15 @@ export const render = async (graph, config, level = {}) => {
|
|
|
694
694
|
ncols = Math.min(snapped.ncols, maxCols);
|
|
695
695
|
nrows = compactRows(real, realEdges, col, row);
|
|
696
696
|
}
|
|
697
|
+
/* in a single-column layout, widen the container placeholders to
|
|
698
|
+
the widest one, so the stacked container boxes line up (their
|
|
699
|
+
content stays centered and their height the one of their content) */
|
|
700
|
+
if (ncols === 1) {
|
|
701
|
+
const fixed = real.filter((node) => level.fixedSize?.has(node.id));
|
|
702
|
+
const width = fixed.reduce((a, node) => Math.max(a, boxW.get(node.id)), 0);
|
|
703
|
+
for (const node of fixed)
|
|
704
|
+
boxW.set(node.id, width);
|
|
705
|
+
}
|
|
697
706
|
/* place the gate nodes into their own boundary columns */
|
|
698
707
|
({ ncols, nrows } = placeGates(gates, edges, col, row, ncols, nrows));
|
|
699
708
|
/* determine the attachment sides of every edge */
|
package/dst/gradia-api.umd.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
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
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=16,Re=(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)},m=[];return{claim:(e,t,n=!0,r)=>{if(r!==void 0){let e=m.indexOf(r);e>=0&&m.splice(e,1)}let i=e[0],a=1/0;for(let r of e){let e=(f(l,r)+f(m,r))*(d+1)+(n?p(r,t):0);if(e<a&&(i=r,a=e),e===0)break}return l.push(i),i},reserve:e=>{m.push(e)},occupied:l}},ze=(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>`]},Be=(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)}},Ve=(e,t,n)=>{let r=x(e,n[`size-font-arity`]),i=b(n),a=_e(t,1),o=_e(t,.999),s=[];for(let e=0;e<Ie;e++){let t=e*((a.horizontal?r:i)+Fe);if(a.horizontal){let e=Math.sign(a.x-o.x)||1,n=a.x-e*(24+r/2+t);s.push([n-r/2,a.y-4-i,n+r/2,a.y-4]),s.push([n-r/2,a.y+4,n+r/2,a.y+4+i])}else{let e=Math.sign(a.y-o.y)||1,n=a.y-e*(24+t);s.push([a.x+6,n+6-i,a.x+6+r,n+6]),s.push([a.x-6-r,n+6-i,a.x-6,n+6])}}return s},He=(e,t,n,r)=>{if(e.arity===void 0)return[];let i=n(t,!1,t[0]);return[`<text x="${(i[0]+i[2])/2}" y="${i[3]-3}" class="${r.text(`color-edge-arity`,`size-font-arity`,{middle:!0,halo:!0})}">${C(e.arity)}</text>`]},Ue=(e,t,n,r,i)=>{if(e.name===void 0)return[];let a=x(e.name,i[`size-font-edge`]),o=i[`size-font-edge`]+4,s=(e,t,n)=>{let r=e+n/2,i=t-n/2,a=[(e+t)/2,r,i];if(i>r){let e=Math.min(Math.ceil((i-r)/(n/2)),Le);for(let t=1;t<e;t++)a.push(r+(i-r)*t/e)}return a},c=_e(t,.5),l=e=>Math.abs((e[0]+e[2])/2-c.x)+Math.abs((e[1]+e[3])/2-c.y),u=[];for(let e=0;e<t.length-1;e++){let[n,r]=[t[e],t[e+1]];if(n[1]===r[1])for(let e of s(Math.min(n[0],r[0]),Math.max(n[0],r[0]),a))u.push([e-a/2,n[1]-3-o,e+a/2,n[1]-3]),u.push([e-a/2,n[1]+3,e+a/2,n[1]+3+o]);else for(let e of s(Math.min(n[1],r[1]),Math.max(n[1],r[1]),o))u.push([n[0]+5,e-o/2,n[0]+5+a,e+o/2]),u.push([n[0]-5-a,e-o/2,n[0]-5,e+o/2])}u.sort((e,t)=>l(e)-l(t));let d=n(u);return[`<text x="${(d[0]+d[2])/2}" y="${d[3]-3}" class="${r.text(`color-edge-name`,`size-font-edge`,{middle:!0,halo:!0})}">${C(e.name)}</text>`]},We=(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>`],Ge=(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>`]},Ke=(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,reserve:O,occupied:k}=Re(e,E,t[`size-edge-hop-radius`],t),A=o.map((e,n)=>`<path d="${ge(e,E[n],t[`size-edge-corner-radius`],t[`size-edge-hop-radius`])}" class="${S}" marker-end="url(#${d})"/>`),j=a.map((e,n)=>e.arity===void 0?void 0:Ve(e.arity,o[n],t));for(let e of j)e!==void 0&&O(e[0]);let M=[];a.forEach((e,n)=>{M.push(...Ue(e,o[n],(e,t)=>D(e,n,t),x,t))}),a.forEach((e,t)=>{let n=j[t];n!==void 0&&M.push(...He(e,n,(e,n,r)=>D(e,t,n,r),x))});let N=i.flatMap(n=>ze(n,e,l(n),x,t)),ee=s.flatMap(e=>We(e,x)),P=c.flatMap(e=>Ge(e,x,t)),F=s.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),I=c.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),L=Be(e,[...k,...F,...I],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="${L.x} ${L.y} ${L.w} ${L.h}" width="${L.w}" height="${L.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>`,...ee,...P,...A,...N,...M,`</svg>`,``].join(`
|
|
5
|
-
`)};function qe(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 Je={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 Ye=new Set([32,9,10,13]),Xe=new Set([43,45,42,47,37,33,38,124,61,60,62]),Ze=new Map([[`true`,H.BOOLEAN],[`false`,H.BOOLEAN],[`null`,H.NULL]]),Qe=new Map([[`===`,!0],[`!==`,!0],[`<=`,!0],[`>=`,!0],[`&&`,!0],[`||`,!0],[`+`,!0],[`-`,!0],[`*`,!0],[`/`,!0],[`%`,!0],[`!`,!0],[`<`,!0],[`>`,!0]]),$e=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]]),et=new Map;for(let[e,t]of $e.entries())et.set(e,{type:t,value:String.fromCharCode(e)});function tt(e){return e>=48&&e<=57}function nt(e){return e>=97&&e<=122||e>=65&&e<=90||e===95}function rt(e){return nt(e)||tt(e)}function it(e){return Xe.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 at=new Map([[`||`,2],[`&&`,3],[`===`,4],[`!==`,4],[`>`,5],[`>=`,5],[`<`,5],[`<=`,5],[`+`,6],[`-`,6],[`*`,7],[`/`,7],[`%`,7],[`!`,8]]),ot={type:U.Literal,value:null},st={type:U.Literal,value:!0},ct={type:U.Literal,value:!1},lt=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?at.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`?st:ct;case H.NULL:return i(),ot;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}},ut=(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 dt(e){let t=lt((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&&tt(t.charCodeAt(a));)a++;if(a<n&&t.charCodeAt(a)===46)for(a++;a<n&&tt(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&&nt(t.charCodeAt(a)))for(a++;a<n&&rt(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:H.FUNCTION,value:r}}function l(){let e=a++;for(;a<n&&rt(t.charCodeAt(a));)a++;let r=t.slice(e,a),i=Ze.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(Qe.has(e))return a+=3,{type:H.OPERATOR,value:e}}if(a+1<n){let e=t.substring(a,a+2);if(Qe.has(e))return a+=2,{type:H.OPERATOR,value:e}}let e=t[a];if(Qe.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,Ye.has(d)){a++;continue}let f=et.get(e);if(f)r[i++]=f,a++;else if(e!==34&&e!==39){if(tt(e)||e===45&&a+1<n&&tt(t.charCodeAt(a+1)))r[i++]=s();else if(e!==64){if(nt(e))r[i++]=l();else{if(!it(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}))({},Je);return(e={})=>ut(t,n,e)}function ft(e,t={}){return dt(e)(t)}function pt(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)try{return dt(n),ft(n,t)}catch{return}}function mt(e){return typeof e==`number`}function ht(e){if(!e)return[0,0,0];if(mt(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 gt(e){return mt(e)?!0:Array.isArray(e)?e.every(e=>mt(e)):!1}function W(e){return e==null}function _t(e){return typeof e==`string`}function vt(e){return typeof e==`function`}function yt(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 pt(n,r)}}return()=>e}function bt(e,t,n=`node`){if(W(e))return()=>t;if(_t(e)){let r=yt(e,[n]);return e=>{let n=r(e);return mt(n)?n:t}}return vt(e)?e:mt(e)?()=>e:()=>t}function xt(e,t=10,n=`node`){if(W(e))return()=>t;if(_t(e)){let r=yt(e,[n]);return e=>{let n=r(e);return gt(n)?n:t}}return vt(e)?e:mt(e)||Array.isArray(e)?()=>e:()=>t}function St(e){return[e.x,e.y,e.z??0]}var Ct=class{constructor(e,t={}){this.edgeIdCounter=new Map,this.nodeMap=Et(e.nodes,t.node),this.edgeMap=Dt(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()}},wt=[`id`,`x`,`y`,`z`,`vx`,`vy`,`vz`,`fx`,`fy`,`fz`,`parentId`],Tt=[`id`,`source`,`target`,`points`];function Et(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 wt){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 Dt(e,t,n){let r=new Map;for(let i of e){let e={_original:i};for(let t of Tt){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 Ot=class{constructor(e,t={}){this.graph=new Ct(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()}},kt=Symbol(`Comlink.proxy`),At=Symbol(`Comlink.endpoint`),jt=Symbol(`Comlink.releaseProxy`),Mt=Symbol(`Comlink.finalizer`),Nt=Symbol(`Comlink.thrown`),Pt=e=>typeof e==`object`&&!!e||typeof e==`function`,Ft=new Map([[`proxy`,{canHandle:e=>Pt(e)&&e[kt],serialize(e){let{port1:t,port2:n}=new MessageChannel;return Lt(e,t),[n,[n]]},deserialize(e){return e.start(),Bt(e)}}],[`throw`,{canHandle:e=>Pt(e)&&Nt 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 It(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function Lt(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!It(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(en),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]]=en(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=Qt(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;Lt(e,n),l=Zt(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[Nt]:0}}Promise.resolve(l).catch(e=>({value:e,[Nt]:0})).then(n=>{let[i,s]=$t(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),zt(t),Mt in e&&typeof e[Mt]==`function`&&e[Mt]())}).catch(e=>{let[n,r]=$t({value:TypeError(`Unserializable return value`),[Nt]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function Rt(e){return e.constructor.name===`MessagePort`}function zt(e){Rt(e)&&e.close()}function Bt(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)}}),qt(e,n,[],t)}function Vt(e){if(e)throw Error(`Proxy has been released and is not useable`)}function Ht(e){return tn(e,new Map,{type:`RELEASE`}).then(()=>{zt(e)})}var Ut=new WeakMap,Wt=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(Ut.get(e)||0)-1;Ut.set(e,t),t===0&&Ht(e)});function Gt(e,t){let n=(Ut.get(t)||0)+1;Ut.set(t,n),Wt&&Wt.register(e,t,e)}function Kt(e){Wt&&Wt.unregister(e)}function qt(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(Vt(i),o===jt)return()=>{Kt(a),Ht(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=tn(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(en);return r.then.bind(r)}return qt(e,t,[...n,o])},set(r,a,o){Vt(i);let[s,c]=$t(o);return tn(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(en)},apply(r,a,o){Vt(i);let s=n[n.length-1];if(s===At)return tn(e,t,{type:`ENDPOINT`}).then(en);if(s===`bind`)return qt(e,t,n.slice(0,-1));let[c,l]=Yt(o);return tn(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(en)},construct(r,a){Vt(i);let[o,s]=Yt(a);return tn(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(en)}});return Gt(a,e),a}function Jt(e){return Array.prototype.concat.apply([],e)}function Yt(e){let t=e.map($t);return[t.map(e=>e[0]),Jt(t.map(e=>e[1]))]}var Xt=new WeakMap;function Zt(e,t){return Xt.set(e,t),e}function Qt(e){return Object.assign(e,{[kt]:!0})}function $t(e){for(let[t,n]of Ft)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},Xt.get(e)||[]]}function en(e){switch(e.type){case`HANDLER`:return Ft.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function tn(e,t,n,r){return new Promise(i=>{let a=nn();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function nn(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}var rn=class{constructor(){this.worker=null,this.workerApi=null}execute(e,t,n){return qe(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 qe(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=Bt(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`}},an=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 qe(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 Ot(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 qe(this,void 0,void 0,function*(){try{this.supervisor||=new rn;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 on(e){return Array.isArray(e)}var sn=(function(e){var t=typeof e;return e!==null&&t===`object`||t===`function`}),cn=function(e){return typeof e==`object`&&!!e},ln={}.toString,un=function(e,t){return ln.call(e)===`[object `+t+`]`},dn=function(e){if(!cn(e)||!un(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},fn=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function pn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function mn(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 hn,gn;function _n(){if(gn)return hn;gn=1;function e(){this.__data__=[],this.size=0}return hn=e,hn}var vn,yn;function bn(){if(yn)return vn;yn=1;function e(e,t){return e===t||e!==e&&t!==t}return vn=e,vn}var xn,Sn;function Cn(){if(Sn)return xn;Sn=1;var e=bn();function t(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}return xn=t,xn}var wn,Tn;function En(){if(Tn)return wn;Tn=1;var e=Cn(),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 wn=n,wn}var Dn,On;function kn(){if(On)return Dn;On=1;var e=Cn();function t(t){var n=this.__data__,r=e(n,t);return r<0?void 0:n[r][1]}return Dn=t,Dn}var An,jn;function Mn(){if(jn)return An;jn=1;var e=Cn();function t(t){return e(this.__data__,t)>-1}return An=t,An}var Nn,Pn;function Fn(){if(Pn)return Nn;Pn=1;var e=Cn();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 Nn=t,Nn}var In,Ln;function Rn(){if(Ln)return In;Ln=1;var e=_n(),t=En(),n=kn(),r=Mn(),i=Fn();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,In=a,In}var zn,Bn;function Vn(){if(Bn)return zn;Bn=1;var e=Rn();function t(){this.__data__=new e,this.size=0}return zn=t,zn}var Hn,Un;function Wn(){if(Un)return Hn;Un=1;function e(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}return Hn=e,Hn}var Gn,Kn;function qn(){if(Kn)return Gn;Kn=1;function e(e){return this.__data__.get(e)}return Gn=e,Gn}var Jn,Yn;function Xn(){if(Yn)return Jn;Yn=1;function e(e){return this.__data__.has(e)}return Jn=e,Jn}var Zn,Qn;function $n(){return Qn?Zn:(Qn=1,Zn=typeof fn==`object`&&fn&&fn.Object===Object&&fn,Zn)}var er,tr;function G(){if(tr)return er;tr=1;var e=$n(),t=typeof self==`object`&&self&&self.Object===Object&&self;return er=e||t||Function(`return this`)(),er}var nr,rr;function ir(){return rr?nr:(rr=1,nr=G().Symbol,nr)}var ar,or;function sr(){if(or)return ar;or=1;var e=ir(),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 ar=a,ar}var cr,lr;function ur(){if(lr)return cr;lr=1;var e=Object.prototype.toString;function t(t){return e.call(t)}return cr=t,cr}var dr,fr;function pr(){if(fr)return dr;fr=1;var e=ir(),t=sr(),n=ur(),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 dr=o,dr}var mr,hr;function K(){if(hr)return mr;hr=1;function e(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}return mr=e,mr}var gr,_r;function vr(){if(_r)return gr;_r=1;var e=pr(),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 gr=o,gr}var yr,br;function xr(){return br?yr:(br=1,yr=G()[`__core-js_shared__`],yr)}var Sr,Cr;function wr(){if(Cr)return Sr;Cr=1;var e=xr(),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 Sr=n,Sr}var Tr,Er;function Dr(){if(Er)return Tr;Er=1;var e=Function.prototype.toString;function t(t){if(t!=null){try{return e.call(t)}catch{}try{return t+``}catch{}}return``}return Tr=t,Tr}var Or,kr;function Ar(){if(kr)return Or;kr=1;var e=vr(),t=wr(),n=K(),r=Dr(),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 Or=d,Or}var jr,Mr;function Nr(){if(Mr)return jr;Mr=1;function e(e,t){return e?.[t]}return jr=e,jr}var Pr,Fr;function Ir(){if(Fr)return Pr;Fr=1;var e=Ar(),t=Nr();function n(n,r){var i=t(n,r);return e(i)?i:void 0}return Pr=n,Pr}var Lr,Rr;function zr(){return Rr?Lr:(Rr=1,Lr=Ir()(G(),`Map`),Lr)}var Br,Vr;function Hr(){return Vr?Br:(Vr=1,Br=Ir()(Object,`create`),Br)}var Ur,Wr;function Gr(){if(Wr)return Ur;Wr=1;var e=Hr();function t(){this.__data__=e?e(null):{},this.size=0}return Ur=t,Ur}var Kr,qr;function Jr(){if(qr)return Kr;qr=1;function e(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}return Kr=e,Kr}var Yr,Xr;function Zr(){if(Xr)return Yr;Xr=1;var e=Hr(),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 Yr=r,Yr}var Qr,$r;function ei(){if($r)return Qr;$r=1;var e=Hr(),t=Object.prototype.hasOwnProperty;function n(n){var r=this.__data__;return e?r[n]!==void 0:t.call(r,n)}return Qr=n,Qr}var ti,ni;function ri(){if(ni)return ti;ni=1;var e=Hr(),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 ti=n,ti}var ii,ai;function oi(){if(ai)return ii;ai=1;var e=Gr(),t=Jr(),n=Zr(),r=ei(),i=ri();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,ii=a,ii}var si,ci;function li(){if(ci)return si;ci=1;var e=oi(),t=Rn(),n=zr();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return si=r,si}var ui,di;function fi(){if(di)return ui;di=1;function e(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}return ui=e,ui}var pi,mi;function hi(){if(mi)return pi;mi=1;var e=fi();function t(t,n){var r=t.__data__;return e(n)?r[typeof n==`string`?`string`:`hash`]:r.map}return pi=t,pi}var gi,_i;function vi(){if(_i)return gi;_i=1;var e=hi();function t(t){var n=e(this,t).delete(t);return this.size-=+!!n,n}return gi=t,gi}var yi,bi;function xi(){if(bi)return yi;bi=1;var e=hi();function t(t){return e(this,t).get(t)}return yi=t,yi}var Si,Ci;function wi(){if(Ci)return Si;Ci=1;var e=hi();function t(t){return e(this,t).has(t)}return Si=t,Si}var Ti,Ei;function Di(){if(Ei)return Ti;Ei=1;var e=hi();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 Ti=t,Ti}var Oi,ki;function Ai(){if(ki)return Oi;ki=1;var e=li(),t=vi(),n=xi(),r=wi(),i=Di();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,Oi=a,Oi}var ji,Mi;function Ni(){if(Mi)return ji;Mi=1;var e=Rn(),t=zr(),n=Ai(),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 ji=i,ji}var Pi,Fi;function Ii(){if(Fi)return Pi;Fi=1;var e=Rn(),t=Vn(),n=Wn(),r=qn(),i=Xn(),a=Ni();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,Pi=o,Pi}var Li,Ri;function zi(){if(Ri)return Li;Ri=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 Li=e,Li}var Bi,Vi;function Hi(){if(Vi)return Bi;Vi=1;var e=Ir();return Bi=function(){try{var t=e(Object,`defineProperty`);return t({},``,{}),t}catch{}}(),Bi}var Ui,Wi;function Gi(){if(Wi)return Ui;Wi=1;var e=Hi();function t(t,n,r){n==`__proto__`&&e?e(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}return Ui=t,Ui}var Ki,qi;function Ji(){if(qi)return Ki;qi=1;var e=Gi(),t=bn(),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 Ki=r,Ki}var Yi,Xi;function Zi(){if(Xi)return Yi;Xi=1;var e=Ji(),t=Gi();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 Yi=n,Yi}var Qi,$i;function ea(){if($i)return Qi;$i=1;function e(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}return Qi=e,Qi}var ta,na;function q(){if(na)return ta;na=1;function e(e){return typeof e==`object`&&!!e}return ta=e,ta}var ra,ia;function aa(){if(ia)return ra;ia=1;var e=pr(),t=q(),n=`[object Arguments]`;function r(r){return t(r)&&e(r)==n}return ra=r,ra}var oa,sa;function ca(){if(sa)return oa;sa=1;var e=aa(),t=q(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable;return oa=e(function(){return arguments}())?e:function(e){return t(e)&&r.call(e,`callee`)&&!i.call(e,`callee`)},oa}var la,ua;function J(){return ua?la:(ua=1,la=Array.isArray,la)}var da={exports:{}},fa,pa;function ma(){if(pa)return fa;pa=1;function e(){return!1}return fa=e,fa}da.exports;var ha;function ga(){return ha?da.exports:(ha=1,(function(e,t){var n=G(),r=ma(),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})(da,da.exports),da.exports)}var _a,va;function ya(){if(va)return _a;va=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 _a=n,_a}var ba,xa;function Sa(){if(xa)return ba;xa=1;var e=9007199254740991;function t(t){return typeof t==`number`&&t>-1&&t%1==0&&t<=e}return ba=t,ba}var Ca,wa;function Ta(){if(wa)return Ca;wa=1;var e=pr(),t=Sa(),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 Ca=O,Ca}var Ea,Da;function Oa(){if(Da)return Ea;Da=1;function e(e){return function(t){return e(t)}}return Ea=e,Ea}var ka={exports:{}};ka.exports;var Aa;function ja(){return Aa?ka.exports:(Aa=1,(function(e,t){var n=$n(),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{}}()})(ka,ka.exports),ka.exports)}var Ma,Na;function Pa(){if(Na)return Ma;Na=1;var e=Ta(),t=Oa(),n=ja(),r=n&&n.isTypedArray;return Ma=r?t(r):e,Ma}var Fa,Ia;function La(){if(Ia)return Fa;Ia=1;var e=ea(),t=ca(),n=J(),r=ga(),i=ya(),a=Pa(),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 Fa=s,Fa}var Ra,za;function Ba(){if(za)return Ra;za=1;var e=Object.prototype;function t(t){var n=t&&t.constructor;return t===(typeof n==`function`&&n.prototype||e)}return Ra=t,Ra}var Va,Ha;function Ua(){if(Ha)return Va;Ha=1;function e(e,t){return function(n){return e(t(n))}}return Va=e,Va}var Wa,Ga;function Ka(){return Ga?Wa:(Ga=1,Wa=Ua()(Object.keys,Object),Wa)}var qa,Ja;function Ya(){if(Ja)return qa;Ja=1;var e=Ba(),t=Ka(),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 qa=r,qa}var Xa,Za;function Qa(){if(Za)return Xa;Za=1;var e=vr(),t=Sa();function n(n){return n!=null&&t(n.length)&&!e(n)}return Xa=n,Xa}var $a,eo;function to(){if(eo)return $a;eo=1;var e=La(),t=Ya(),n=Qa();function r(r){return n(r)?e(r):t(r)}return $a=r,$a}var no,ro;function io(){if(ro)return no;ro=1;var e=Zi(),t=to();function n(n,r){return n&&e(r,t(r),n)}return no=n,no}var ao,oo;function so(){if(oo)return ao;oo=1;function e(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return ao=e,ao}var co,lo;function uo(){if(lo)return co;lo=1;var e=K(),t=Ba(),n=so(),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 co=i,co}var fo,po;function mo(){if(po)return fo;po=1;var e=La(),t=uo(),n=Qa();function r(r){return n(r)?e(r,!0):t(r)}return fo=r,fo}var ho,go;function _o(){if(go)return ho;go=1;var e=Zi(),t=mo();function n(n,r){return n&&e(r,t(r),n)}return ho=n,ho}var vo={exports:{}};vo.exports;var yo;function bo(){return yo?vo.exports:(yo=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})(vo,vo.exports),vo.exports)}var xo,So;function Co(){if(So)return xo;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 xo=e,xo}var wo,To;function Eo(){if(To)return wo;To=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 wo=e,wo}var Do,Oo;function ko(){if(Oo)return Do;Oo=1;function e(){return[]}return Do=e,Do}var Ao,jo;function Mo(){if(jo)return Ao;jo=1;var e=Eo(),t=ko(),n=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return Ao=r?function(t){return t==null?[]:(t=Object(t),e(r(t),function(e){return n.call(t,e)}))}:t,Ao}var No,Po;function Fo(){if(Po)return No;Po=1;var e=Zi(),t=Mo();function n(n,r){return e(n,t(n),r)}return No=n,No}var Io,Lo;function Ro(){if(Lo)return Io;Lo=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 Io=e,Io}var zo,Bo;function Vo(){return Bo?zo:(Bo=1,zo=Ua()(Object.getPrototypeOf,Object),zo)}var Ho,Uo;function Wo(){if(Uo)return Ho;Uo=1;var e=Ro(),t=Vo(),n=Mo(),r=ko();return Ho=Object.getOwnPropertySymbols?function(r){for(var i=[];r;)e(i,n(r)),r=t(r);return i}:r,Ho}var Go,Ko;function qo(){if(Ko)return Go;Ko=1;var e=Zi(),t=Wo();function n(n,r){return e(n,t(n),r)}return Go=n,Go}var Jo,Yo;function Xo(){if(Yo)return Jo;Yo=1;var e=Ro(),t=J();function n(n,r,i){var a=r(n);return t(n)?a:e(a,i(n))}return Jo=n,Jo}var Zo,Qo;function $o(){if(Qo)return Zo;Qo=1;var e=Xo(),t=Mo(),n=to();function r(r){return e(r,n,t)}return Zo=r,Zo}var es,ts;function ns(){if(ts)return es;ts=1;var e=Xo(),t=Wo(),n=mo();function r(r){return e(r,n,t)}return es=r,es}var rs,is;function as(){return is?rs:(is=1,rs=Ir()(G(),`DataView`),rs)}var os,ss;function cs(){return ss?os:(ss=1,os=Ir()(G(),`Promise`),os)}var ls,us;function ds(){return us?ls:(us=1,ls=Ir()(G(),`Set`),ls)}var fs,ps;function ms(){return ps?fs:(ps=1,fs=Ir()(G(),`WeakMap`),fs)}var hs,gs;function _s(){if(gs)return hs;gs=1;var e=as(),t=zr(),n=cs(),r=ds(),i=ms(),a=pr(),o=Dr(),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}),hs=v,hs}var vs,ys;function bs(){if(ys)return vs;ys=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 vs=t,vs}var xs,Ss;function Cs(){return Ss?xs:(Ss=1,xs=G().Uint8Array,xs)}var ws,Ts;function Es(){if(Ts)return ws;Ts=1;var e=Cs();function t(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}return ws=t,ws}var Ds,Os;function ks(){if(Os)return Ds;Os=1;var e=Es();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}return Ds=t,Ds}var As,js;function Ms(){if(js)return As;js=1;var e=/\w*$/;function t(t){var n=new t.constructor(t.source,e.exec(t));return n.lastIndex=t.lastIndex,n}return As=t,As}var Ns,Ps;function Fs(){if(Ps)return Ns;Ps=1;var e=ir(),t=e?e.prototype:void 0,n=t?t.valueOf:void 0;function r(e){return n?Object(n.call(e)):{}}return Ns=r,Ns}var Is,Ls;function Rs(){if(Ls)return Is;Ls=1;var e=Es();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}return Is=t,Is}var zs,Bs;function Vs(){if(Bs)return zs;Bs=1;var e=Es(),t=ks(),n=Ms(),r=Fs(),i=Rs(),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 zs=w,zs}var Hs,Us;function Ws(){if(Us)return Hs;Us=1;var e=K(),t=Object.create;return Hs=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}}(),Hs}var Gs,Ks;function qs(){if(Ks)return Gs;Ks=1;var e=Ws(),t=Vo(),n=Ba();function r(r){return typeof r.constructor==`function`&&!n(r)?e(t(r)):{}}return Gs=r,Gs}var Js,Ys;function Xs(){if(Ys)return Js;Ys=1;var e=_s(),t=q(),n=`[object Map]`;function r(r){return t(r)&&e(r)==n}return Js=r,Js}var Zs,Qs;function $s(){if(Qs)return Zs;Qs=1;var e=Xs(),t=Oa(),n=ja(),r=n&&n.isMap;return Zs=r?t(r):e,Zs}var ec,tc;function nc(){if(tc)return ec;tc=1;var e=_s(),t=q(),n=`[object Set]`;function r(r){return t(r)&&e(r)==n}return ec=r,ec}var rc,ic;function ac(){if(ic)return rc;ic=1;var e=nc(),t=Oa(),n=ja(),r=n&&n.isSet;return rc=r?t(r):e,rc}var oc,sc;function cc(){if(sc)return oc;sc=1;var e=Ii(),t=zi(),n=Ji(),r=io(),i=_o(),a=bo(),o=Co(),s=Fo(),c=qo(),l=$o(),u=ns(),d=_s(),f=bs(),p=Vs(),m=qs(),h=J(),g=ga(),_=$s(),v=K(),y=ac(),b=to(),x=mo(),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 oc=de,oc}var lc,uc;function dc(){if(uc)return lc;uc=1;var e=cc(),t=4;function n(n){return e(n,t)}return lc=n,lc}var fc,pc;function mc(){if(pc)return fc;pc=1;function e(e){return function(){return e}}return fc=e,fc}var hc,gc;function _c(){if(gc)return hc;gc=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 hc=e,hc}var vc,yc;function bc(){return yc?vc:(yc=1,vc=_c()(),vc)}var xc,Sc;function Cc(){if(Sc)return xc;Sc=1;var e=bc(),t=to();function n(n,r){return n&&e(n,r,t)}return xc=n,xc}var wc,Tc;function Ec(){if(Tc)return wc;Tc=1;var e=Qa();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 wc=t,wc}var Dc,Oc;function kc(){if(Oc)return Dc;Oc=1;var e=Cc();return Dc=Ec()(e),Dc}var Ac,jc;function Mc(){if(jc)return Ac;jc=1;function e(e){return e}return Ac=e,Ac}var Nc,Pc;function Fc(){if(Pc)return Nc;Pc=1;var e=Mc();function t(t){return typeof t==`function`?t:e}return Nc=t,Nc}var Ic,Lc;function Rc(){if(Lc)return Ic;Lc=1;var e=zi(),t=kc(),n=Fc(),r=J();function i(i,a){return(r(i)?e:t)(i,n(a))}return Ic=i,Ic}var zc,Bc;function Vc(){return Bc?zc:(Bc=1,zc=Rc(),zc)}var Hc,Uc;function Wc(){if(Uc)return Hc;Uc=1;var e=kc();function t(t,n){var r=[];return e(t,function(e,t,i){n(e,t,i)&&r.push(e)}),r}return Hc=t,Hc}var Gc,Kc;function qc(){if(Kc)return Gc;Kc=1;var e=`__lodash_hash_undefined__`;function t(t){return this.__data__.set(t,e),this}return Gc=t,Gc}var Jc,Yc;function Xc(){if(Yc)return Jc;Yc=1;function e(e){return this.__data__.has(e)}return Jc=e,Jc}var Zc,Qc;function $c(){if(Qc)return Zc;Qc=1;var e=Ai(),t=qc(),n=Xc();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,Zc=r,Zc}var el,tl;function nl(){if(tl)return el;tl=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 el=e,el}var rl,il;function al(){if(il)return rl;il=1;function e(e,t){return e.has(t)}return rl=e,rl}var ol,sl;function cl(){if(sl)return ol;sl=1;var e=$c(),t=nl(),n=al(),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 ol=a,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,r){n[++t]=[r,e]}),n}return ll=e,ll}var fl,pl;function ml(){if(pl)return fl;pl=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}return fl=e,fl}var hl,gl;function _l(){if(gl)return hl;gl=1;var e=ir(),t=Cs(),n=bn(),r=cl(),i=dl(),a=ml(),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 hl=x,hl}var vl,yl;function bl(){if(yl)return vl;yl=1;var e=$o(),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 vl=r,vl}var xl,Sl;function Cl(){if(Sl)return xl;Sl=1;var e=Ii(),t=cl(),n=_l(),r=bl(),i=_s(),a=J(),o=ga(),s=Pa(),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 xl=p,xl}var wl,Tl;function El(){if(Tl)return wl;Tl=1;var e=Cl(),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 wl=n,wl}var Dl,Ol;function kl(){if(Ol)return Dl;Ol=1;var e=Ii(),t=El(),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 Dl=i,Dl}var Al,jl;function Ml(){if(jl)return Al;jl=1;var e=K();function t(t){return t===t&&!e(t)}return Al=t,Al}var Nl,Pl;function Fl(){if(Pl)return Nl;Pl=1;var e=Ml(),t=to();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 Nl=n,Nl}var Il,Ll;function Rl(){if(Ll)return Il;Ll=1;function e(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}return Il=e,Il}var zl,Bl;function Vl(){if(Bl)return zl;Bl=1;var e=kl(),t=Fl(),n=Rl();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 zl=r,zl}var Hl,Ul;function Wl(){if(Ul)return Hl;Ul=1;var e=pr(),t=q(),n=`[object Symbol]`;function r(r){return typeof r==`symbol`||t(r)&&e(r)==n}return Hl=r,Hl}var Gl,Kl;function ql(){if(Kl)return Gl;Kl=1;var e=J(),t=Wl(),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 Gl=i,Gl}var Jl,Yl;function Xl(){if(Yl)return Jl;Yl=1;var e=Ai(),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,Jl=n,Jl}var Zl,Ql;function $l(){if(Ql)return Zl;Ql=1;var e=Xl(),t=500;function n(n){var r=e(n,function(e){return i.size===t&&i.clear(),e}),i=r.cache;return r}return Zl=n,Zl}var eu,tu;function nu(){if(tu)return eu;tu=1;var e=$l(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g;return eu=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}),eu}var ru,iu;function au(){if(iu)return ru;iu=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 ru=e,ru}var ou,su;function cu(){if(su)return ou;su=1;var e=ir(),t=au(),n=J(),r=Wl(),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 ou=o,ou}var lu,uu;function du(){if(uu)return lu;uu=1;var e=cu();function t(t){return t==null?``:e(t)}return lu=t,lu}var fu,pu;function mu(){if(pu)return fu;pu=1;var e=J(),t=ql(),n=nu(),r=du();function i(i,a){return e(i)?i:t(i,a)?[i]:n(r(i))}return fu=i,fu}var hu,gu;function _u(){if(gu)return hu;gu=1;var e=Wl();function t(t){if(typeof t==`string`||e(t))return t;var n=t+``;return n==`0`&&1/t==-1/0?`-0`:n}return hu=t,hu}var vu,yu;function bu(){if(yu)return vu;yu=1;var e=mu(),t=_u();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 vu=n,vu}var xu,Su;function Cu(){if(Su)return xu;Su=1;var e=bu();function t(t,n,r){var i=t==null?void 0:e(t,n);return i===void 0?r:i}return xu=t,xu}var wu,Tu;function Eu(){if(Tu)return wu;Tu=1;function e(e,t){return e!=null&&t in Object(e)}return wu=e,wu}var Du,Ou;function ku(){if(Ou)return Du;Ou=1;var e=mu(),t=ca(),n=J(),r=ya(),i=Sa(),a=_u();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 Du=o,Du}var Au,ju;function Mu(){if(ju)return Au;ju=1;var e=Eu(),t=ku();function n(n,r){return n!=null&&t(n,r,e)}return Au=n,Au}var Nu,Pu;function Fu(){if(Pu)return Nu;Pu=1;var e=El(),t=Cu(),n=Mu(),r=ql(),i=Ml(),a=Rl(),o=_u(),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 Nu=l,Nu}var Iu,Lu;function Ru(){if(Lu)return Iu;Lu=1;function e(e){return function(t){return t?.[e]}}return Iu=e,Iu}var zu,Bu;function Vu(){if(Bu)return zu;Bu=1;var e=bu();function t(t){return function(n){return e(n,t)}}return zu=t,zu}var Hu,Uu;function Wu(){if(Uu)return Hu;Uu=1;var e=Ru(),t=Vu(),n=ql(),r=_u();function i(i){return n(i)?e(r(i)):t(i)}return Hu=i,Hu}var Gu,Ku;function Y(){if(Ku)return Gu;Ku=1;var e=Vl(),t=Fu(),n=Mc(),r=J(),i=Wu();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 Gu=a,Gu}var qu,Ju;function Yu(){if(Ju)return qu;Ju=1;var e=Eo(),t=Wc(),n=Y(),r=J();function i(i,a){return(r(i)?e:t)(i,n(a,3))}return qu=i,qu}var Xu,Zu;function Qu(){if(Zu)return Xu;Zu=1;var e=Object.prototype.hasOwnProperty;function t(t,n){return t!=null&&e.call(t,n)}return Xu=t,Xu}var $u,ed;function td(){if(ed)return $u;ed=1;var e=Qu(),t=ku();function n(n,r){return n!=null&&t(n,r,e)}return $u=n,$u}var nd,rd;function id(){if(rd)return nd;rd=1;var e=Ya(),t=_s(),n=ca(),r=J(),i=Qa(),a=ga(),o=Ba(),s=Pa(),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 nd=d,nd}var ad,od;function sd(){if(od)return ad;od=1;function e(e){return e===void 0}return ad=e,ad}var cd,ld;function ud(){if(ld)return cd;ld=1;var e=kc(),t=Qa();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 cd=n,cd}var dd,fd;function pd(){if(fd)return dd;fd=1;var e=au(),t=Y(),n=ud(),r=J();function i(i,a){return(r(i)?e:n)(i,t(a,3))}return dd=i,dd}var md,hd;function gd(){if(hd)return md;hd=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 md=e,md}var _d,vd;function yd(){if(vd)return _d;vd=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 _d=e,_d}var bd,xd;function Sd(){if(xd)return bd;xd=1;var e=gd(),t=kc(),n=Y(),r=yd(),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 bd=a,bd}var Cd,wd;function Td(){if(wd)return Cd;wd=1;var e=pr(),t=J(),n=q(),r=`[object String]`;function i(i){return typeof i==`string`||!t(i)&&n(i)&&e(i)==r}return Cd=i,Cd}var Ed,Dd;function Od(){return Dd?Ed:(Dd=1,Ed=Ru()(`length`),Ed)}var kd,Ad;function jd(){if(Ad)return kd;Ad=1;var e=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function t(t){return e.test(t)}return kd=t,kd}var Md,Nd;function Pd(){if(Nd)return Md;Nd=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 Md=_,Md}var Fd,Id;function Ld(){if(Id)return Fd;Id=1;var e=Od(),t=jd(),n=Pd();function r(r){return t(r)?n(r):e(r)}return Fd=r,Fd}var Rd,zd;function Bd(){if(zd)return Rd;zd=1;var e=Ya(),t=_s(),n=Qa(),r=Td(),i=Ld(),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 Rd=s,Rd}var Vd,Hd;function Ud(){if(Hd)return Vd;Hd=1;var e=zi(),t=Ws(),n=Cc(),r=Y(),i=Vo(),a=J(),o=ga(),s=vr(),c=K(),l=Pa();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 Vd=u,Vd}var Wd,Gd;function Kd(){if(Gd)return Wd;Gd=1;var e=ir(),t=ca(),n=J(),r=e?e.isConcatSpreadable:void 0;function i(e){return n(e)||t(e)||!!(r&&e&&e[r])}return Wd=i,Wd}var qd,Jd;function Yd(){if(Jd)return qd;Jd=1;var e=Ro(),t=Kd();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 qd=n,qd}var Xd,Zd;function Qd(){if(Zd)return Xd;Zd=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 Xd=e,Xd}var $d,ef;function tf(){if(ef)return $d;ef=1;var e=Qd(),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 $d=n,$d}var nf,rf;function af(){if(rf)return nf;rf=1;var e=mc(),t=Hi(),n=Mc();return nf=t?function(n,r){return t(n,`toString`,{configurable:!0,enumerable:!1,value:e(r),writable:!0})}:n,nf}var of,sf;function cf(){if(sf)return of;sf=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 of=r,of}var lf,uf;function df(){if(uf)return lf;uf=1;var e=af();return lf=cf()(e),lf}var ff,pf;function mf(){if(pf)return ff;pf=1;var e=Mc(),t=tf(),n=df();function r(r,i){return n(t(r,i,e),r+``)}return ff=r,ff}var hf,gf;function _f(){if(gf)return hf;gf=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 hf=e,hf}var vf,yf;function bf(){if(yf)return vf;yf=1;function e(e){return e!==e}return vf=e,vf}var xf,Sf;function Cf(){if(Sf)return xf;Sf=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 xf=e,xf}var wf,Tf;function Ef(){if(Tf)return wf;Tf=1;var e=_f(),t=bf(),n=Cf();function r(r,i,a){return i===i?n(r,i,a):e(r,t,a)}return wf=r,wf}var Df,Of;function kf(){if(Of)return Df;Of=1;var e=Ef();function t(t,n){return!!(t!=null&&t.length)&&e(t,n,0)>-1}return Df=t,Df}var Af,jf;function Mf(){if(jf)return Af;jf=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 Af=e,Af}var Nf,Pf;function Ff(){if(Pf)return Nf;Pf=1;function e(){}return Nf=e,Nf}var If,Lf;function Rf(){if(Lf)return If;Lf=1;var e=ds(),t=Ff(),n=ml();return If=e&&1/n(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t,If}var zf,Bf;function Vf(){if(Bf)return zf;Bf=1;var e=$c(),t=kf(),n=Mf(),r=al(),i=Rf(),a=ml(),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 zf=s,zf}var Hf,Uf;function Wf(){if(Uf)return Hf;Uf=1;var e=Qa(),t=q();function n(n){return t(n)&&e(n)}return Hf=n,Hf}var Gf,Kf;function qf(){if(Kf)return Gf;Kf=1;var e=Yd(),t=mf(),n=Vf(),r=Wf();return Gf=t(function(t){return n(e(t,1,r,!0))}),Gf}var Jf,Yf;function Xf(){if(Yf)return Jf;Yf=1;var e=au();function t(t,n){return e(n,function(e){return t[e]})}return Jf=t,Jf}var Zf,Qf;function $f(){if(Qf)return Zf;Qf=1;var e=Xf(),t=to();function n(n){return n==null?[]:e(n,t(n))}return Zf=n,Zf}var ep,tp;function X(){if(tp)return ep;tp=1;var e;if(typeof mn==`function`)try{e={clone:dc(),constant:mc(),each:Vc(),filter:Yu(),has:td(),isArray:J(),isEmpty:id(),isFunction:vr(),isUndefined:sd(),keys:to(),map:pd(),reduce:Sd(),size:Bd(),transform:Ud(),union:qf(),values:$f()}}catch{}return e||=window._,ep=e,ep}var np,rp;function ip(){if(rp)return np;rp=1;var e=X();np=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 np}var ap,op;function sp(){return op?ap:(op=1,ap=`2.1.8`,ap)}var cp,lp;function up(){return lp?cp:(lp=1,cp={Graph:ip(),version:sp()},cp)}var dp,fp;function pp(){if(fp)return dp;fp=1;var e=X(),t=ip();dp={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 dp}var mp,hp;function gp(){if(hp)return mp;hp=1;var e=X();mp=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 mp}var _p,vp;function yp(){if(vp)return _p;vp=1;var e=X();_p=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},_p}var bp,xp;function Sp(){if(xp)return bp;xp=1;var e=X(),t=yp();bp=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 bp}var Cp,wp;function Tp(){if(wp)return Cp;wp=1;var e=Sp(),t=X();Cp=n;function n(n,r,i){return t.transform(n.nodes(),function(t,a){t[a]=e(n,a,r,i)},{})}return Cp}var Ep,Dp;function Op(){if(Dp)return Ep;Dp=1;var e=X();Ep=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 Ep}var kp,Ap;function jp(){if(Ap)return kp;Ap=1;var e=X(),t=Op();kp=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 kp}var Mp,Np;function Pp(){if(Np)return Mp;Np=1;var e=X();Mp=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 Mp}var Fp,Ip;function Lp(){if(Ip)return Fp;Ip=1;var e=X();Fp=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(),Fp}var Rp,zp;function Bp(){if(zp)return Rp;zp=1;var e=Lp();Rp=t;function t(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}return Rp}var Vp,Hp;function Up(){if(Hp)return Vp;Hp=1;var e=X();Vp=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 Vp}var Wp,Gp;function Kp(){if(Gp)return Wp;Gp=1;var e=Up();Wp=t;function t(t,n){return e(t,n,`post`)}return Wp}var qp,Jp;function Yp(){if(Jp)return qp;Jp=1;var e=Up();qp=t;function t(t,n){return e(t,n,`pre`)}return qp}var Xp,Zp;function Qp(){if(Zp)return Xp;Zp=1;var e=X(),t=ip(),n=yp();Xp=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 Xp}var $p,em;function tm(){return em?$p:(em=1,$p={components:gp(),dijkstra:Sp(),dijkstraAll:Tp(),findCycles:jp(),floydWarshall:Pp(),isAcyclic:Bp(),postorder:Kp(),preorder:Yp(),prim:Qp(),tarjan:Op(),topsort:Lp()},$p)}var nm,rm;function im(){if(rm)return nm;rm=1;var e=up();return nm={Graph:e.Graph,json:pp(),alg:tm(),version:e.version},nm}var am,om;function Z(){if(om)return am;om=1;var e;if(typeof mn==`function`)try{e=im()}catch{}return e||=window.graphlib,am=e,am}var sm,cm;function lm(){if(cm)return sm;cm=1;var e=cc(),t=1,n=4;function r(r){return e(r,t|n)}return sm=r,sm}var um,dm;function fm(){if(dm)return um;dm=1;var e=bn(),t=Qa(),n=ya(),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 um=i,um}var pm,mm;function hm(){if(mm)return pm;mm=1;var e=mf(),t=bn(),n=fm(),r=mo(),i=Object.prototype,a=i.hasOwnProperty;return pm=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}),pm}var gm,_m;function vm(){if(_m)return gm;_m=1;var e=Y(),t=Qa(),n=to();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 gm=r,gm}var ym,bm;function xm(){if(bm)return ym;bm=1;var e=/\s/;function t(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}return ym=t,ym}var Sm,Cm;function wm(){if(Cm)return Sm;Cm=1;var e=xm(),t=/^\s+/;function n(n){return n&&n.slice(0,e(n)+1).replace(t,``)}return Sm=n,Sm}var Tm,Em;function Dm(){if(Em)return Tm;Em=1;var e=wm(),t=K(),n=Wl(),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 Tm=c,Tm}var Om,km;function Am(){if(km)return Om;km=1;var e=Dm(),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 Om=r,Om}var jm,Mm;function Nm(){if(Mm)return jm;Mm=1;var e=Am();function t(t){var n=e(t),r=n%1;return n===n?r?n-r:n:0}return jm=t,jm}var Pm,Fm;function Im(){if(Fm)return Pm;Fm=1;var e=_f(),t=Y(),n=Nm(),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 Pm=i,Pm}var Lm,Rm;function zm(){return Rm?Lm:(Rm=1,Lm=vm()(Im()),Lm)}var Bm,Vm;function Hm(){if(Vm)return Bm;Vm=1;var e=Yd();function t(t){return t!=null&&t.length?e(t,1):[]}return Bm=t,Bm}var Um,Wm;function Gm(){if(Wm)return Um;Wm=1;var e=bc(),t=Fc(),n=mo();function r(r,i){return r==null?r:e(r,t(i),n)}return Um=r,Um}var Km,qm;function Jm(){if(qm)return Km;qm=1;function e(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}return Km=e,Km}var Ym,Xm;function Zm(){if(Xm)return Ym;Xm=1;var e=Gi(),t=Cc(),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 Ym=r,Ym}var Qm,$m;function eh(){if($m)return Qm;$m=1;var e=Wl();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 Qm=t,Qm}var th,nh;function rh(){if(nh)return th;nh=1;function e(e,t){return e>t}return th=e,th}var ih,ah;function oh(){if(ah)return ih;ah=1;var e=eh(),t=rh(),n=Mc();function r(r){return r&&r.length?e(r,n,t):void 0}return ih=r,ih}var sh,ch;function lh(){if(ch)return sh;ch=1;var e=Gi(),t=bn();function n(n,r,i){(i!==void 0&&!t(n[r],i)||i===void 0&&!(r in n))&&e(n,r,i)}return sh=n,sh}var uh,dh;function fh(){if(dh)return uh;dh=1;var e=pr(),t=Vo(),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 uh=l,uh}var ph,mh;function hh(){if(mh)return ph;mh=1;function e(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}return ph=e,ph}var gh,_h;function vh(){if(_h)return gh;_h=1;var e=Zi(),t=mo();function n(n){return e(n,t(n))}return gh=n,gh}var yh,bh;function xh(){if(bh)return yh;bh=1;var e=lh(),t=bo(),n=Rs(),r=Co(),i=qs(),a=ca(),o=J(),s=Wf(),c=ga(),l=vr(),u=K(),d=fh(),f=Pa(),p=hh(),m=vh();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 yh=h,yh}var Sh,Ch;function wh(){if(Ch)return Sh;Ch=1;var e=Ii(),t=lh(),n=bc(),r=xh(),i=K(),a=mo(),o=hh();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 Sh=s,Sh}var Th,Eh;function Dh(){if(Eh)return Th;Eh=1;var e=mf(),t=fm();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 Th=n,Th}var Oh,kh;function Ah(){if(kh)return Oh;kh=1;var e=wh();return Oh=Dh()(function(t,n,r){e(t,n,r)}),Oh}var jh,Mh;function Nh(){if(Mh)return jh;Mh=1;function e(e,t){return e<t}return jh=e,jh}var Ph,Fh;function Ih(){if(Fh)return Ph;Fh=1;var e=eh(),t=Nh(),n=Mc();function r(r){return r&&r.length?e(r,n,t):void 0}return Ph=r,Ph}var Lh,Rh;function zh(){if(Rh)return Lh;Rh=1;var e=eh(),t=Y(),n=Nh();function r(r,i){return r&&r.length?e(r,t(i,2),n):void 0}return Lh=r,Lh}var Bh,Vh;function Hh(){if(Vh)return Bh;Vh=1;var e=G();return Bh=function(){return e.Date.now()},Bh}var Uh,Wh;function Gh(){if(Wh)return Uh;Wh=1;var e=Ji(),t=mu(),n=ya(),r=K(),i=_u();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 Uh=a,Uh}var Kh,qh;function Jh(){if(qh)return Kh;qh=1;var e=bu(),t=Gh(),n=mu();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 Kh=r,Kh}var Yh,Xh;function Zh(){if(Xh)return Yh;Xh=1;var e=Jh(),t=Mu();function n(n,r){return e(n,r,function(e,r){return t(n,r)})}return Yh=n,Yh}var Qh,$h;function eg(){if($h)return Qh;$h=1;var e=Hm(),t=tf(),n=df();function r(r){return n(t(r,void 0,e),r+``)}return Qh=r,Qh}var tg,ng;function rg(){if(ng)return tg;ng=1;var e=Zh();return tg=eg()(function(t,n){return t==null?{}:e(t,n)}),tg}var ig,ag;function og(){if(ag)return ig;ag=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 ig=n,ig}var sg,cg;function lg(){if(cg)return sg;cg=1;var e=og(),t=fm(),n=Am();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 sg=r,sg}var ug,dg;function fg(){return dg?ug:(dg=1,ug=lg()(),ug)}var pg,mg;function hg(){if(mg)return pg;mg=1;function e(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}return pg=e,pg}var gg,_g;function vg(){if(_g)return gg;_g=1;var e=Wl();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 gg=t,gg}var yg,bg;function xg(){if(bg)return yg;bg=1;var e=vg();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 yg=t,yg}var Sg,Cg;function wg(){if(Cg)return Sg;Cg=1;var e=au(),t=bu(),n=Y(),r=ud(),i=hg(),a=Oa(),o=xg(),s=Mc(),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 Sg=l,Sg}var Tg,Eg;function Dg(){if(Eg)return Tg;Eg=1;var e=Yd(),t=wg(),n=mf(),r=fm();return Tg=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),[])}),Tg}var Og,kg;function Ag(){if(kg)return Og;kg=1;var e=du(),t=0;function n(n){var r=++t;return e(n)+r}return Og=n,Og}var jg,Mg;function Ng(){if(Mg)return jg;Mg=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 jg=e,jg}var Pg,Fg;function Ig(){if(Fg)return Pg;Fg=1;var e=Ji(),t=Ng();function n(n,r){return t(n||[],r||[],e)}return Pg=n,Pg}var Lg,Rg;function Q(){if(Rg)return Lg;Rg=1;var e;if(typeof mn==`function`)try{e={cloneDeep:lm(),constant:mc(),defaults:hm(),each:Vc(),filter:Yu(),find:zm(),flatten:Hm(),forEach:Rc(),forIn:Gm(),has:td(),isUndefined:sd(),last:Jm(),map:pd(),mapValues:Zm(),max:oh(),merge:Ah(),min:Ih(),minBy:zh(),now:Hh(),pick:rg(),range:fg(),reduce:Sd(),sortBy:Dg(),uniqueId:Ag(),values:$f(),zipObject:Ig()}}catch{}return e||=window._,Lg=e,Lg}var zg,Bg;function Vg(){if(Bg)return zg;Bg=1,zg=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 zg}var Hg,Ug;function Wg(){if(Ug)return Hg;Ug=1;var e=Q(),t=Z().Graph,n=Vg();Hg=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 Hg}var Gg,Kg;function qg(){if(Kg)return Gg;Kg=1;var e=Q(),t=Wg();Gg={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 Gg}var Jg,Yg;function $(){if(Yg)return Jg;Yg=1;var e=Q(),t=Z().Graph;Jg={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 Jg}var Xg,Zg;function Qg(){if(Zg)return Xg;Zg=1;var e=Q(),t=$();Xg={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 Xg}var $g,e_;function t_(){if(e_)return $g;e_=1;var e=Q();$g={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 $g}var n_,r_;function i_(){if(r_)return n_;r_=1;var e=Q(),t=Z().Graph,n=t_().slack;n_=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 n_}var a_,o_;function s_(){if(o_)return a_;o_=1;var e=Q(),t=i_(),n=t_().slack,r=t_().longestPath,i=Z().alg.preorder,a=Z().alg.postorder,o=$().simplify;a_=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 a_}var c_,l_;function u_(){if(l_)return c_;l_=1;var e=t_().longestPath,t=i_(),n=s_();c_=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 c_}var d_,f_;function p_(){if(f_)return d_;f_=1;var e=Q();d_=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 d_}var m_,h_;function g_(){if(h_)return m_;h_=1;var e=Q(),t=$();m_={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 m_}var __,v_;function y_(){if(v_)return __;v_=1;var e=Q(),t=$();__=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 __}var b_,x_;function S_(){if(x_)return b_;x_=1;var e=Q();b_={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 b_}var C_,w_;function T_(){if(w_)return C_;w_=1;var e=Q();C_=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 C_}var E_,D_;function O_(){if(D_)return E_;D_=1;var e=Q();E_=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 E_}var k_,A_;function j_(){if(A_)return k_;A_=1;var e=Q();k_=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 k_}var M_,N_;function P_(){if(N_)return M_;N_=1;var e=Q();M_=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 M_}var F_,I_;function L_(){if(I_)return F_;I_=1;var e=Q(),t=$();F_=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 F_}var R_,z_;function B_(){if(z_)return R_;z_=1;var e=Q(),t=j_(),n=P_(),r=L_();R_=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 R_}var V_,H_;function U_(){if(H_)return V_;H_=1;var e=Q(),t=Z().Graph;V_=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 V_}var W_,G_;function K_(){if(G_)return W_;G_=1;var e=Q();W_=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 W_}var q_,J_;function Y_(){if(J_)return q_;J_=1;var e=Q(),t=T_(),n=O_(),r=B_(),i=U_(),a=K_(),o=Z().Graph,s=$();q_=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 q_}var X_,Z_;function Q_(){if(Z_)return X_;Z_=1;var e=Q(),t=Z().Graph,n=$();X_={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 X_}var $_,ev;function tv(){if(ev)return $_;ev=1;var e=Q(),t=$(),n=Q_().positionX;$_=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 $_}var nv,rv;function iv(){if(rv)return nv;rv=1;var e=Q(),t=qg(),n=Qg(),r=u_(),i=$().normalizeRanks,a=p_(),o=$().removeEmptyRanks,s=g_(),c=y_(),l=S_(),u=Y_(),d=tv(),f=$(),p=Z().Graph;nv=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 nv}var av,ov;function sv(){if(ov)return av;ov=1;var e=Q(),t=$(),n=Z().Graph;av={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 av}var cv,lv;function uv(){return lv?cv:(lv=1,cv=`0.8.5`,cv)}var dv,fv;function pv(){return fv?dv:(fv=1,dv={graphlib:Z(),layout:iv(),debug:sv(),util:{time:$().time,notime:$().notime},version:uv()},dv)}var mv=pv(),hv=pn(mv),gv=function(e){return un(e,`Boolean`)};function _v(e,t){if(e){var n;if(on(e))for(var r=0,i=e.length;r<i&&(n=t(e[r],r),n!==!1);r++);else if(sn(e)){for(var a in e)if(e.hasOwnProperty(a)&&(n=t(e[a],a),n===!1))break}}}var vv=Object.prototype.hasOwnProperty,yv=(function(e,t){if(e===null||!dn(e))return{};var n={};return _v(t,function(t){vv.call(e,t)&&(n[t]=e[t])}),n}),bv=class extends an{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 qe(this,void 0,void 0,function*(){let e=new mv.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});e.setGraph(yv(this.options,this.config.graphAttributes)),e.setDefaultEdgeLabel(()=>({}));let t=xt(this.options.nodeSize,0);this.model.forEachNode(n=>{let r=n._original,[i,a]=ht(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=xt(n,0,`edge`),c=bt(r,10,`edge`),l=typeof i==`string`?()=>i:yt(i,[`edge`]),u=bt(a,1,`edge`),d=bt(o,1,`edge`);this.model.forEachEdge(t=>{let n=t._original,[r,i]=ht(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))}),hv.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(St)})})}isCompound(){return this.isCompoundGraph===null?gv(this.options.compound)?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(e=>!W(e.parentId)),this.isCompoundGraph):this.isCompoundGraph}},xv=26,Sv=72,Cv=24,wv=28,Tv=16,Ev=8,Dv=20,Ov=24,kv=12,Av=22,jv=52,Mv=24,Nv=3,Pv=(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)),xv),a=r(e.map(e=>n.get(e.id)),Sv),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}},Fv=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)},Iv=(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&&(Fv(a,e.source,e.target),Fv(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}}},Lv=(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)Fv(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},Rv=(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}},zv=e=>e.gate===`t`?[e.chans[0]]:e.gate===`s`?[e.chans[1]]:e.chans,Bv=(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=zv(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`])+Ev))});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}},Vv=(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?Cv:wv+(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?Dv:Ov+(n-1)*f[`size-edge-track-gap`],r>0?Ov+r*Av:0,i>0?jv+(i-1)*f[`size-edge-track-gap`]+kv: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}},Hv=(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)Fv(f,i[0],{edge:r,posIn:c.y,posOut:l.y-jv,...o[0]});else if(i.length===1)Fv(f,i[0],{edge:r,posIn:c.y,posOut:l.y,...o[0]});else{let e=d(a[0]);s!==`s`&&Fv(f,i[0],{edge:r,posIn:c.y,posOut:e,...o[0]}),s!==`t`&&Fv(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],Tv,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`);Fv(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],kv,i[`size-edge-track-gap`]))g.set(`${e}:${n}`,r);return{chanX:m,gutY:(e,t)=>d(e)+g.get(`${e}:${t}`)}},Uv=(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-jv-(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)})},Wv=(e,t,n,r,i,a,o,s,c,l)=>{let u=ie(e,c),d=Hv(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}=Hv(e,t,f,s,c),h=Uv(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)}},Gv=(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]-Dv:0,d=t<s-1&&u(t,n)?o.gutH[t]-Dv: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>=Mv: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<Nv;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},Kv=(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`}}),qv=(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))}},Jv=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 bv({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=Pv(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(Iv(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=Lv(o,s,f,p)}({ncols:m,nrows:h}=Rv(a,i,f,p,m,h));let g=Kv(i,f,n),_=Bv(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++,_=Bv(i,f,p,g,a,t)}let{plans:v,chanCnt:y,gutCnt:b,chanLbl:x,gutLbl:S,gutLoop:C}=_;qv(r,i,g,l,t,n);let w=Vv(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:Gv(r,i,v,f,p,l,w,h,T,()=>Wv(i,v,g,c,l,E,D,w,t,n)).polys}},Yv=`\0`,Xv=28,Zv=16,Qv=40,$v=8,ey=12,ty=e=>{let t=Array.from(e.nodes.values());for(let e of t)if(e.id.includes(Yv))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}},ny={graph:{render:Jv,gated:!0},hub:{render:async(e,t,n={})=>{let{center:r,inputs:i,outputs:a,nodes:o,edges:s}=ty(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+ey)},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`])+$v):e,Qv),P=(e,t)=>M(e,!1)+(N[t]>0?(t===1?ee:Qv)+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`],Xv+(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],Zv,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}},ry=Object.keys(ny),iy=`graph`,ay=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(ny,e[1])&&(t=e[1])}return t},oy=[`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(ny,n))throw Error(`invalid diagram type "${n}"`);let r=t.format??`svg:standalone`;if(!oy.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,ry),s=e=>Se(e,o,n,ny,a),c=Te(e,o),l=Ke(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??ay(t),a={..._(t),...g(n.config??{},{trusted:!0})};return e.generate(r,{...n,type:i,config:a})}},e.diagramFormatDefault=`svg:standalone`,e.diagramFormats=oy,e.diagramTypeDefault=iy,e.diagramTypes=ry});
|
|
5
|
+
`)};function qe(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 Je={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 Ye=new Set([32,9,10,13]),Xe=new Set([43,45,42,47,37,33,38,124,61,60,62]),Ze=new Map([[`true`,H.BOOLEAN],[`false`,H.BOOLEAN],[`null`,H.NULL]]),Qe=new Map([[`===`,!0],[`!==`,!0],[`<=`,!0],[`>=`,!0],[`&&`,!0],[`||`,!0],[`+`,!0],[`-`,!0],[`*`,!0],[`/`,!0],[`%`,!0],[`!`,!0],[`<`,!0],[`>`,!0]]),$e=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]]),et=new Map;for(let[e,t]of $e.entries())et.set(e,{type:t,value:String.fromCharCode(e)});function tt(e){return e>=48&&e<=57}function nt(e){return e>=97&&e<=122||e>=65&&e<=90||e===95}function rt(e){return nt(e)||tt(e)}function it(e){return Xe.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 at=new Map([[`||`,2],[`&&`,3],[`===`,4],[`!==`,4],[`>`,5],[`>=`,5],[`<`,5],[`<=`,5],[`+`,6],[`-`,6],[`*`,7],[`/`,7],[`%`,7],[`!`,8]]),ot={type:U.Literal,value:null},st={type:U.Literal,value:!0},ct={type:U.Literal,value:!1},lt=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?at.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`?st:ct;case H.NULL:return i(),ot;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}},ut=(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 dt(e){let t=lt((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&&tt(t.charCodeAt(a));)a++;if(a<n&&t.charCodeAt(a)===46)for(a++;a<n&&tt(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&&nt(t.charCodeAt(a)))for(a++;a<n&&rt(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:H.FUNCTION,value:r}}function l(){let e=a++;for(;a<n&&rt(t.charCodeAt(a));)a++;let r=t.slice(e,a),i=Ze.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(Qe.has(e))return a+=3,{type:H.OPERATOR,value:e}}if(a+1<n){let e=t.substring(a,a+2);if(Qe.has(e))return a+=2,{type:H.OPERATOR,value:e}}let e=t[a];if(Qe.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,Ye.has(d)){a++;continue}let f=et.get(e);if(f)r[i++]=f,a++;else if(e!==34&&e!==39){if(tt(e)||e===45&&a+1<n&&tt(t.charCodeAt(a+1)))r[i++]=s();else if(e!==64){if(nt(e))r[i++]=l();else{if(!it(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}))({},Je);return(e={})=>ut(t,n,e)}function ft(e,t={}){return dt(e)(t)}function pt(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)try{return dt(n),ft(n,t)}catch{return}}function mt(e){return typeof e==`number`}function ht(e){if(!e)return[0,0,0];if(mt(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 gt(e){return mt(e)?!0:Array.isArray(e)?e.every(e=>mt(e)):!1}function W(e){return e==null}function _t(e){return typeof e==`string`}function vt(e){return typeof e==`function`}function yt(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 pt(n,r)}}return()=>e}function bt(e,t,n=`node`){if(W(e))return()=>t;if(_t(e)){let r=yt(e,[n]);return e=>{let n=r(e);return mt(n)?n:t}}return vt(e)?e:mt(e)?()=>e:()=>t}function xt(e,t=10,n=`node`){if(W(e))return()=>t;if(_t(e)){let r=yt(e,[n]);return e=>{let n=r(e);return gt(n)?n:t}}return vt(e)?e:mt(e)||Array.isArray(e)?()=>e:()=>t}function St(e){return[e.x,e.y,e.z??0]}var Ct=class{constructor(e,t={}){this.edgeIdCounter=new Map,this.nodeMap=Et(e.nodes,t.node),this.edgeMap=Dt(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()}},wt=[`id`,`x`,`y`,`z`,`vx`,`vy`,`vz`,`fx`,`fy`,`fz`,`parentId`],Tt=[`id`,`source`,`target`,`points`];function Et(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 wt){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 Dt(e,t,n){let r=new Map;for(let i of e){let e={_original:i};for(let t of Tt){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 Ot=class{constructor(e,t={}){this.graph=new Ct(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()}},kt=Symbol(`Comlink.proxy`),At=Symbol(`Comlink.endpoint`),jt=Symbol(`Comlink.releaseProxy`),Mt=Symbol(`Comlink.finalizer`),Nt=Symbol(`Comlink.thrown`),Pt=e=>typeof e==`object`&&!!e||typeof e==`function`,Ft=new Map([[`proxy`,{canHandle:e=>Pt(e)&&e[kt],serialize(e){let{port1:t,port2:n}=new MessageChannel;return Lt(e,t),[n,[n]]},deserialize(e){return e.start(),Bt(e)}}],[`throw`,{canHandle:e=>Pt(e)&&Nt 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 It(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function Lt(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!It(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(en),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]]=en(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=Qt(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;Lt(e,n),l=Zt(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[Nt]:0}}Promise.resolve(l).catch(e=>({value:e,[Nt]:0})).then(n=>{let[i,s]=$t(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),zt(t),Mt in e&&typeof e[Mt]==`function`&&e[Mt]())}).catch(e=>{let[n,r]=$t({value:TypeError(`Unserializable return value`),[Nt]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function Rt(e){return e.constructor.name===`MessagePort`}function zt(e){Rt(e)&&e.close()}function Bt(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)}}),qt(e,n,[],t)}function Vt(e){if(e)throw Error(`Proxy has been released and is not useable`)}function Ht(e){return tn(e,new Map,{type:`RELEASE`}).then(()=>{zt(e)})}var Ut=new WeakMap,Wt=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(Ut.get(e)||0)-1;Ut.set(e,t),t===0&&Ht(e)});function Gt(e,t){let n=(Ut.get(t)||0)+1;Ut.set(t,n),Wt&&Wt.register(e,t,e)}function Kt(e){Wt&&Wt.unregister(e)}function qt(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(Vt(i),o===jt)return()=>{Kt(a),Ht(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=tn(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(en);return r.then.bind(r)}return qt(e,t,[...n,o])},set(r,a,o){Vt(i);let[s,c]=$t(o);return tn(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(en)},apply(r,a,o){Vt(i);let s=n[n.length-1];if(s===At)return tn(e,t,{type:`ENDPOINT`}).then(en);if(s===`bind`)return qt(e,t,n.slice(0,-1));let[c,l]=Yt(o);return tn(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(en)},construct(r,a){Vt(i);let[o,s]=Yt(a);return tn(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(en)}});return Gt(a,e),a}function Jt(e){return Array.prototype.concat.apply([],e)}function Yt(e){let t=e.map($t);return[t.map(e=>e[0]),Jt(t.map(e=>e[1]))]}var Xt=new WeakMap;function Zt(e,t){return Xt.set(e,t),e}function Qt(e){return Object.assign(e,{[kt]:!0})}function $t(e){for(let[t,n]of Ft)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},Xt.get(e)||[]]}function en(e){switch(e.type){case`HANDLER`:return Ft.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function tn(e,t,n,r){return new Promise(i=>{let a=nn();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function nn(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}var rn=class{constructor(){this.worker=null,this.workerApi=null}execute(e,t,n){return qe(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 qe(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=Bt(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`}},an=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 qe(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 Ot(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 qe(this,void 0,void 0,function*(){try{this.supervisor||=new rn;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 on(e){return Array.isArray(e)}var sn=(function(e){var t=typeof e;return e!==null&&t===`object`||t===`function`}),cn=function(e){return typeof e==`object`&&!!e},ln={}.toString,un=function(e,t){return ln.call(e)===`[object `+t+`]`},dn=function(e){if(!cn(e)||!un(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},fn=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function pn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function mn(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 hn,gn;function _n(){if(gn)return hn;gn=1;function e(){this.__data__=[],this.size=0}return hn=e,hn}var vn,yn;function bn(){if(yn)return vn;yn=1;function e(e,t){return e===t||e!==e&&t!==t}return vn=e,vn}var xn,Sn;function Cn(){if(Sn)return xn;Sn=1;var e=bn();function t(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}return xn=t,xn}var wn,Tn;function En(){if(Tn)return wn;Tn=1;var e=Cn(),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 wn=n,wn}var Dn,On;function kn(){if(On)return Dn;On=1;var e=Cn();function t(t){var n=this.__data__,r=e(n,t);return r<0?void 0:n[r][1]}return Dn=t,Dn}var An,jn;function Mn(){if(jn)return An;jn=1;var e=Cn();function t(t){return e(this.__data__,t)>-1}return An=t,An}var Nn,Pn;function Fn(){if(Pn)return Nn;Pn=1;var e=Cn();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 Nn=t,Nn}var In,Ln;function Rn(){if(Ln)return In;Ln=1;var e=_n(),t=En(),n=kn(),r=Mn(),i=Fn();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,In=a,In}var zn,Bn;function Vn(){if(Bn)return zn;Bn=1;var e=Rn();function t(){this.__data__=new e,this.size=0}return zn=t,zn}var Hn,Un;function Wn(){if(Un)return Hn;Un=1;function e(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}return Hn=e,Hn}var Gn,Kn;function qn(){if(Kn)return Gn;Kn=1;function e(e){return this.__data__.get(e)}return Gn=e,Gn}var Jn,Yn;function Xn(){if(Yn)return Jn;Yn=1;function e(e){return this.__data__.has(e)}return Jn=e,Jn}var Zn,Qn;function $n(){return Qn?Zn:(Qn=1,Zn=typeof fn==`object`&&fn&&fn.Object===Object&&fn,Zn)}var er,tr;function G(){if(tr)return er;tr=1;var e=$n(),t=typeof self==`object`&&self&&self.Object===Object&&self;return er=e||t||Function(`return this`)(),er}var nr,rr;function ir(){return rr?nr:(rr=1,nr=G().Symbol,nr)}var ar,or;function sr(){if(or)return ar;or=1;var e=ir(),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 ar=a,ar}var cr,lr;function ur(){if(lr)return cr;lr=1;var e=Object.prototype.toString;function t(t){return e.call(t)}return cr=t,cr}var dr,fr;function pr(){if(fr)return dr;fr=1;var e=ir(),t=sr(),n=ur(),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 dr=o,dr}var mr,hr;function K(){if(hr)return mr;hr=1;function e(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}return mr=e,mr}var gr,_r;function vr(){if(_r)return gr;_r=1;var e=pr(),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 gr=o,gr}var yr,br;function xr(){return br?yr:(br=1,yr=G()[`__core-js_shared__`],yr)}var Sr,Cr;function wr(){if(Cr)return Sr;Cr=1;var e=xr(),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 Sr=n,Sr}var Tr,Er;function Dr(){if(Er)return Tr;Er=1;var e=Function.prototype.toString;function t(t){if(t!=null){try{return e.call(t)}catch{}try{return t+``}catch{}}return``}return Tr=t,Tr}var Or,kr;function Ar(){if(kr)return Or;kr=1;var e=vr(),t=wr(),n=K(),r=Dr(),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 Or=d,Or}var jr,Mr;function Nr(){if(Mr)return jr;Mr=1;function e(e,t){return e?.[t]}return jr=e,jr}var Pr,Fr;function Ir(){if(Fr)return Pr;Fr=1;var e=Ar(),t=Nr();function n(n,r){var i=t(n,r);return e(i)?i:void 0}return Pr=n,Pr}var Lr,Rr;function zr(){return Rr?Lr:(Rr=1,Lr=Ir()(G(),`Map`),Lr)}var Br,Vr;function Hr(){return Vr?Br:(Vr=1,Br=Ir()(Object,`create`),Br)}var Ur,Wr;function Gr(){if(Wr)return Ur;Wr=1;var e=Hr();function t(){this.__data__=e?e(null):{},this.size=0}return Ur=t,Ur}var Kr,qr;function Jr(){if(qr)return Kr;qr=1;function e(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}return Kr=e,Kr}var Yr,Xr;function Zr(){if(Xr)return Yr;Xr=1;var e=Hr(),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 Yr=r,Yr}var Qr,$r;function ei(){if($r)return Qr;$r=1;var e=Hr(),t=Object.prototype.hasOwnProperty;function n(n){var r=this.__data__;return e?r[n]!==void 0:t.call(r,n)}return Qr=n,Qr}var ti,ni;function ri(){if(ni)return ti;ni=1;var e=Hr(),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 ti=n,ti}var ii,ai;function oi(){if(ai)return ii;ai=1;var e=Gr(),t=Jr(),n=Zr(),r=ei(),i=ri();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,ii=a,ii}var si,ci;function li(){if(ci)return si;ci=1;var e=oi(),t=Rn(),n=zr();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return si=r,si}var ui,di;function fi(){if(di)return ui;di=1;function e(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}return ui=e,ui}var pi,mi;function hi(){if(mi)return pi;mi=1;var e=fi();function t(t,n){var r=t.__data__;return e(n)?r[typeof n==`string`?`string`:`hash`]:r.map}return pi=t,pi}var gi,_i;function vi(){if(_i)return gi;_i=1;var e=hi();function t(t){var n=e(this,t).delete(t);return this.size-=+!!n,n}return gi=t,gi}var yi,bi;function xi(){if(bi)return yi;bi=1;var e=hi();function t(t){return e(this,t).get(t)}return yi=t,yi}var Si,Ci;function wi(){if(Ci)return Si;Ci=1;var e=hi();function t(t){return e(this,t).has(t)}return Si=t,Si}var Ti,Ei;function Di(){if(Ei)return Ti;Ei=1;var e=hi();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 Ti=t,Ti}var Oi,ki;function Ai(){if(ki)return Oi;ki=1;var e=li(),t=vi(),n=xi(),r=wi(),i=Di();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,Oi=a,Oi}var ji,Mi;function Ni(){if(Mi)return ji;Mi=1;var e=Rn(),t=zr(),n=Ai(),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 ji=i,ji}var Pi,Fi;function Ii(){if(Fi)return Pi;Fi=1;var e=Rn(),t=Vn(),n=Wn(),r=qn(),i=Xn(),a=Ni();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,Pi=o,Pi}var Li,Ri;function zi(){if(Ri)return Li;Ri=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 Li=e,Li}var Bi,Vi;function Hi(){if(Vi)return Bi;Vi=1;var e=Ir();return Bi=function(){try{var t=e(Object,`defineProperty`);return t({},``,{}),t}catch{}}(),Bi}var Ui,Wi;function Gi(){if(Wi)return Ui;Wi=1;var e=Hi();function t(t,n,r){n==`__proto__`&&e?e(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}return Ui=t,Ui}var Ki,qi;function Ji(){if(qi)return Ki;qi=1;var e=Gi(),t=bn(),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 Ki=r,Ki}var Yi,Xi;function Zi(){if(Xi)return Yi;Xi=1;var e=Ji(),t=Gi();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 Yi=n,Yi}var Qi,$i;function ea(){if($i)return Qi;$i=1;function e(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}return Qi=e,Qi}var ta,na;function q(){if(na)return ta;na=1;function e(e){return typeof e==`object`&&!!e}return ta=e,ta}var ra,ia;function aa(){if(ia)return ra;ia=1;var e=pr(),t=q(),n=`[object Arguments]`;function r(r){return t(r)&&e(r)==n}return ra=r,ra}var oa,sa;function ca(){if(sa)return oa;sa=1;var e=aa(),t=q(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable;return oa=e(function(){return arguments}())?e:function(e){return t(e)&&r.call(e,`callee`)&&!i.call(e,`callee`)},oa}var la,ua;function J(){return ua?la:(ua=1,la=Array.isArray,la)}var da={exports:{}},fa,pa;function ma(){if(pa)return fa;pa=1;function e(){return!1}return fa=e,fa}da.exports;var ha;function ga(){return ha?da.exports:(ha=1,(function(e,t){var n=G(),r=ma(),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})(da,da.exports),da.exports)}var _a,va;function ya(){if(va)return _a;va=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 _a=n,_a}var ba,xa;function Sa(){if(xa)return ba;xa=1;var e=9007199254740991;function t(t){return typeof t==`number`&&t>-1&&t%1==0&&t<=e}return ba=t,ba}var Ca,wa;function Ta(){if(wa)return Ca;wa=1;var e=pr(),t=Sa(),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 Ca=O,Ca}var Ea,Da;function Oa(){if(Da)return Ea;Da=1;function e(e){return function(t){return e(t)}}return Ea=e,Ea}var ka={exports:{}};ka.exports;var Aa;function ja(){return Aa?ka.exports:(Aa=1,(function(e,t){var n=$n(),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{}}()})(ka,ka.exports),ka.exports)}var Ma,Na;function Pa(){if(Na)return Ma;Na=1;var e=Ta(),t=Oa(),n=ja(),r=n&&n.isTypedArray;return Ma=r?t(r):e,Ma}var Fa,Ia;function La(){if(Ia)return Fa;Ia=1;var e=ea(),t=ca(),n=J(),r=ga(),i=ya(),a=Pa(),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 Fa=s,Fa}var Ra,za;function Ba(){if(za)return Ra;za=1;var e=Object.prototype;function t(t){var n=t&&t.constructor;return t===(typeof n==`function`&&n.prototype||e)}return Ra=t,Ra}var Va,Ha;function Ua(){if(Ha)return Va;Ha=1;function e(e,t){return function(n){return e(t(n))}}return Va=e,Va}var Wa,Ga;function Ka(){return Ga?Wa:(Ga=1,Wa=Ua()(Object.keys,Object),Wa)}var qa,Ja;function Ya(){if(Ja)return qa;Ja=1;var e=Ba(),t=Ka(),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 qa=r,qa}var Xa,Za;function Qa(){if(Za)return Xa;Za=1;var e=vr(),t=Sa();function n(n){return n!=null&&t(n.length)&&!e(n)}return Xa=n,Xa}var $a,eo;function to(){if(eo)return $a;eo=1;var e=La(),t=Ya(),n=Qa();function r(r){return n(r)?e(r):t(r)}return $a=r,$a}var no,ro;function io(){if(ro)return no;ro=1;var e=Zi(),t=to();function n(n,r){return n&&e(r,t(r),n)}return no=n,no}var ao,oo;function so(){if(oo)return ao;oo=1;function e(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return ao=e,ao}var co,lo;function uo(){if(lo)return co;lo=1;var e=K(),t=Ba(),n=so(),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 co=i,co}var fo,po;function mo(){if(po)return fo;po=1;var e=La(),t=uo(),n=Qa();function r(r){return n(r)?e(r,!0):t(r)}return fo=r,fo}var ho,go;function _o(){if(go)return ho;go=1;var e=Zi(),t=mo();function n(n,r){return n&&e(r,t(r),n)}return ho=n,ho}var vo={exports:{}};vo.exports;var yo;function bo(){return yo?vo.exports:(yo=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})(vo,vo.exports),vo.exports)}var xo,So;function Co(){if(So)return xo;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 xo=e,xo}var wo,To;function Eo(){if(To)return wo;To=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 wo=e,wo}var Do,Oo;function ko(){if(Oo)return Do;Oo=1;function e(){return[]}return Do=e,Do}var Ao,jo;function Mo(){if(jo)return Ao;jo=1;var e=Eo(),t=ko(),n=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return Ao=r?function(t){return t==null?[]:(t=Object(t),e(r(t),function(e){return n.call(t,e)}))}:t,Ao}var No,Po;function Fo(){if(Po)return No;Po=1;var e=Zi(),t=Mo();function n(n,r){return e(n,t(n),r)}return No=n,No}var Io,Lo;function Ro(){if(Lo)return Io;Lo=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 Io=e,Io}var zo,Bo;function Vo(){return Bo?zo:(Bo=1,zo=Ua()(Object.getPrototypeOf,Object),zo)}var Ho,Uo;function Wo(){if(Uo)return Ho;Uo=1;var e=Ro(),t=Vo(),n=Mo(),r=ko();return Ho=Object.getOwnPropertySymbols?function(r){for(var i=[];r;)e(i,n(r)),r=t(r);return i}:r,Ho}var Go,Ko;function qo(){if(Ko)return Go;Ko=1;var e=Zi(),t=Wo();function n(n,r){return e(n,t(n),r)}return Go=n,Go}var Jo,Yo;function Xo(){if(Yo)return Jo;Yo=1;var e=Ro(),t=J();function n(n,r,i){var a=r(n);return t(n)?a:e(a,i(n))}return Jo=n,Jo}var Zo,Qo;function $o(){if(Qo)return Zo;Qo=1;var e=Xo(),t=Mo(),n=to();function r(r){return e(r,n,t)}return Zo=r,Zo}var es,ts;function ns(){if(ts)return es;ts=1;var e=Xo(),t=Wo(),n=mo();function r(r){return e(r,n,t)}return es=r,es}var rs,is;function as(){return is?rs:(is=1,rs=Ir()(G(),`DataView`),rs)}var os,ss;function cs(){return ss?os:(ss=1,os=Ir()(G(),`Promise`),os)}var ls,us;function ds(){return us?ls:(us=1,ls=Ir()(G(),`Set`),ls)}var fs,ps;function ms(){return ps?fs:(ps=1,fs=Ir()(G(),`WeakMap`),fs)}var hs,gs;function _s(){if(gs)return hs;gs=1;var e=as(),t=zr(),n=cs(),r=ds(),i=ms(),a=pr(),o=Dr(),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}),hs=v,hs}var vs,ys;function bs(){if(ys)return vs;ys=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 vs=t,vs}var xs,Ss;function Cs(){return Ss?xs:(Ss=1,xs=G().Uint8Array,xs)}var ws,Ts;function Es(){if(Ts)return ws;Ts=1;var e=Cs();function t(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}return ws=t,ws}var Ds,Os;function ks(){if(Os)return Ds;Os=1;var e=Es();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}return Ds=t,Ds}var As,js;function Ms(){if(js)return As;js=1;var e=/\w*$/;function t(t){var n=new t.constructor(t.source,e.exec(t));return n.lastIndex=t.lastIndex,n}return As=t,As}var Ns,Ps;function Fs(){if(Ps)return Ns;Ps=1;var e=ir(),t=e?e.prototype:void 0,n=t?t.valueOf:void 0;function r(e){return n?Object(n.call(e)):{}}return Ns=r,Ns}var Is,Ls;function Rs(){if(Ls)return Is;Ls=1;var e=Es();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}return Is=t,Is}var zs,Bs;function Vs(){if(Bs)return zs;Bs=1;var e=Es(),t=ks(),n=Ms(),r=Fs(),i=Rs(),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 zs=w,zs}var Hs,Us;function Ws(){if(Us)return Hs;Us=1;var e=K(),t=Object.create;return Hs=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}}(),Hs}var Gs,Ks;function qs(){if(Ks)return Gs;Ks=1;var e=Ws(),t=Vo(),n=Ba();function r(r){return typeof r.constructor==`function`&&!n(r)?e(t(r)):{}}return Gs=r,Gs}var Js,Ys;function Xs(){if(Ys)return Js;Ys=1;var e=_s(),t=q(),n=`[object Map]`;function r(r){return t(r)&&e(r)==n}return Js=r,Js}var Zs,Qs;function $s(){if(Qs)return Zs;Qs=1;var e=Xs(),t=Oa(),n=ja(),r=n&&n.isMap;return Zs=r?t(r):e,Zs}var ec,tc;function nc(){if(tc)return ec;tc=1;var e=_s(),t=q(),n=`[object Set]`;function r(r){return t(r)&&e(r)==n}return ec=r,ec}var rc,ic;function ac(){if(ic)return rc;ic=1;var e=nc(),t=Oa(),n=ja(),r=n&&n.isSet;return rc=r?t(r):e,rc}var oc,sc;function cc(){if(sc)return oc;sc=1;var e=Ii(),t=zi(),n=Ji(),r=io(),i=_o(),a=bo(),o=Co(),s=Fo(),c=qo(),l=$o(),u=ns(),d=_s(),f=bs(),p=Vs(),m=qs(),h=J(),g=ga(),_=$s(),v=K(),y=ac(),b=to(),x=mo(),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 oc=de,oc}var lc,uc;function dc(){if(uc)return lc;uc=1;var e=cc(),t=4;function n(n){return e(n,t)}return lc=n,lc}var fc,pc;function mc(){if(pc)return fc;pc=1;function e(e){return function(){return e}}return fc=e,fc}var hc,gc;function _c(){if(gc)return hc;gc=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 hc=e,hc}var vc,yc;function bc(){return yc?vc:(yc=1,vc=_c()(),vc)}var xc,Sc;function Cc(){if(Sc)return xc;Sc=1;var e=bc(),t=to();function n(n,r){return n&&e(n,r,t)}return xc=n,xc}var wc,Tc;function Ec(){if(Tc)return wc;Tc=1;var e=Qa();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 wc=t,wc}var Dc,Oc;function kc(){if(Oc)return Dc;Oc=1;var e=Cc();return Dc=Ec()(e),Dc}var Ac,jc;function Mc(){if(jc)return Ac;jc=1;function e(e){return e}return Ac=e,Ac}var Nc,Pc;function Fc(){if(Pc)return Nc;Pc=1;var e=Mc();function t(t){return typeof t==`function`?t:e}return Nc=t,Nc}var Ic,Lc;function Rc(){if(Lc)return Ic;Lc=1;var e=zi(),t=kc(),n=Fc(),r=J();function i(i,a){return(r(i)?e:t)(i,n(a))}return Ic=i,Ic}var zc,Bc;function Vc(){return Bc?zc:(Bc=1,zc=Rc(),zc)}var Hc,Uc;function Wc(){if(Uc)return Hc;Uc=1;var e=kc();function t(t,n){var r=[];return e(t,function(e,t,i){n(e,t,i)&&r.push(e)}),r}return Hc=t,Hc}var Gc,Kc;function qc(){if(Kc)return Gc;Kc=1;var e=`__lodash_hash_undefined__`;function t(t){return this.__data__.set(t,e),this}return Gc=t,Gc}var Jc,Yc;function Xc(){if(Yc)return Jc;Yc=1;function e(e){return this.__data__.has(e)}return Jc=e,Jc}var Zc,Qc;function $c(){if(Qc)return Zc;Qc=1;var e=Ai(),t=qc(),n=Xc();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,Zc=r,Zc}var el,tl;function nl(){if(tl)return el;tl=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 el=e,el}var rl,il;function al(){if(il)return rl;il=1;function e(e,t){return e.has(t)}return rl=e,rl}var ol,sl;function cl(){if(sl)return ol;sl=1;var e=$c(),t=nl(),n=al(),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 ol=a,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,r){n[++t]=[r,e]}),n}return ll=e,ll}var fl,pl;function ml(){if(pl)return fl;pl=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}return fl=e,fl}var hl,gl;function _l(){if(gl)return hl;gl=1;var e=ir(),t=Cs(),n=bn(),r=cl(),i=dl(),a=ml(),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 hl=x,hl}var vl,yl;function bl(){if(yl)return vl;yl=1;var e=$o(),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 vl=r,vl}var xl,Sl;function Cl(){if(Sl)return xl;Sl=1;var e=Ii(),t=cl(),n=_l(),r=bl(),i=_s(),a=J(),o=ga(),s=Pa(),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 xl=p,xl}var wl,Tl;function El(){if(Tl)return wl;Tl=1;var e=Cl(),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 wl=n,wl}var Dl,Ol;function kl(){if(Ol)return Dl;Ol=1;var e=Ii(),t=El(),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 Dl=i,Dl}var Al,jl;function Ml(){if(jl)return Al;jl=1;var e=K();function t(t){return t===t&&!e(t)}return Al=t,Al}var Nl,Pl;function Fl(){if(Pl)return Nl;Pl=1;var e=Ml(),t=to();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 Nl=n,Nl}var Il,Ll;function Rl(){if(Ll)return Il;Ll=1;function e(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}return Il=e,Il}var zl,Bl;function Vl(){if(Bl)return zl;Bl=1;var e=kl(),t=Fl(),n=Rl();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 zl=r,zl}var Hl,Ul;function Wl(){if(Ul)return Hl;Ul=1;var e=pr(),t=q(),n=`[object Symbol]`;function r(r){return typeof r==`symbol`||t(r)&&e(r)==n}return Hl=r,Hl}var Gl,Kl;function ql(){if(Kl)return Gl;Kl=1;var e=J(),t=Wl(),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 Gl=i,Gl}var Jl,Yl;function Xl(){if(Yl)return Jl;Yl=1;var e=Ai(),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,Jl=n,Jl}var Zl,Ql;function $l(){if(Ql)return Zl;Ql=1;var e=Xl(),t=500;function n(n){var r=e(n,function(e){return i.size===t&&i.clear(),e}),i=r.cache;return r}return Zl=n,Zl}var eu,tu;function nu(){if(tu)return eu;tu=1;var e=$l(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g;return eu=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}),eu}var ru,iu;function au(){if(iu)return ru;iu=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 ru=e,ru}var ou,su;function cu(){if(su)return ou;su=1;var e=ir(),t=au(),n=J(),r=Wl(),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 ou=o,ou}var lu,uu;function du(){if(uu)return lu;uu=1;var e=cu();function t(t){return t==null?``:e(t)}return lu=t,lu}var fu,pu;function mu(){if(pu)return fu;pu=1;var e=J(),t=ql(),n=nu(),r=du();function i(i,a){return e(i)?i:t(i,a)?[i]:n(r(i))}return fu=i,fu}var hu,gu;function _u(){if(gu)return hu;gu=1;var e=Wl();function t(t){if(typeof t==`string`||e(t))return t;var n=t+``;return n==`0`&&1/t==-1/0?`-0`:n}return hu=t,hu}var vu,yu;function bu(){if(yu)return vu;yu=1;var e=mu(),t=_u();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 vu=n,vu}var xu,Su;function Cu(){if(Su)return xu;Su=1;var e=bu();function t(t,n,r){var i=t==null?void 0:e(t,n);return i===void 0?r:i}return xu=t,xu}var wu,Tu;function Eu(){if(Tu)return wu;Tu=1;function e(e,t){return e!=null&&t in Object(e)}return wu=e,wu}var Du,Ou;function ku(){if(Ou)return Du;Ou=1;var e=mu(),t=ca(),n=J(),r=ya(),i=Sa(),a=_u();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 Du=o,Du}var Au,ju;function Mu(){if(ju)return Au;ju=1;var e=Eu(),t=ku();function n(n,r){return n!=null&&t(n,r,e)}return Au=n,Au}var Nu,Pu;function Fu(){if(Pu)return Nu;Pu=1;var e=El(),t=Cu(),n=Mu(),r=ql(),i=Ml(),a=Rl(),o=_u(),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 Nu=l,Nu}var Iu,Lu;function Ru(){if(Lu)return Iu;Lu=1;function e(e){return function(t){return t?.[e]}}return Iu=e,Iu}var zu,Bu;function Vu(){if(Bu)return zu;Bu=1;var e=bu();function t(t){return function(n){return e(n,t)}}return zu=t,zu}var Hu,Uu;function Wu(){if(Uu)return Hu;Uu=1;var e=Ru(),t=Vu(),n=ql(),r=_u();function i(i){return n(i)?e(r(i)):t(i)}return Hu=i,Hu}var Gu,Ku;function Y(){if(Ku)return Gu;Ku=1;var e=Vl(),t=Fu(),n=Mc(),r=J(),i=Wu();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 Gu=a,Gu}var qu,Ju;function Yu(){if(Ju)return qu;Ju=1;var e=Eo(),t=Wc(),n=Y(),r=J();function i(i,a){return(r(i)?e:t)(i,n(a,3))}return qu=i,qu}var Xu,Zu;function Qu(){if(Zu)return Xu;Zu=1;var e=Object.prototype.hasOwnProperty;function t(t,n){return t!=null&&e.call(t,n)}return Xu=t,Xu}var $u,ed;function td(){if(ed)return $u;ed=1;var e=Qu(),t=ku();function n(n,r){return n!=null&&t(n,r,e)}return $u=n,$u}var nd,rd;function id(){if(rd)return nd;rd=1;var e=Ya(),t=_s(),n=ca(),r=J(),i=Qa(),a=ga(),o=Ba(),s=Pa(),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 nd=d,nd}var ad,od;function sd(){if(od)return ad;od=1;function e(e){return e===void 0}return ad=e,ad}var cd,ld;function ud(){if(ld)return cd;ld=1;var e=kc(),t=Qa();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 cd=n,cd}var dd,fd;function pd(){if(fd)return dd;fd=1;var e=au(),t=Y(),n=ud(),r=J();function i(i,a){return(r(i)?e:n)(i,t(a,3))}return dd=i,dd}var md,hd;function gd(){if(hd)return md;hd=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 md=e,md}var _d,vd;function yd(){if(vd)return _d;vd=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 _d=e,_d}var bd,xd;function Sd(){if(xd)return bd;xd=1;var e=gd(),t=kc(),n=Y(),r=yd(),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 bd=a,bd}var Cd,wd;function Td(){if(wd)return Cd;wd=1;var e=pr(),t=J(),n=q(),r=`[object String]`;function i(i){return typeof i==`string`||!t(i)&&n(i)&&e(i)==r}return Cd=i,Cd}var Ed,Dd;function Od(){return Dd?Ed:(Dd=1,Ed=Ru()(`length`),Ed)}var kd,Ad;function jd(){if(Ad)return kd;Ad=1;var e=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function t(t){return e.test(t)}return kd=t,kd}var Md,Nd;function Pd(){if(Nd)return Md;Nd=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 Md=_,Md}var Fd,Id;function Ld(){if(Id)return Fd;Id=1;var e=Od(),t=jd(),n=Pd();function r(r){return t(r)?n(r):e(r)}return Fd=r,Fd}var Rd,zd;function Bd(){if(zd)return Rd;zd=1;var e=Ya(),t=_s(),n=Qa(),r=Td(),i=Ld(),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 Rd=s,Rd}var Vd,Hd;function Ud(){if(Hd)return Vd;Hd=1;var e=zi(),t=Ws(),n=Cc(),r=Y(),i=Vo(),a=J(),o=ga(),s=vr(),c=K(),l=Pa();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 Vd=u,Vd}var Wd,Gd;function Kd(){if(Gd)return Wd;Gd=1;var e=ir(),t=ca(),n=J(),r=e?e.isConcatSpreadable:void 0;function i(e){return n(e)||t(e)||!!(r&&e&&e[r])}return Wd=i,Wd}var qd,Jd;function Yd(){if(Jd)return qd;Jd=1;var e=Ro(),t=Kd();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 qd=n,qd}var Xd,Zd;function Qd(){if(Zd)return Xd;Zd=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 Xd=e,Xd}var $d,ef;function tf(){if(ef)return $d;ef=1;var e=Qd(),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 $d=n,$d}var nf,rf;function af(){if(rf)return nf;rf=1;var e=mc(),t=Hi(),n=Mc();return nf=t?function(n,r){return t(n,`toString`,{configurable:!0,enumerable:!1,value:e(r),writable:!0})}:n,nf}var of,sf;function cf(){if(sf)return of;sf=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 of=r,of}var lf,uf;function df(){if(uf)return lf;uf=1;var e=af();return lf=cf()(e),lf}var ff,pf;function mf(){if(pf)return ff;pf=1;var e=Mc(),t=tf(),n=df();function r(r,i){return n(t(r,i,e),r+``)}return ff=r,ff}var hf,gf;function _f(){if(gf)return hf;gf=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 hf=e,hf}var vf,yf;function bf(){if(yf)return vf;yf=1;function e(e){return e!==e}return vf=e,vf}var xf,Sf;function Cf(){if(Sf)return xf;Sf=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 xf=e,xf}var wf,Tf;function Ef(){if(Tf)return wf;Tf=1;var e=_f(),t=bf(),n=Cf();function r(r,i,a){return i===i?n(r,i,a):e(r,t,a)}return wf=r,wf}var Df,Of;function kf(){if(Of)return Df;Of=1;var e=Ef();function t(t,n){return!!(t!=null&&t.length)&&e(t,n,0)>-1}return Df=t,Df}var Af,jf;function Mf(){if(jf)return Af;jf=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 Af=e,Af}var Nf,Pf;function Ff(){if(Pf)return Nf;Pf=1;function e(){}return Nf=e,Nf}var If,Lf;function Rf(){if(Lf)return If;Lf=1;var e=ds(),t=Ff(),n=ml();return If=e&&1/n(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t,If}var zf,Bf;function Vf(){if(Bf)return zf;Bf=1;var e=$c(),t=kf(),n=Mf(),r=al(),i=Rf(),a=ml(),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 zf=s,zf}var Hf,Uf;function Wf(){if(Uf)return Hf;Uf=1;var e=Qa(),t=q();function n(n){return t(n)&&e(n)}return Hf=n,Hf}var Gf,Kf;function qf(){if(Kf)return Gf;Kf=1;var e=Yd(),t=mf(),n=Vf(),r=Wf();return Gf=t(function(t){return n(e(t,1,r,!0))}),Gf}var Jf,Yf;function Xf(){if(Yf)return Jf;Yf=1;var e=au();function t(t,n){return e(n,function(e){return t[e]})}return Jf=t,Jf}var Zf,Qf;function $f(){if(Qf)return Zf;Qf=1;var e=Xf(),t=to();function n(n){return n==null?[]:e(n,t(n))}return Zf=n,Zf}var ep,tp;function X(){if(tp)return ep;tp=1;var e;if(typeof mn==`function`)try{e={clone:dc(),constant:mc(),each:Vc(),filter:Yu(),has:td(),isArray:J(),isEmpty:id(),isFunction:vr(),isUndefined:sd(),keys:to(),map:pd(),reduce:Sd(),size:Bd(),transform:Ud(),union:qf(),values:$f()}}catch{}return e||=window._,ep=e,ep}var np,rp;function ip(){if(rp)return np;rp=1;var e=X();np=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 np}var ap,op;function sp(){return op?ap:(op=1,ap=`2.1.8`,ap)}var cp,lp;function up(){return lp?cp:(lp=1,cp={Graph:ip(),version:sp()},cp)}var dp,fp;function pp(){if(fp)return dp;fp=1;var e=X(),t=ip();dp={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 dp}var mp,hp;function gp(){if(hp)return mp;hp=1;var e=X();mp=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 mp}var _p,vp;function yp(){if(vp)return _p;vp=1;var e=X();_p=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},_p}var bp,xp;function Sp(){if(xp)return bp;xp=1;var e=X(),t=yp();bp=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 bp}var Cp,wp;function Tp(){if(wp)return Cp;wp=1;var e=Sp(),t=X();Cp=n;function n(n,r,i){return t.transform(n.nodes(),function(t,a){t[a]=e(n,a,r,i)},{})}return Cp}var Ep,Dp;function Op(){if(Dp)return Ep;Dp=1;var e=X();Ep=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 Ep}var kp,Ap;function jp(){if(Ap)return kp;Ap=1;var e=X(),t=Op();kp=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 kp}var Mp,Np;function Pp(){if(Np)return Mp;Np=1;var e=X();Mp=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 Mp}var Fp,Ip;function Lp(){if(Ip)return Fp;Ip=1;var e=X();Fp=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(),Fp}var Rp,zp;function Bp(){if(zp)return Rp;zp=1;var e=Lp();Rp=t;function t(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}return Rp}var Vp,Hp;function Up(){if(Hp)return Vp;Hp=1;var e=X();Vp=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 Vp}var Wp,Gp;function Kp(){if(Gp)return Wp;Gp=1;var e=Up();Wp=t;function t(t,n){return e(t,n,`post`)}return Wp}var qp,Jp;function Yp(){if(Jp)return qp;Jp=1;var e=Up();qp=t;function t(t,n){return e(t,n,`pre`)}return qp}var Xp,Zp;function Qp(){if(Zp)return Xp;Zp=1;var e=X(),t=ip(),n=yp();Xp=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 Xp}var $p,em;function tm(){return em?$p:(em=1,$p={components:gp(),dijkstra:Sp(),dijkstraAll:Tp(),findCycles:jp(),floydWarshall:Pp(),isAcyclic:Bp(),postorder:Kp(),preorder:Yp(),prim:Qp(),tarjan:Op(),topsort:Lp()},$p)}var nm,rm;function im(){if(rm)return nm;rm=1;var e=up();return nm={Graph:e.Graph,json:pp(),alg:tm(),version:e.version},nm}var am,om;function Z(){if(om)return am;om=1;var e;if(typeof mn==`function`)try{e=im()}catch{}return e||=window.graphlib,am=e,am}var sm,cm;function lm(){if(cm)return sm;cm=1;var e=cc(),t=1,n=4;function r(r){return e(r,t|n)}return sm=r,sm}var um,dm;function fm(){if(dm)return um;dm=1;var e=bn(),t=Qa(),n=ya(),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 um=i,um}var pm,mm;function hm(){if(mm)return pm;mm=1;var e=mf(),t=bn(),n=fm(),r=mo(),i=Object.prototype,a=i.hasOwnProperty;return pm=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}),pm}var gm,_m;function vm(){if(_m)return gm;_m=1;var e=Y(),t=Qa(),n=to();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 gm=r,gm}var ym,bm;function xm(){if(bm)return ym;bm=1;var e=/\s/;function t(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}return ym=t,ym}var Sm,Cm;function wm(){if(Cm)return Sm;Cm=1;var e=xm(),t=/^\s+/;function n(n){return n&&n.slice(0,e(n)+1).replace(t,``)}return Sm=n,Sm}var Tm,Em;function Dm(){if(Em)return Tm;Em=1;var e=wm(),t=K(),n=Wl(),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 Tm=c,Tm}var Om,km;function Am(){if(km)return Om;km=1;var e=Dm(),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 Om=r,Om}var jm,Mm;function Nm(){if(Mm)return jm;Mm=1;var e=Am();function t(t){var n=e(t),r=n%1;return n===n?r?n-r:n:0}return jm=t,jm}var Pm,Fm;function Im(){if(Fm)return Pm;Fm=1;var e=_f(),t=Y(),n=Nm(),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 Pm=i,Pm}var Lm,Rm;function zm(){return Rm?Lm:(Rm=1,Lm=vm()(Im()),Lm)}var Bm,Vm;function Hm(){if(Vm)return Bm;Vm=1;var e=Yd();function t(t){return t!=null&&t.length?e(t,1):[]}return Bm=t,Bm}var Um,Wm;function Gm(){if(Wm)return Um;Wm=1;var e=bc(),t=Fc(),n=mo();function r(r,i){return r==null?r:e(r,t(i),n)}return Um=r,Um}var Km,qm;function Jm(){if(qm)return Km;qm=1;function e(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}return Km=e,Km}var Ym,Xm;function Zm(){if(Xm)return Ym;Xm=1;var e=Gi(),t=Cc(),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 Ym=r,Ym}var Qm,$m;function eh(){if($m)return Qm;$m=1;var e=Wl();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 Qm=t,Qm}var th,nh;function rh(){if(nh)return th;nh=1;function e(e,t){return e>t}return th=e,th}var ih,ah;function oh(){if(ah)return ih;ah=1;var e=eh(),t=rh(),n=Mc();function r(r){return r&&r.length?e(r,n,t):void 0}return ih=r,ih}var sh,ch;function lh(){if(ch)return sh;ch=1;var e=Gi(),t=bn();function n(n,r,i){(i!==void 0&&!t(n[r],i)||i===void 0&&!(r in n))&&e(n,r,i)}return sh=n,sh}var uh,dh;function fh(){if(dh)return uh;dh=1;var e=pr(),t=Vo(),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 uh=l,uh}var ph,mh;function hh(){if(mh)return ph;mh=1;function e(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}return ph=e,ph}var gh,_h;function vh(){if(_h)return gh;_h=1;var e=Zi(),t=mo();function n(n){return e(n,t(n))}return gh=n,gh}var yh,bh;function xh(){if(bh)return yh;bh=1;var e=lh(),t=bo(),n=Rs(),r=Co(),i=qs(),a=ca(),o=J(),s=Wf(),c=ga(),l=vr(),u=K(),d=fh(),f=Pa(),p=hh(),m=vh();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 yh=h,yh}var Sh,Ch;function wh(){if(Ch)return Sh;Ch=1;var e=Ii(),t=lh(),n=bc(),r=xh(),i=K(),a=mo(),o=hh();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 Sh=s,Sh}var Th,Eh;function Dh(){if(Eh)return Th;Eh=1;var e=mf(),t=fm();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 Th=n,Th}var Oh,kh;function Ah(){if(kh)return Oh;kh=1;var e=wh();return Oh=Dh()(function(t,n,r){e(t,n,r)}),Oh}var jh,Mh;function Nh(){if(Mh)return jh;Mh=1;function e(e,t){return e<t}return jh=e,jh}var Ph,Fh;function Ih(){if(Fh)return Ph;Fh=1;var e=eh(),t=Nh(),n=Mc();function r(r){return r&&r.length?e(r,n,t):void 0}return Ph=r,Ph}var Lh,Rh;function zh(){if(Rh)return Lh;Rh=1;var e=eh(),t=Y(),n=Nh();function r(r,i){return r&&r.length?e(r,t(i,2),n):void 0}return Lh=r,Lh}var Bh,Vh;function Hh(){if(Vh)return Bh;Vh=1;var e=G();return Bh=function(){return e.Date.now()},Bh}var Uh,Wh;function Gh(){if(Wh)return Uh;Wh=1;var e=Ji(),t=mu(),n=ya(),r=K(),i=_u();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 Uh=a,Uh}var Kh,qh;function Jh(){if(qh)return Kh;qh=1;var e=bu(),t=Gh(),n=mu();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 Kh=r,Kh}var Yh,Xh;function Zh(){if(Xh)return Yh;Xh=1;var e=Jh(),t=Mu();function n(n,r){return e(n,r,function(e,r){return t(n,r)})}return Yh=n,Yh}var Qh,$h;function eg(){if($h)return Qh;$h=1;var e=Hm(),t=tf(),n=df();function r(r){return n(t(r,void 0,e),r+``)}return Qh=r,Qh}var tg,ng;function rg(){if(ng)return tg;ng=1;var e=Zh();return tg=eg()(function(t,n){return t==null?{}:e(t,n)}),tg}var ig,ag;function og(){if(ag)return ig;ag=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 ig=n,ig}var sg,cg;function lg(){if(cg)return sg;cg=1;var e=og(),t=fm(),n=Am();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 sg=r,sg}var ug,dg;function fg(){return dg?ug:(dg=1,ug=lg()(),ug)}var pg,mg;function hg(){if(mg)return pg;mg=1;function e(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}return pg=e,pg}var gg,_g;function vg(){if(_g)return gg;_g=1;var e=Wl();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 gg=t,gg}var yg,bg;function xg(){if(bg)return yg;bg=1;var e=vg();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 yg=t,yg}var Sg,Cg;function wg(){if(Cg)return Sg;Cg=1;var e=au(),t=bu(),n=Y(),r=ud(),i=hg(),a=Oa(),o=xg(),s=Mc(),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 Sg=l,Sg}var Tg,Eg;function Dg(){if(Eg)return Tg;Eg=1;var e=Yd(),t=wg(),n=mf(),r=fm();return Tg=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),[])}),Tg}var Og,kg;function Ag(){if(kg)return Og;kg=1;var e=du(),t=0;function n(n){var r=++t;return e(n)+r}return Og=n,Og}var jg,Mg;function Ng(){if(Mg)return jg;Mg=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 jg=e,jg}var Pg,Fg;function Ig(){if(Fg)return Pg;Fg=1;var e=Ji(),t=Ng();function n(n,r){return t(n||[],r||[],e)}return Pg=n,Pg}var Lg,Rg;function Q(){if(Rg)return Lg;Rg=1;var e;if(typeof mn==`function`)try{e={cloneDeep:lm(),constant:mc(),defaults:hm(),each:Vc(),filter:Yu(),find:zm(),flatten:Hm(),forEach:Rc(),forIn:Gm(),has:td(),isUndefined:sd(),last:Jm(),map:pd(),mapValues:Zm(),max:oh(),merge:Ah(),min:Ih(),minBy:zh(),now:Hh(),pick:rg(),range:fg(),reduce:Sd(),sortBy:Dg(),uniqueId:Ag(),values:$f(),zipObject:Ig()}}catch{}return e||=window._,Lg=e,Lg}var zg,Bg;function Vg(){if(Bg)return zg;Bg=1,zg=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 zg}var Hg,Ug;function Wg(){if(Ug)return Hg;Ug=1;var e=Q(),t=Z().Graph,n=Vg();Hg=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 Hg}var Gg,Kg;function qg(){if(Kg)return Gg;Kg=1;var e=Q(),t=Wg();Gg={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 Gg}var Jg,Yg;function $(){if(Yg)return Jg;Yg=1;var e=Q(),t=Z().Graph;Jg={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 Jg}var Xg,Zg;function Qg(){if(Zg)return Xg;Zg=1;var e=Q(),t=$();Xg={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 Xg}var $g,e_;function t_(){if(e_)return $g;e_=1;var e=Q();$g={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 $g}var n_,r_;function i_(){if(r_)return n_;r_=1;var e=Q(),t=Z().Graph,n=t_().slack;n_=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 n_}var a_,o_;function s_(){if(o_)return a_;o_=1;var e=Q(),t=i_(),n=t_().slack,r=t_().longestPath,i=Z().alg.preorder,a=Z().alg.postorder,o=$().simplify;a_=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 a_}var c_,l_;function u_(){if(l_)return c_;l_=1;var e=t_().longestPath,t=i_(),n=s_();c_=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 c_}var d_,f_;function p_(){if(f_)return d_;f_=1;var e=Q();d_=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 d_}var m_,h_;function g_(){if(h_)return m_;h_=1;var e=Q(),t=$();m_={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 m_}var __,v_;function y_(){if(v_)return __;v_=1;var e=Q(),t=$();__=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 __}var b_,x_;function S_(){if(x_)return b_;x_=1;var e=Q();b_={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 b_}var C_,w_;function T_(){if(w_)return C_;w_=1;var e=Q();C_=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 C_}var E_,D_;function O_(){if(D_)return E_;D_=1;var e=Q();E_=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 E_}var k_,A_;function j_(){if(A_)return k_;A_=1;var e=Q();k_=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 k_}var M_,N_;function P_(){if(N_)return M_;N_=1;var e=Q();M_=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 M_}var F_,I_;function L_(){if(I_)return F_;I_=1;var e=Q(),t=$();F_=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 F_}var R_,z_;function B_(){if(z_)return R_;z_=1;var e=Q(),t=j_(),n=P_(),r=L_();R_=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 R_}var V_,H_;function U_(){if(H_)return V_;H_=1;var e=Q(),t=Z().Graph;V_=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 V_}var W_,G_;function K_(){if(G_)return W_;G_=1;var e=Q();W_=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 W_}var q_,J_;function Y_(){if(J_)return q_;J_=1;var e=Q(),t=T_(),n=O_(),r=B_(),i=U_(),a=K_(),o=Z().Graph,s=$();q_=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 q_}var X_,Z_;function Q_(){if(Z_)return X_;Z_=1;var e=Q(),t=Z().Graph,n=$();X_={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 X_}var $_,ev;function tv(){if(ev)return $_;ev=1;var e=Q(),t=$(),n=Q_().positionX;$_=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 $_}var nv,rv;function iv(){if(rv)return nv;rv=1;var e=Q(),t=qg(),n=Qg(),r=u_(),i=$().normalizeRanks,a=p_(),o=$().removeEmptyRanks,s=g_(),c=y_(),l=S_(),u=Y_(),d=tv(),f=$(),p=Z().Graph;nv=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 nv}var av,ov;function sv(){if(ov)return av;ov=1;var e=Q(),t=$(),n=Z().Graph;av={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 av}var cv,lv;function uv(){return lv?cv:(lv=1,cv=`0.8.5`,cv)}var dv,fv;function pv(){return fv?dv:(fv=1,dv={graphlib:Z(),layout:iv(),debug:sv(),util:{time:$().time,notime:$().notime},version:uv()},dv)}var mv=pv(),hv=pn(mv),gv=function(e){return un(e,`Boolean`)};function _v(e,t){if(e){var n;if(on(e))for(var r=0,i=e.length;r<i&&(n=t(e[r],r),n!==!1);r++);else if(sn(e)){for(var a in e)if(e.hasOwnProperty(a)&&(n=t(e[a],a),n===!1))break}}}var vv=Object.prototype.hasOwnProperty,yv=(function(e,t){if(e===null||!dn(e))return{};var n={};return _v(t,function(t){vv.call(e,t)&&(n[t]=e[t])}),n}),bv=class extends an{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 qe(this,void 0,void 0,function*(){let e=new mv.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});e.setGraph(yv(this.options,this.config.graphAttributes)),e.setDefaultEdgeLabel(()=>({}));let t=xt(this.options.nodeSize,0);this.model.forEachNode(n=>{let r=n._original,[i,a]=ht(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=xt(n,0,`edge`),c=bt(r,10,`edge`),l=typeof i==`string`?()=>i:yt(i,[`edge`]),u=bt(a,1,`edge`),d=bt(o,1,`edge`);this.model.forEachEdge(t=>{let n=t._original,[r,i]=ht(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))}),hv.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(St)})})}isCompound(){return this.isCompoundGraph===null?gv(this.options.compound)?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(e=>!W(e.parentId)),this.isCompoundGraph):this.isCompoundGraph}},xv=26,Sv=72,Cv=24,wv=28,Tv=16,Ev=8,Dv=20,Ov=24,kv=12,Av=22,jv=52,Mv=24,Nv=3,Pv=(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)),xv),a=r(e.map(e=>n.get(e.id)),Sv),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}},Fv=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)},Iv=(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&&(Fv(a,e.source,e.target),Fv(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}}},Lv=(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)Fv(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},Rv=(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}},zv=e=>e.gate===`t`?[e.chans[0]]:e.gate===`s`?[e.chans[1]]:e.chans,Bv=(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=zv(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`])+Ev))});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}},Vv=(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?Cv:wv+(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?Dv:Ov+(n-1)*f[`size-edge-track-gap`],r>0?Ov+r*Av:0,i>0?jv+(i-1)*f[`size-edge-track-gap`]+kv: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}},Hv=(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)Fv(f,i[0],{edge:r,posIn:c.y,posOut:l.y-jv,...o[0]});else if(i.length===1)Fv(f,i[0],{edge:r,posIn:c.y,posOut:l.y,...o[0]});else{let e=d(a[0]);s!==`s`&&Fv(f,i[0],{edge:r,posIn:c.y,posOut:e,...o[0]}),s!==`t`&&Fv(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],Tv,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`);Fv(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],kv,i[`size-edge-track-gap`]))g.set(`${e}:${n}`,r);return{chanX:m,gutY:(e,t)=>d(e)+g.get(`${e}:${t}`)}},Uv=(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-jv-(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)})},Wv=(e,t,n,r,i,a,o,s,c,l)=>{let u=ie(e,c),d=Hv(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}=Hv(e,t,f,s,c),h=Uv(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)}},Gv=(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]-Dv:0,d=t<s-1&&u(t,n)?o.gutH[t]-Dv: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>=Mv: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<Nv;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},Kv=(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`}}),qv=(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))}},Jv=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 bv({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=Pv(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(Iv(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=Lv(o,s,f,p)}if(m===1){let e=o.filter(e=>n.fixedSize?.has(e.id)),t=e.reduce((e,t)=>Math.max(e,c.get(t.id)),0);for(let n of e)c.set(n.id,t)}({ncols:m,nrows:h}=Rv(a,i,f,p,m,h));let g=Kv(i,f,n),_=Bv(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++,_=Bv(i,f,p,g,a,t)}let{plans:v,chanCnt:y,gutCnt:b,chanLbl:x,gutLbl:S,gutLoop:C}=_;qv(r,i,g,l,t,n);let w=Vv(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:Gv(r,i,v,f,p,l,w,h,T,()=>Wv(i,v,g,c,l,E,D,w,t,n)).polys}},Yv=`\0`,Xv=28,Zv=16,Qv=40,$v=8,ey=12,ty=e=>{let t=Array.from(e.nodes.values());for(let e of t)if(e.id.includes(Yv))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}},ny={graph:{render:Jv,gated:!0},hub:{render:async(e,t,n={})=>{let{center:r,inputs:i,outputs:a,nodes:o,edges:s}=ty(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+ey)},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`])+$v):e,Qv),P=(e,t)=>M(e,!1)+(N[t]>0?(t===1?ee:Qv)+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`],Xv+(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],Zv,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}},ry=Object.keys(ny),iy=`graph`,ay=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(ny,e[1])&&(t=e[1])}return t},oy=[`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(ny,n))throw Error(`invalid diagram type "${n}"`);let r=t.format??`svg:standalone`;if(!oy.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,ry),s=e=>Se(e,o,n,ny,a),c=Te(e,o),l=Ke(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??ay(t),a={..._(t),...g(n.config??{},{trusted:!0})};return e.generate(r,{...n,type:i,config:a})}},e.diagramFormatDefault=`svg:standalone`,e.diagramFormats=oy,e.diagramTypeDefault=iy,e.diagramTypes=ry});
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Object Graph Diagram Rendering",
|
|
4
4
|
"keywords": [ "object", "graph", "diagram", "rendering", "svg", "layout", "api", "cli" ],
|
|
5
5
|
"publishConfig": { "access": "public" },
|
|
6
|
-
"version": "1.4.
|
|
6
|
+
"version": "1.4.2",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Dr. Ralf S. Engelschall",
|