agent-dag 1.33.21 → 1.33.22

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.
@@ -56,7 +56,7 @@ Error generating stack: `+x.message+`
56
56
  */var iw;function fR(){if(iw)return Wc;iw=1;var e=ta(),n=dR();function r(p,h){return p===h&&(p!==0||1/p===1/h)||p!==p&&h!==h}var s=typeof Object.is=="function"?Object.is:r,o=n.useSyncExternalStore,l=e.useRef,u=e.useEffect,c=e.useMemo,f=e.useDebugValue;return Wc.useSyncExternalStoreWithSelector=function(p,h,g,y,w){var C=l(null);if(C.current===null){var _={hasValue:!1,value:null};C.current=_}else _=C.current;C=c(function(){function b(O){if(!E){if(E=!0,N=O,O=y(O),w!==void 0&&_.hasValue){var q=_.value;if(w(q,O))return j=q}return j=O}if(q=j,s(N,O))return q;var F=y(O);return w!==void 0&&w(q,F)?(N=O,q):(N=O,j=F)}var E=!1,N,j,M=g===void 0?null:g;return[function(){return b(h())},M===null?void 0:function(){return b(M())}]},[h,g,y,w]);var S=o(p,C[0],C[1]);return u(function(){_.hasValue=!0,_.value=S},[S]),f(S),S},Wc}var sw;function hR(){return sw||(sw=1,Vc.exports=fR()),Vc.exports}var pR=hR();const mR=Yg(pR),gR={},ow=e=>{let n;const r=new Set,s=(h,g)=>{const y=typeof h=="function"?h(n):h;if(!Object.is(y,n)){const w=n;n=g??(typeof y!="object"||y===null)?y:Object.assign({},n,y),r.forEach(C=>C(n,w))}},o=()=>n,f={setState:s,getState:o,getInitialState:()=>p,subscribe:h=>(r.add(h),()=>r.delete(h)),destroy:()=>{(gR?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},p=n=e(s,o,f);return f},vR=e=>e?ow(e):ow,{useDebugValue:yR}=le,{useSyncExternalStoreWithSelector:wR}=mR,xR=e=>e;function Vk(e,n=xR,r){const s=wR(e.subscribe,e.getState,e.getServerState||e.getInitialState,n,r);return yR(s),s}const aw=(e,n)=>{const r=vR(e),s=(o,l=n)=>Vk(r,o,l);return Object.assign(s,r),s},_R=(e,n)=>e?aw(e,n):aw;function Ct(e,n){if(Object.is(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;if(e instanceof Map&&n instanceof Map){if(e.size!==n.size)return!1;for(const[s,o]of e)if(!Object.is(o,n.get(s)))return!1;return!0}if(e instanceof Set&&n instanceof Set){if(e.size!==n.size)return!1;for(const s of e)if(!n.has(s))return!1;return!0}const r=Object.keys(e);if(r.length!==Object.keys(n).length)return!1;for(const s of r)if(!Object.prototype.hasOwnProperty.call(n,s)||!Object.is(e[s],n[s]))return!1;return!0}var SR={value:()=>{}};function Hl(){for(var e=0,n=arguments.length,r={},s;e<n;++e){if(!(s=arguments[e]+"")||s in r||/[\s.]/.test(s))throw new Error("illegal type: "+s);r[s]=[]}return new jl(r)}function jl(e){this._=e}function bR(e,n){return e.trim().split(/^|\s+/).map(function(r){var s="",o=r.indexOf(".");if(o>=0&&(s=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:s}})}jl.prototype=Hl.prototype={constructor:jl,on:function(e,n){var r=this._,s=bR(e+"",r),o,l=-1,u=s.length;if(arguments.length<2){for(;++l<u;)if((o=(e=s[l]).type)&&(o=kR(r[o],e.name)))return o;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++l<u;)if(o=(e=s[l]).type)r[o]=lw(r[o],e.name,n);else if(n==null)for(o in r)r[o]=lw(r[o],e.name,null);return this},copy:function(){var e={},n=this._;for(var r in n)e[r]=n[r].slice();return new jl(e)},call:function(e,n){if((o=arguments.length-2)>0)for(var r=new Array(o),s=0,o,l;s<o;++s)r[s]=arguments[s+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(l=this._[e],s=0,o=l.length;s<o;++s)l[s].value.apply(n,r)},apply:function(e,n,r){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var s=this._[e],o=0,l=s.length;o<l;++o)s[o].value.apply(n,r)}};function kR(e,n){for(var r=0,s=e.length,o;r<s;++r)if((o=e[r]).name===n)return o.value}function lw(e,n,r){for(var s=0,o=e.length;s<o;++s)if(e[s].name===n){e[s]=SR,e=e.slice(0,s).concat(e.slice(s+1));break}return r!=null&&e.push({name:n,value:r}),e}var Ng="http://www.w3.org/1999/xhtml";const uw={svg:"http://www.w3.org/2000/svg",xhtml:Ng,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Vl(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),uw.hasOwnProperty(n)?{space:uw[n],local:e}:e}function ER(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===Ng&&n.documentElement.namespaceURI===Ng?n.createElement(e):n.createElementNS(r,e)}}function NR(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Wk(e){var n=Vl(e);return(n.local?NR:ER)(n)}function CR(){}function Xg(e){return e==null?CR:function(){return this.querySelector(e)}}function jR(e){typeof e!="function"&&(e=Xg(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=new Array(u),f,p,h=0;h<u;++h)(f=l[h])&&(p=e.call(f,f.__data__,h,l))&&("__data__"in f&&(p.__data__=f.__data__),c[h]=p);return new Sn(s,this._parents)}function RR(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function TR(){return[]}function Gk(e){return e==null?TR:function(){return this.querySelectorAll(e)}}function AR(e){return function(){return RR(e.apply(this,arguments))}}function IR(e){typeof e=="function"?e=AR(e):e=Gk(e);for(var n=this._groups,r=n.length,s=[],o=[],l=0;l<r;++l)for(var u=n[l],c=u.length,f,p=0;p<c;++p)(f=u[p])&&(s.push(e.call(f,f.__data__,p,u)),o.push(f));return new Sn(s,o)}function Kk(e){return function(){return this.matches(e)}}function Yk(e){return function(n){return n.matches(e)}}var MR=Array.prototype.find;function PR(e){return function(){return MR.call(this.children,e)}}function OR(){return this.firstElementChild}function qR(e){return this.select(e==null?OR:PR(typeof e=="function"?e:Yk(e)))}var LR=Array.prototype.filter;function $R(){return Array.from(this.children)}function DR(e){return function(){return LR.call(this.children,e)}}function FR(e){return this.selectAll(e==null?$R:DR(typeof e=="function"?e:Yk(e)))}function zR(e){typeof e!="function"&&(e=Kk(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=[],f,p=0;p<u;++p)(f=l[p])&&e.call(f,f.__data__,p,l)&&c.push(f);return new Sn(s,this._parents)}function Xk(e){return new Array(e.length)}function BR(){return new Sn(this._enter||this._groups.map(Xk),this._parents)}function Il(e,n){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=n}Il.prototype={constructor:Il,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,n){return this._parent.insertBefore(e,n)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function UR(e){return function(){return e}}function HR(e,n,r,s,o,l){for(var u=0,c,f=n.length,p=l.length;u<p;++u)(c=n[u])?(c.__data__=l[u],s[u]=c):r[u]=new Il(e,l[u]);for(;u<f;++u)(c=n[u])&&(o[u]=c)}function VR(e,n,r,s,o,l,u){var c,f,p=new Map,h=n.length,g=l.length,y=new Array(h),w;for(c=0;c<h;++c)(f=n[c])&&(y[c]=w=u.call(f,f.__data__,c,n)+"",p.has(w)?o[c]=f:p.set(w,f));for(c=0;c<g;++c)w=u.call(e,l[c],c,l)+"",(f=p.get(w))?(s[c]=f,f.__data__=l[c],p.delete(w)):r[c]=new Il(e,l[c]);for(c=0;c<h;++c)(f=n[c])&&p.get(y[c])===f&&(o[c]=f)}function WR(e){return e.__data__}function GR(e,n){if(!arguments.length)return Array.from(this,WR);var r=n?VR:HR,s=this._parents,o=this._groups;typeof e!="function"&&(e=UR(e));for(var l=o.length,u=new Array(l),c=new Array(l),f=new Array(l),p=0;p<l;++p){var h=s[p],g=o[p],y=g.length,w=KR(e.call(h,h&&h.__data__,p,s)),C=w.length,_=c[p]=new Array(C),S=u[p]=new Array(C),b=f[p]=new Array(y);r(h,g,_,S,b,w,n);for(var E=0,N=0,j,M;E<C;++E)if(j=_[E]){for(E>=N&&(N=E+1);!(M=S[N])&&++N<C;);j._next=M||null}}return u=new Sn(u,s),u._enter=c,u._exit=f,u}function KR(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function YR(){return new Sn(this._exit||this._groups.map(Xk),this._parents)}function XR(e,n,r){var s=this.enter(),o=this,l=this.exit();return typeof e=="function"?(s=e(s),s&&(s=s.selection())):s=s.append(e+""),n!=null&&(o=n(o),o&&(o=o.selection())),r==null?l.remove():r(l),s&&o?s.merge(o).order():o}function QR(e){for(var n=e.selection?e.selection():e,r=this._groups,s=n._groups,o=r.length,l=s.length,u=Math.min(o,l),c=new Array(o),f=0;f<u;++f)for(var p=r[f],h=s[f],g=p.length,y=c[f]=new Array(g),w,C=0;C<g;++C)(w=p[C]||h[C])&&(y[C]=w);for(;f<o;++f)c[f]=r[f];return new Sn(c,this._parents)}function ZR(){for(var e=this._groups,n=-1,r=e.length;++n<r;)for(var s=e[n],o=s.length-1,l=s[o],u;--o>=0;)(u=s[o])&&(l&&u.compareDocumentPosition(l)^4&&l.parentNode.insertBefore(u,l),l=u);return this}function JR(e){e||(e=eT);function n(g,y){return g&&y?e(g.__data__,y.__data__):!g-!y}for(var r=this._groups,s=r.length,o=new Array(s),l=0;l<s;++l){for(var u=r[l],c=u.length,f=o[l]=new Array(c),p,h=0;h<c;++h)(p=u[h])&&(f[h]=p);f.sort(n)}return new Sn(o,this._parents).order()}function eT(e,n){return e<n?-1:e>n?1:e>=n?0:NaN}function tT(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function nT(){return Array.from(this)}function rT(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var s=e[n],o=0,l=s.length;o<l;++o){var u=s[o];if(u)return u}return null}function iT(){let e=0;for(const n of this)++e;return e}function sT(){return!this.node()}function oT(e){for(var n=this._groups,r=0,s=n.length;r<s;++r)for(var o=n[r],l=0,u=o.length,c;l<u;++l)(c=o[l])&&e.call(c,c.__data__,l,o);return this}function aT(e){return function(){this.removeAttribute(e)}}function lT(e){return function(){this.removeAttributeNS(e.space,e.local)}}function uT(e,n){return function(){this.setAttribute(e,n)}}function cT(e,n){return function(){this.setAttributeNS(e.space,e.local,n)}}function dT(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function fT(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function hT(e,n){var r=Vl(e);if(arguments.length<2){var s=this.node();return r.local?s.getAttributeNS(r.space,r.local):s.getAttribute(r)}return this.each((n==null?r.local?lT:aT:typeof n=="function"?r.local?fT:dT:r.local?cT:uT)(r,n))}function Qk(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function pT(e){return function(){this.style.removeProperty(e)}}function mT(e,n,r){return function(){this.style.setProperty(e,n,r)}}function gT(e,n,r){return function(){var s=n.apply(this,arguments);s==null?this.style.removeProperty(e):this.style.setProperty(e,s,r)}}function vT(e,n,r){return arguments.length>1?this.each((n==null?pT:typeof n=="function"?gT:mT)(e,n,r??"")):Bs(this.node(),e)}function Bs(e,n){return e.style.getPropertyValue(n)||Qk(e).getComputedStyle(e,null).getPropertyValue(n)}function yT(e){return function(){delete this[e]}}function wT(e,n){return function(){this[e]=n}}function xT(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function _T(e,n){return arguments.length>1?this.each((n==null?yT:typeof n=="function"?xT:wT)(e,n)):this.node()[e]}function Zk(e){return e.trim().split(/^|\s+/)}function Qg(e){return e.classList||new Jk(e)}function Jk(e){this._node=e,this._names=Zk(e.getAttribute("class")||"")}Jk.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function eE(e,n){for(var r=Qg(e),s=-1,o=n.length;++s<o;)r.add(n[s])}function tE(e,n){for(var r=Qg(e),s=-1,o=n.length;++s<o;)r.remove(n[s])}function ST(e){return function(){eE(this,e)}}function bT(e){return function(){tE(this,e)}}function kT(e,n){return function(){(n.apply(this,arguments)?eE:tE)(this,e)}}function ET(e,n){var r=Zk(e+"");if(arguments.length<2){for(var s=Qg(this.node()),o=-1,l=r.length;++o<l;)if(!s.contains(r[o]))return!1;return!0}return this.each((typeof n=="function"?kT:n?ST:bT)(r,n))}function NT(){this.textContent=""}function CT(e){return function(){this.textContent=e}}function jT(e){return function(){var n=e.apply(this,arguments);this.textContent=n??""}}function RT(e){return arguments.length?this.each(e==null?NT:(typeof e=="function"?jT:CT)(e)):this.node().textContent}function TT(){this.innerHTML=""}function AT(e){return function(){this.innerHTML=e}}function IT(e){return function(){var n=e.apply(this,arguments);this.innerHTML=n??""}}function MT(e){return arguments.length?this.each(e==null?TT:(typeof e=="function"?IT:AT)(e)):this.node().innerHTML}function PT(){this.nextSibling&&this.parentNode.appendChild(this)}function OT(){return this.each(PT)}function qT(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function LT(){return this.each(qT)}function $T(e){var n=typeof e=="function"?e:Wk(e);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function DT(){return null}function FT(e,n){var r=typeof e=="function"?e:Wk(e),s=n==null?DT:typeof n=="function"?n:Xg(n);return this.select(function(){return this.insertBefore(r.apply(this,arguments),s.apply(this,arguments)||null)})}function zT(){var e=this.parentNode;e&&e.removeChild(this)}function BT(){return this.each(zT)}function UT(){var e=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function HT(){var e=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function VT(e){return this.select(e?HT:UT)}function WT(e){return arguments.length?this.property("__data__",e):this.node().__data__}function GT(e){return function(n){e.call(this,n,this.__data__)}}function KT(e){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");return s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),{type:n,name:r}})}function YT(e){return function(){var n=this.__on;if(n){for(var r=0,s=-1,o=n.length,l;r<o;++r)l=n[r],(!e.type||l.type===e.type)&&l.name===e.name?this.removeEventListener(l.type,l.listener,l.options):n[++s]=l;++s?n.length=s:delete this.__on}}}function XT(e,n,r){return function(){var s=this.__on,o,l=GT(n);if(s){for(var u=0,c=s.length;u<c;++u)if((o=s[u]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=l,o.options=r),o.value=n;return}}this.addEventListener(e.type,l,r),o={type:e.type,name:e.name,value:n,listener:l,options:r},s?s.push(o):this.__on=[o]}}function QT(e,n,r){var s=KT(e+""),o,l=s.length,u;if(arguments.length<2){var c=this.node().__on;if(c){for(var f=0,p=c.length,h;f<p;++f)for(o=0,h=c[f];o<l;++o)if((u=s[o]).type===h.type&&u.name===h.name)return h.value}return}for(c=n?XT:YT,o=0;o<l;++o)this.each(c(s[o],n,r));return this}function nE(e,n,r){var s=Qk(e),o=s.CustomEvent;typeof o=="function"?o=new o(n,r):(o=s.document.createEvent("Event"),r?(o.initEvent(n,r.bubbles,r.cancelable),o.detail=r.detail):o.initEvent(n,!1,!1)),e.dispatchEvent(o)}function ZT(e,n){return function(){return nE(this,e,n)}}function JT(e,n){return function(){return nE(this,e,n.apply(this,arguments))}}function e2(e,n){return this.each((typeof n=="function"?JT:ZT)(e,n))}function*t2(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var s=e[n],o=0,l=s.length,u;o<l;++o)(u=s[o])&&(yield u)}var rE=[null];function Sn(e,n){this._groups=e,this._parents=n}function na(){return new Sn([[document.documentElement]],rE)}function n2(){return this}Sn.prototype=na.prototype={constructor:Sn,select:jR,selectAll:IR,selectChild:qR,selectChildren:FR,filter:zR,data:GR,enter:BR,exit:YR,join:XR,merge:QR,selection:n2,order:ZR,sort:JR,call:tT,nodes:nT,node:rT,size:iT,empty:sT,each:oT,attr:hT,style:vT,property:_T,classed:ET,text:RT,html:MT,raise:OT,lower:LT,append:$T,insert:FT,remove:BT,clone:VT,datum:WT,on:QT,dispatch:e2,[Symbol.iterator]:t2};function Mn(e){return typeof e=="string"?new Sn([[document.querySelector(e)]],[document.documentElement]):new Sn([[e]],rE)}function r2(e){let n;for(;n=e.sourceEvent;)e=n;return e}function Kn(e,n){if(e=r2(e),n===void 0&&(n=e.currentTarget),n){var r=n.ownerSVGElement||n;if(r.createSVGPoint){var s=r.createSVGPoint();return s.x=e.clientX,s.y=e.clientY,s=s.matrixTransform(n.getScreenCTM().inverse()),[s.x,s.y]}if(n.getBoundingClientRect){var o=n.getBoundingClientRect();return[e.clientX-o.left-n.clientLeft,e.clientY-o.top-n.clientTop]}}return[e.pageX,e.pageY]}const i2={passive:!1},Go={capture:!0,passive:!1};function Yc(e){e.stopImmediatePropagation()}function $s(e){e.preventDefault(),e.stopImmediatePropagation()}function iE(e){var n=e.document.documentElement,r=Mn(e).on("dragstart.drag",$s,Go);"onselectstart"in n?r.on("selectstart.drag",$s,Go):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function sE(e,n){var r=e.document.documentElement,s=Mn(e).on("dragstart.drag",null);n&&(s.on("click.drag",$s,Go),setTimeout(function(){s.on("click.drag",null)},0)),"onselectstart"in r?s.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}const hl=e=>()=>e;function Cg(e,{sourceEvent:n,subject:r,target:s,identifier:o,active:l,x:u,y:c,dx:f,dy:p,dispatch:h}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:l,enumerable:!0,configurable:!0},x:{value:u,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:f,enumerable:!0,configurable:!0},dy:{value:p,enumerable:!0,configurable:!0},_:{value:h}})}Cg.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function s2(e){return!e.ctrlKey&&!e.button}function o2(){return this.parentNode}function a2(e,n){return n??{x:e.x,y:e.y}}function l2(){return navigator.maxTouchPoints||"ontouchstart"in this}function u2(){var e=s2,n=o2,r=a2,s=l2,o={},l=Hl("start","drag","end"),u=0,c,f,p,h,g=0;function y(j){j.on("mousedown.drag",w).filter(s).on("touchstart.drag",S).on("touchmove.drag",b,i2).on("touchend.drag touchcancel.drag",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function w(j,M){if(!(h||!e.call(this,j,M))){var O=N(this,n.call(this,j,M),j,M,"mouse");O&&(Mn(j.view).on("mousemove.drag",C,Go).on("mouseup.drag",_,Go),iE(j.view),Yc(j),p=!1,c=j.clientX,f=j.clientY,O("start",j))}}function C(j){if($s(j),!p){var M=j.clientX-c,O=j.clientY-f;p=M*M+O*O>g}o.mouse("drag",j)}function _(j){Mn(j.view).on("mousemove.drag mouseup.drag",null),sE(j.view,p),$s(j),o.mouse("end",j)}function S(j,M){if(e.call(this,j,M)){var O=j.changedTouches,q=n.call(this,j,M),F=O.length,R,P;for(R=0;R<F;++R)(P=N(this,q,j,M,O[R].identifier,O[R]))&&(Yc(j),P("start",j,O[R]))}}function b(j){var M=j.changedTouches,O=M.length,q,F;for(q=0;q<O;++q)(F=o[M[q].identifier])&&($s(j),F("drag",j,M[q]))}function E(j){var M=j.changedTouches,O=M.length,q,F;for(h&&clearTimeout(h),h=setTimeout(function(){h=null},500),q=0;q<O;++q)(F=o[M[q].identifier])&&(Yc(j),F("end",j,M[q]))}function N(j,M,O,q,F,R){var P=l.copy(),B=Kn(R||O,M),J,Z,A;if((A=r.call(j,new Cg("beforestart",{sourceEvent:O,target:y,identifier:F,active:u,x:B[0],y:B[1],dx:0,dy:0,dispatch:P}),q))!=null)return J=A.x-B[0]||0,Z=A.y-B[1]||0,function H(U,ne,Q){var D=B,G;switch(U){case"start":o[F]=H,G=u++;break;case"end":delete o[F],--u;case"drag":B=Kn(Q||ne,M),G=u;break}P.call(U,j,new Cg(U,{sourceEvent:ne,subject:A,target:y,identifier:F,active:G,x:B[0]+J,y:B[1]+Z,dx:B[0]-D[0],dy:B[1]-D[1],dispatch:P}),q)}}return y.filter=function(j){return arguments.length?(e=typeof j=="function"?j:hl(!!j),y):e},y.container=function(j){return arguments.length?(n=typeof j=="function"?j:hl(j),y):n},y.subject=function(j){return arguments.length?(r=typeof j=="function"?j:hl(j),y):r},y.touchable=function(j){return arguments.length?(s=typeof j=="function"?j:hl(!!j),y):s},y.on=function(){var j=l.on.apply(l,arguments);return j===l?y:j},y.clickDistance=function(j){return arguments.length?(g=(j=+j)*j,y):Math.sqrt(g)},y}function Zg(e,n,r){e.prototype=n.prototype=r,r.constructor=e}function oE(e,n){var r=Object.create(e.prototype);for(var s in n)r[s]=n[s];return r}function ra(){}var Ko=.7,Ml=1/Ko,Ds="\\s*([+-]?\\d+)\\s*",Yo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",cr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",c2=/^#([0-9a-f]{3,8})$/,d2=new RegExp(`^rgb\\(${Ds},${Ds},${Ds}\\)$`),f2=new RegExp(`^rgb\\(${cr},${cr},${cr}\\)$`),h2=new RegExp(`^rgba\\(${Ds},${Ds},${Ds},${Yo}\\)$`),p2=new RegExp(`^rgba\\(${cr},${cr},${cr},${Yo}\\)$`),m2=new RegExp(`^hsl\\(${Yo},${cr},${cr}\\)$`),g2=new RegExp(`^hsla\\(${Yo},${cr},${cr},${Yo}\\)$`),cw={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Zg(ra,Xo,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:dw,formatHex:dw,formatHex8:v2,formatHsl:y2,formatRgb:fw,toString:fw});function dw(){return this.rgb().formatHex()}function v2(){return this.rgb().formatHex8()}function y2(){return aE(this).formatHsl()}function fw(){return this.rgb().formatRgb()}function Xo(e){var n,r;return e=(e+"").trim().toLowerCase(),(n=c2.exec(e))?(r=n[1].length,n=parseInt(n[1],16),r===6?hw(n):r===3?new cn(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):r===8?pl(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):r===4?pl(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=d2.exec(e))?new cn(n[1],n[2],n[3],1):(n=f2.exec(e))?new cn(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=h2.exec(e))?pl(n[1],n[2],n[3],n[4]):(n=p2.exec(e))?pl(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=m2.exec(e))?gw(n[1],n[2]/100,n[3]/100,1):(n=g2.exec(e))?gw(n[1],n[2]/100,n[3]/100,n[4]):cw.hasOwnProperty(e)?hw(cw[e]):e==="transparent"?new cn(NaN,NaN,NaN,0):null}function hw(e){return new cn(e>>16&255,e>>8&255,e&255,1)}function pl(e,n,r,s){return s<=0&&(e=n=r=NaN),new cn(e,n,r,s)}function w2(e){return e instanceof ra||(e=Xo(e)),e?(e=e.rgb(),new cn(e.r,e.g,e.b,e.opacity)):new cn}function jg(e,n,r,s){return arguments.length===1?w2(e):new cn(e,n,r,s??1)}function cn(e,n,r,s){this.r=+e,this.g=+n,this.b=+r,this.opacity=+s}Zg(cn,jg,oE(ra,{brighter(e){return e=e==null?Ml:Math.pow(Ml,e),new cn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ko:Math.pow(Ko,e),new cn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new cn(Ki(this.r),Ki(this.g),Ki(this.b),Pl(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:pw,formatHex:pw,formatHex8:x2,formatRgb:mw,toString:mw}));function pw(){return`#${Wi(this.r)}${Wi(this.g)}${Wi(this.b)}`}function x2(){return`#${Wi(this.r)}${Wi(this.g)}${Wi(this.b)}${Wi((isNaN(this.opacity)?1:this.opacity)*255)}`}function mw(){const e=Pl(this.opacity);return`${e===1?"rgb(":"rgba("}${Ki(this.r)}, ${Ki(this.g)}, ${Ki(this.b)}${e===1?")":`, ${e})`}`}function Pl(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ki(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Wi(e){return e=Ki(e),(e<16?"0":"")+e.toString(16)}function gw(e,n,r,s){return s<=0?e=n=r=NaN:r<=0||r>=1?e=n=NaN:n<=0&&(e=NaN),new Yn(e,n,r,s)}function aE(e){if(e instanceof Yn)return new Yn(e.h,e.s,e.l,e.opacity);if(e instanceof ra||(e=Xo(e)),!e)return new Yn;if(e instanceof Yn)return e;e=e.rgb();var n=e.r/255,r=e.g/255,s=e.b/255,o=Math.min(n,r,s),l=Math.max(n,r,s),u=NaN,c=l-o,f=(l+o)/2;return c?(n===l?u=(r-s)/c+(r<s)*6:r===l?u=(s-n)/c+2:u=(n-r)/c+4,c/=f<.5?l+o:2-l-o,u*=60):c=f>0&&f<1?0:u,new Yn(u,c,f,e.opacity)}function _2(e,n,r,s){return arguments.length===1?aE(e):new Yn(e,n,r,s??1)}function Yn(e,n,r,s){this.h=+e,this.s=+n,this.l=+r,this.opacity=+s}Zg(Yn,_2,oE(ra,{brighter(e){return e=e==null?Ml:Math.pow(Ml,e),new Yn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ko:Math.pow(Ko,e),new Yn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,n=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,s=r+(r<.5?r:1-r)*n,o=2*r-s;return new cn(Xc(e>=240?e-240:e+120,o,s),Xc(e,o,s),Xc(e<120?e+240:e-120,o,s),this.opacity)},clamp(){return new Yn(vw(this.h),ml(this.s),ml(this.l),Pl(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Pl(this.opacity);return`${e===1?"hsl(":"hsla("}${vw(this.h)}, ${ml(this.s)*100}%, ${ml(this.l)*100}%${e===1?")":`, ${e})`}`}}));function vw(e){return e=(e||0)%360,e<0?e+360:e}function ml(e){return Math.max(0,Math.min(1,e||0))}function Xc(e,n,r){return(e<60?n+(r-n)*e/60:e<180?r:e<240?n+(r-n)*(240-e)/60:n)*255}const lE=e=>()=>e;function S2(e,n){return function(r){return e+r*n}}function b2(e,n,r){return e=Math.pow(e,r),n=Math.pow(n,r)-e,r=1/r,function(s){return Math.pow(e+s*n,r)}}function k2(e){return(e=+e)==1?uE:function(n,r){return r-n?b2(n,r,e):lE(isNaN(n)?r:n)}}function uE(e,n){var r=n-e;return r?S2(e,r):lE(isNaN(e)?n:e)}const yw=(function e(n){var r=k2(n);function s(o,l){var u=r((o=jg(o)).r,(l=jg(l)).r),c=r(o.g,l.g),f=r(o.b,l.b),p=uE(o.opacity,l.opacity);return function(h){return o.r=u(h),o.g=c(h),o.b=f(h),o.opacity=p(h),o+""}}return s.gamma=e,s})(1);function fi(e,n){return e=+e,n=+n,function(r){return e*(1-r)+n*r}}var Rg=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qc=new RegExp(Rg.source,"g");function E2(e){return function(){return e}}function N2(e){return function(n){return e(n)+""}}function C2(e,n){var r=Rg.lastIndex=Qc.lastIndex=0,s,o,l,u=-1,c=[],f=[];for(e=e+"",n=n+"";(s=Rg.exec(e))&&(o=Qc.exec(n));)(l=o.index)>r&&(l=n.slice(r,l),c[u]?c[u]+=l:c[++u]=l),(s=s[0])===(o=o[0])?c[u]?c[u]+=o:c[++u]=o:(c[++u]=null,f.push({i:u,x:fi(s,o)})),r=Qc.lastIndex;return r<n.length&&(l=n.slice(r),c[u]?c[u]+=l:c[++u]=l),c.length<2?f[0]?N2(f[0].x):E2(n):(n=f.length,function(p){for(var h=0,g;h<n;++h)c[(g=f[h]).i]=g.x(p);return c.join("")})}var ww=180/Math.PI,Tg={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cE(e,n,r,s,o,l){var u,c,f;return(u=Math.sqrt(e*e+n*n))&&(e/=u,n/=u),(f=e*r+n*s)&&(r-=e*f,s-=n*f),(c=Math.sqrt(r*r+s*s))&&(r/=c,s/=c,f/=c),e*s<n*r&&(e=-e,n=-n,f=-f,u=-u),{translateX:o,translateY:l,rotate:Math.atan2(n,e)*ww,skewX:Math.atan(f)*ww,scaleX:u,scaleY:c}}var gl;function j2(e){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return n.isIdentity?Tg:cE(n.a,n.b,n.c,n.d,n.e,n.f)}function R2(e){return e==null||(gl||(gl=document.createElementNS("http://www.w3.org/2000/svg","g")),gl.setAttribute("transform",e),!(e=gl.transform.baseVal.consolidate()))?Tg:(e=e.matrix,cE(e.a,e.b,e.c,e.d,e.e,e.f))}function dE(e,n,r,s){function o(p){return p.length?p.pop()+" ":""}function l(p,h,g,y,w,C){if(p!==g||h!==y){var _=w.push("translate(",null,n,null,r);C.push({i:_-4,x:fi(p,g)},{i:_-2,x:fi(h,y)})}else(g||y)&&w.push("translate("+g+n+y+r)}function u(p,h,g,y){p!==h?(p-h>180?h+=360:h-p>180&&(p+=360),y.push({i:g.push(o(g)+"rotate(",null,s)-2,x:fi(p,h)})):h&&g.push(o(g)+"rotate("+h+s)}function c(p,h,g,y){p!==h?y.push({i:g.push(o(g)+"skewX(",null,s)-2,x:fi(p,h)}):h&&g.push(o(g)+"skewX("+h+s)}function f(p,h,g,y,w,C){if(p!==g||h!==y){var _=w.push(o(w)+"scale(",null,",",null,")");C.push({i:_-4,x:fi(p,g)},{i:_-2,x:fi(h,y)})}else(g!==1||y!==1)&&w.push(o(w)+"scale("+g+","+y+")")}return function(p,h){var g=[],y=[];return p=e(p),h=e(h),l(p.translateX,p.translateY,h.translateX,h.translateY,g,y),u(p.rotate,h.rotate,g,y),c(p.skewX,h.skewX,g,y),f(p.scaleX,p.scaleY,h.scaleX,h.scaleY,g,y),p=h=null,function(w){for(var C=-1,_=y.length,S;++C<_;)g[(S=y[C]).i]=S.x(w);return g.join("")}}}var T2=dE(j2,"px, ","px)","deg)"),A2=dE(R2,", ",")",")"),I2=1e-12;function xw(e){return((e=Math.exp(e))+1/e)/2}function M2(e){return((e=Math.exp(e))-1/e)/2}function P2(e){return((e=Math.exp(2*e))-1)/(e+1)}const O2=(function e(n,r,s){function o(l,u){var c=l[0],f=l[1],p=l[2],h=u[0],g=u[1],y=u[2],w=h-c,C=g-f,_=w*w+C*C,S,b;if(_<I2)b=Math.log(y/p)/n,S=function(q){return[c+q*w,f+q*C,p*Math.exp(n*q*b)]};else{var E=Math.sqrt(_),N=(y*y-p*p+s*_)/(2*p*r*E),j=(y*y-p*p-s*_)/(2*y*r*E),M=Math.log(Math.sqrt(N*N+1)-N),O=Math.log(Math.sqrt(j*j+1)-j);b=(O-M)/n,S=function(q){var F=q*b,R=xw(M),P=p/(r*E)*(R*P2(n*F+M)-M2(M));return[c+P*w,f+P*C,p*R/xw(n*F+M)]}}return S.duration=b*1e3*n/Math.SQRT2,S}return o.rho=function(l){var u=Math.max(.001,+l),c=u*u,f=c*c;return e(u,c,f)},o})(Math.SQRT2,2,4);var Us=0,Fo=0,Oo=0,fE=1e3,Ol,zo,ql=0,Qi=0,Wl=0,Qo=typeof performance=="object"&&performance.now?performance:Date,hE=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Jg(){return Qi||(hE(q2),Qi=Qo.now()+Wl)}function q2(){Qi=0}function Ll(){this._call=this._time=this._next=null}Ll.prototype=pE.prototype={constructor:Ll,restart:function(e,n,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?Jg():+r)+(n==null?0:+n),!this._next&&zo!==this&&(zo?zo._next=this:Ol=this,zo=this),this._call=e,this._time=r,Ag()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ag())}};function pE(e,n,r){var s=new Ll;return s.restart(e,n,r),s}function L2(){Jg(),++Us;for(var e=Ol,n;e;)(n=Qi-e._time)>=0&&e._call.call(void 0,n),e=e._next;--Us}function _w(){Qi=(ql=Qo.now())+Wl,Us=Fo=0;try{L2()}finally{Us=0,D2(),Qi=0}}function $2(){var e=Qo.now(),n=e-ql;n>fE&&(Wl-=n,ql=e)}function D2(){for(var e,n=Ol,r,s=1/0;n;)n._call?(s>n._time&&(s=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:Ol=r);zo=e,Ag(s)}function Ag(e){if(!Us){Fo&&(Fo=clearTimeout(Fo));var n=e-Qi;n>24?(e<1/0&&(Fo=setTimeout(_w,e-Qo.now()-Wl)),Oo&&(Oo=clearInterval(Oo))):(Oo||(ql=Qo.now(),Oo=setInterval($2,fE)),Us=1,hE(_w))}}function Sw(e,n,r){var s=new Ll;return n=n==null?0:+n,s.restart(o=>{s.stop(),e(o+n)},n,r),s}var F2=Hl("start","end","cancel","interrupt"),z2=[],mE=0,bw=1,Ig=2,Rl=3,kw=4,Mg=5,Tl=6;function Gl(e,n,r,s,o,l){var u=e.__transition;if(!u)e.__transition={};else if(r in u)return;B2(e,r,{name:n,index:s,group:o,on:F2,tween:z2,time:l.time,delay:l.delay,duration:l.duration,ease:l.ease,timer:null,state:mE})}function ev(e,n){var r=Zn(e,n);if(r.state>mE)throw new Error("too late; already scheduled");return r}function dr(e,n){var r=Zn(e,n);if(r.state>Rl)throw new Error("too late; already running");return r}function Zn(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function B2(e,n,r){var s=e.__transition,o;s[n]=r,r.timer=pE(l,0,r.time);function l(p){r.state=bw,r.timer.restart(u,r.delay,r.time),r.delay<=p&&u(p-r.delay)}function u(p){var h,g,y,w;if(r.state!==bw)return f();for(h in s)if(w=s[h],w.name===r.name){if(w.state===Rl)return Sw(u);w.state===kw?(w.state=Tl,w.timer.stop(),w.on.call("interrupt",e,e.__data__,w.index,w.group),delete s[h]):+h<n&&(w.state=Tl,w.timer.stop(),w.on.call("cancel",e,e.__data__,w.index,w.group),delete s[h])}if(Sw(function(){r.state===Rl&&(r.state=kw,r.timer.restart(c,r.delay,r.time),c(p))}),r.state=Ig,r.on.call("start",e,e.__data__,r.index,r.group),r.state===Ig){for(r.state=Rl,o=new Array(y=r.tween.length),h=0,g=-1;h<y;++h)(w=r.tween[h].value.call(e,e.__data__,r.index,r.group))&&(o[++g]=w);o.length=g+1}}function c(p){for(var h=p<r.duration?r.ease.call(null,p/r.duration):(r.timer.restart(f),r.state=Mg,1),g=-1,y=o.length;++g<y;)o[g].call(e,h);r.state===Mg&&(r.on.call("end",e,e.__data__,r.index,r.group),f())}function f(){r.state=Tl,r.timer.stop(),delete s[n];for(var p in s)return;delete e.__transition}}function Al(e,n){var r=e.__transition,s,o,l=!0,u;if(r){n=n==null?null:n+"";for(u in r){if((s=r[u]).name!==n){l=!1;continue}o=s.state>Ig&&s.state<Mg,s.state=Tl,s.timer.stop(),s.on.call(o?"interrupt":"cancel",e,e.__data__,s.index,s.group),delete r[u]}l&&delete e.__transition}}function U2(e){return this.each(function(){Al(this,e)})}function H2(e,n){var r,s;return function(){var o=dr(this,e),l=o.tween;if(l!==r){s=r=l;for(var u=0,c=s.length;u<c;++u)if(s[u].name===n){s=s.slice(),s.splice(u,1);break}}o.tween=s}}function V2(e,n,r){var s,o;if(typeof r!="function")throw new Error;return function(){var l=dr(this,e),u=l.tween;if(u!==s){o=(s=u).slice();for(var c={name:n,value:r},f=0,p=o.length;f<p;++f)if(o[f].name===n){o[f]=c;break}f===p&&o.push(c)}l.tween=o}}function W2(e,n){var r=this._id;if(e+="",arguments.length<2){for(var s=Zn(this.node(),r).tween,o=0,l=s.length,u;o<l;++o)if((u=s[o]).name===e)return u.value;return null}return this.each((n==null?H2:V2)(r,e,n))}function tv(e,n,r){var s=e._id;return e.each(function(){var o=dr(this,s);(o.value||(o.value={}))[n]=r.apply(this,arguments)}),function(o){return Zn(o,s).value[n]}}function gE(e,n){var r;return(typeof n=="number"?fi:n instanceof Xo?yw:(r=Xo(n))?(n=r,yw):C2)(e,n)}function G2(e){return function(){this.removeAttribute(e)}}function K2(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Y2(e,n,r){var s,o=r+"",l;return function(){var u=this.getAttribute(e);return u===o?null:u===s?l:l=n(s=u,r)}}function X2(e,n,r){var s,o=r+"",l;return function(){var u=this.getAttributeNS(e.space,e.local);return u===o?null:u===s?l:l=n(s=u,r)}}function Q2(e,n,r){var s,o,l;return function(){var u,c=r(this),f;return c==null?void this.removeAttribute(e):(u=this.getAttribute(e),f=c+"",u===f?null:u===s&&f===o?l:(o=f,l=n(s=u,c)))}}function Z2(e,n,r){var s,o,l;return function(){var u,c=r(this),f;return c==null?void this.removeAttributeNS(e.space,e.local):(u=this.getAttributeNS(e.space,e.local),f=c+"",u===f?null:u===s&&f===o?l:(o=f,l=n(s=u,c)))}}function J2(e,n){var r=Vl(e),s=r==="transform"?A2:gE;return this.attrTween(e,typeof n=="function"?(r.local?Z2:Q2)(r,s,tv(this,"attr."+e,n)):n==null?(r.local?K2:G2)(r):(r.local?X2:Y2)(r,s,n))}function eA(e,n){return function(r){this.setAttribute(e,n.call(this,r))}}function tA(e,n){return function(r){this.setAttributeNS(e.space,e.local,n.call(this,r))}}function nA(e,n){var r,s;function o(){var l=n.apply(this,arguments);return l!==s&&(r=(s=l)&&tA(e,l)),r}return o._value=n,o}function rA(e,n){var r,s;function o(){var l=n.apply(this,arguments);return l!==s&&(r=(s=l)&&eA(e,l)),r}return o._value=n,o}function iA(e,n){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;var s=Vl(e);return this.tween(r,(s.local?nA:rA)(s,n))}function sA(e,n){return function(){ev(this,e).delay=+n.apply(this,arguments)}}function oA(e,n){return n=+n,function(){ev(this,e).delay=n}}function aA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?sA:oA)(n,e)):Zn(this.node(),n).delay}function lA(e,n){return function(){dr(this,e).duration=+n.apply(this,arguments)}}function uA(e,n){return n=+n,function(){dr(this,e).duration=n}}function cA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?lA:uA)(n,e)):Zn(this.node(),n).duration}function dA(e,n){if(typeof n!="function")throw new Error;return function(){dr(this,e).ease=n}}function fA(e){var n=this._id;return arguments.length?this.each(dA(n,e)):Zn(this.node(),n).ease}function hA(e,n){return function(){var r=n.apply(this,arguments);if(typeof r!="function")throw new Error;dr(this,e).ease=r}}function pA(e){if(typeof e!="function")throw new Error;return this.each(hA(this._id,e))}function mA(e){typeof e!="function"&&(e=Kk(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=[],f,p=0;p<u;++p)(f=l[p])&&e.call(f,f.__data__,p,l)&&c.push(f);return new Pr(s,this._parents,this._name,this._id)}function gA(e){if(e._id!==this._id)throw new Error;for(var n=this._groups,r=e._groups,s=n.length,o=r.length,l=Math.min(s,o),u=new Array(s),c=0;c<l;++c)for(var f=n[c],p=r[c],h=f.length,g=u[c]=new Array(h),y,w=0;w<h;++w)(y=f[w]||p[w])&&(g[w]=y);for(;c<s;++c)u[c]=n[c];return new Pr(u,this._parents,this._name,this._id)}function vA(e){return(e+"").trim().split(/^|\s+/).every(function(n){var r=n.indexOf(".");return r>=0&&(n=n.slice(0,r)),!n||n==="start"})}function yA(e,n,r){var s,o,l=vA(n)?ev:dr;return function(){var u=l(this,e),c=u.on;c!==s&&(o=(s=c).copy()).on(n,r),u.on=o}}function wA(e,n){var r=this._id;return arguments.length<2?Zn(this.node(),r).on.on(e):this.each(yA(r,e,n))}function xA(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function _A(){return this.on("end.remove",xA(this._id))}function SA(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Xg(e));for(var s=this._groups,o=s.length,l=new Array(o),u=0;u<o;++u)for(var c=s[u],f=c.length,p=l[u]=new Array(f),h,g,y=0;y<f;++y)(h=c[y])&&(g=e.call(h,h.__data__,y,c))&&("__data__"in h&&(g.__data__=h.__data__),p[y]=g,Gl(p[y],n,r,y,p,Zn(h,r)));return new Pr(l,this._parents,n,r)}function bA(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Gk(e));for(var s=this._groups,o=s.length,l=[],u=[],c=0;c<o;++c)for(var f=s[c],p=f.length,h,g=0;g<p;++g)if(h=f[g]){for(var y=e.call(h,h.__data__,g,f),w,C=Zn(h,r),_=0,S=y.length;_<S;++_)(w=y[_])&&Gl(w,n,r,_,y,C);l.push(y),u.push(h)}return new Pr(l,u,n,r)}var kA=na.prototype.constructor;function EA(){return new kA(this._groups,this._parents)}function NA(e,n){var r,s,o;return function(){var l=Bs(this,e),u=(this.style.removeProperty(e),Bs(this,e));return l===u?null:l===r&&u===s?o:o=n(r=l,s=u)}}function vE(e){return function(){this.style.removeProperty(e)}}function CA(e,n,r){var s,o=r+"",l;return function(){var u=Bs(this,e);return u===o?null:u===s?l:l=n(s=u,r)}}function jA(e,n,r){var s,o,l;return function(){var u=Bs(this,e),c=r(this),f=c+"";return c==null&&(f=c=(this.style.removeProperty(e),Bs(this,e))),u===f?null:u===s&&f===o?l:(o=f,l=n(s=u,c))}}function RA(e,n){var r,s,o,l="style."+n,u="end."+l,c;return function(){var f=dr(this,e),p=f.on,h=f.value[l]==null?c||(c=vE(n)):void 0;(p!==r||o!==h)&&(s=(r=p).copy()).on(u,o=h),f.on=s}}function TA(e,n,r){var s=(e+="")=="transform"?T2:gE;return n==null?this.styleTween(e,NA(e,s)).on("end.style."+e,vE(e)):typeof n=="function"?this.styleTween(e,jA(e,s,tv(this,"style."+e,n))).each(RA(this._id,e)):this.styleTween(e,CA(e,s,n),r).on("end.style."+e,null)}function AA(e,n,r){return function(s){this.style.setProperty(e,n.call(this,s),r)}}function IA(e,n,r){var s,o;function l(){var u=n.apply(this,arguments);return u!==o&&(s=(o=u)&&AA(e,u,r)),s}return l._value=n,l}function MA(e,n,r){var s="style."+(e+="");if(arguments.length<2)return(s=this.tween(s))&&s._value;if(n==null)return this.tween(s,null);if(typeof n!="function")throw new Error;return this.tween(s,IA(e,n,r??""))}function PA(e){return function(){this.textContent=e}}function OA(e){return function(){var n=e(this);this.textContent=n??""}}function qA(e){return this.tween("text",typeof e=="function"?OA(tv(this,"text",e)):PA(e==null?"":e+""))}function LA(e){return function(n){this.textContent=e.call(this,n)}}function $A(e){var n,r;function s(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&LA(o)),n}return s._value=e,s}function DA(e){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,$A(e))}function FA(){for(var e=this._name,n=this._id,r=yE(),s=this._groups,o=s.length,l=0;l<o;++l)for(var u=s[l],c=u.length,f,p=0;p<c;++p)if(f=u[p]){var h=Zn(f,n);Gl(f,e,r,p,u,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new Pr(s,this._parents,e,r)}function zA(){var e,n,r=this,s=r._id,o=r.size();return new Promise(function(l,u){var c={value:u},f={value:function(){--o===0&&l()}};r.each(function(){var p=dr(this,s),h=p.on;h!==e&&(n=(e=h).copy(),n._.cancel.push(c),n._.interrupt.push(c),n._.end.push(f)),p.on=n}),o===0&&l()})}var BA=0;function Pr(e,n,r,s){this._groups=e,this._parents=n,this._name=r,this._id=s}function yE(){return++BA}var Tr=na.prototype;Pr.prototype={constructor:Pr,select:SA,selectAll:bA,selectChild:Tr.selectChild,selectChildren:Tr.selectChildren,filter:mA,merge:gA,selection:EA,transition:FA,call:Tr.call,nodes:Tr.nodes,node:Tr.node,size:Tr.size,empty:Tr.empty,each:Tr.each,on:wA,attr:J2,attrTween:iA,style:TA,styleTween:MA,text:qA,textTween:DA,remove:_A,tween:W2,delay:aA,duration:cA,ease:fA,easeVarying:pA,end:zA,[Symbol.iterator]:Tr[Symbol.iterator]};function UA(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var HA={time:null,delay:0,duration:250,ease:UA};function VA(e,n){for(var r;!(r=e.__transition)||!(r=r[n]);)if(!(e=e.parentNode))throw new Error(`transition ${n} not found`);return r}function WA(e){var n,r;e instanceof Pr?(n=e._id,e=e._name):(n=yE(),(r=HA).time=Jg(),e=e==null?null:e+"");for(var s=this._groups,o=s.length,l=0;l<o;++l)for(var u=s[l],c=u.length,f,p=0;p<c;++p)(f=u[p])&&Gl(f,e,n,p,u,r||VA(f,n));return new Pr(s,this._parents,e,n)}na.prototype.interrupt=U2;na.prototype.transition=WA;const vl=e=>()=>e;function GA(e,{sourceEvent:n,target:r,transform:s,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:s,enumerable:!0,configurable:!0},_:{value:o}})}function Ir(e,n,r){this.k=e,this.x=n,this.y=r}Ir.prototype={constructor:Ir,scale:function(e){return e===1?this:new Ir(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Ir(this.k,this.x+this.k*e,this.y+this.k*n)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Mr=new Ir(1,0,0);Ir.prototype;function Zc(e){e.stopImmediatePropagation()}function qo(e){e.preventDefault(),e.stopImmediatePropagation()}function KA(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function YA(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Ew(){return this.__zoom||Mr}function XA(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function QA(){return navigator.maxTouchPoints||"ontouchstart"in this}function ZA(e,n,r){var s=e.invertX(n[0][0])-r[0][0],o=e.invertX(n[1][0])-r[1][0],l=e.invertY(n[0][1])-r[0][1],u=e.invertY(n[1][1])-r[1][1];return e.translate(o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o),u>l?(l+u)/2:Math.min(0,l)||Math.max(0,u))}function wE(){var e=KA,n=YA,r=ZA,s=XA,o=QA,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,f=O2,p=Hl("start","zoom","end"),h,g,y,w=500,C=150,_=0,S=10;function b(A){A.property("__zoom",Ew).on("wheel.zoom",F,{passive:!1}).on("mousedown.zoom",R).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",B).on("touchmove.zoom",J).on("touchend.zoom touchcancel.zoom",Z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(A,H,U,ne){var Q=A.selection?A.selection():A;Q.property("__zoom",Ew),A!==Q?M(A,H,U,ne):Q.interrupt().each(function(){O(this,arguments).event(ne).start().zoom(null,typeof H=="function"?H.apply(this,arguments):H).end()})},b.scaleBy=function(A,H,U,ne){b.scaleTo(A,function(){var Q=this.__zoom.k,D=typeof H=="function"?H.apply(this,arguments):H;return Q*D},U,ne)},b.scaleTo=function(A,H,U,ne){b.transform(A,function(){var Q=n.apply(this,arguments),D=this.__zoom,G=U==null?j(Q):typeof U=="function"?U.apply(this,arguments):U,k=D.invert(G),L=typeof H=="function"?H.apply(this,arguments):H;return r(N(E(D,L),G,k),Q,u)},U,ne)},b.translateBy=function(A,H,U,ne){b.transform(A,function(){return r(this.__zoom.translate(typeof H=="function"?H.apply(this,arguments):H,typeof U=="function"?U.apply(this,arguments):U),n.apply(this,arguments),u)},null,ne)},b.translateTo=function(A,H,U,ne,Q){b.transform(A,function(){var D=n.apply(this,arguments),G=this.__zoom,k=ne==null?j(D):typeof ne=="function"?ne.apply(this,arguments):ne;return r(Mr.translate(k[0],k[1]).scale(G.k).translate(typeof H=="function"?-H.apply(this,arguments):-H,typeof U=="function"?-U.apply(this,arguments):-U),D,u)},ne,Q)};function E(A,H){return H=Math.max(l[0],Math.min(l[1],H)),H===A.k?A:new Ir(H,A.x,A.y)}function N(A,H,U){var ne=H[0]-U[0]*A.k,Q=H[1]-U[1]*A.k;return ne===A.x&&Q===A.y?A:new Ir(A.k,ne,Q)}function j(A){return[(+A[0][0]+ +A[1][0])/2,(+A[0][1]+ +A[1][1])/2]}function M(A,H,U,ne){A.on("start.zoom",function(){O(this,arguments).event(ne).start()}).on("interrupt.zoom end.zoom",function(){O(this,arguments).event(ne).end()}).tween("zoom",function(){var Q=this,D=arguments,G=O(Q,D).event(ne),k=n.apply(Q,D),L=U==null?j(k):typeof U=="function"?U.apply(Q,D):U,oe=Math.max(k[1][0]-k[0][0],k[1][1]-k[0][1]),$=Q.__zoom,Y=typeof H=="function"?H.apply(Q,D):H,ee=f($.invert(L).concat(oe/$.k),Y.invert(L).concat(oe/Y.k));return function(se){if(se===1)se=Y;else{var ae=ee(se),pe=oe/ae[2];se=new Ir(pe,L[0]-ae[0]*pe,L[1]-ae[1]*pe)}G.zoom(null,se)}})}function O(A,H,U){return!U&&A.__zooming||new q(A,H)}function q(A,H){this.that=A,this.args=H,this.active=0,this.sourceEvent=null,this.extent=n.apply(A,H),this.taps=0}q.prototype={event:function(A){return A&&(this.sourceEvent=A),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(A,H){return this.mouse&&A!=="mouse"&&(this.mouse[1]=H.invert(this.mouse[0])),this.touch0&&A!=="touch"&&(this.touch0[1]=H.invert(this.touch0[0])),this.touch1&&A!=="touch"&&(this.touch1[1]=H.invert(this.touch1[0])),this.that.__zoom=H,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(A){var H=Mn(this.that).datum();p.call(A,this.that,new GA(A,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:p}),H)}};function F(A,...H){if(!e.apply(this,arguments))return;var U=O(this,H).event(A),ne=this.__zoom,Q=Math.max(l[0],Math.min(l[1],ne.k*Math.pow(2,s.apply(this,arguments)))),D=Kn(A);if(U.wheel)(U.mouse[0][0]!==D[0]||U.mouse[0][1]!==D[1])&&(U.mouse[1]=ne.invert(U.mouse[0]=D)),clearTimeout(U.wheel);else{if(ne.k===Q)return;U.mouse=[D,ne.invert(D)],Al(this),U.start()}qo(A),U.wheel=setTimeout(G,C),U.zoom("mouse",r(N(E(ne,Q),U.mouse[0],U.mouse[1]),U.extent,u));function G(){U.wheel=null,U.end()}}function R(A,...H){if(y||!e.apply(this,arguments))return;var U=A.currentTarget,ne=O(this,H,!0).event(A),Q=Mn(A.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",oe,!0),D=Kn(A,U),G=A.clientX,k=A.clientY;iE(A.view),Zc(A),ne.mouse=[D,this.__zoom.invert(D)],Al(this),ne.start();function L($){if(qo($),!ne.moved){var Y=$.clientX-G,ee=$.clientY-k;ne.moved=Y*Y+ee*ee>_}ne.event($).zoom("mouse",r(N(ne.that.__zoom,ne.mouse[0]=Kn($,U),ne.mouse[1]),ne.extent,u))}function oe($){Q.on("mousemove.zoom mouseup.zoom",null),sE($.view,ne.moved),qo($),ne.event($).end()}}function P(A,...H){if(e.apply(this,arguments)){var U=this.__zoom,ne=Kn(A.changedTouches?A.changedTouches[0]:A,this),Q=U.invert(ne),D=U.k*(A.shiftKey?.5:2),G=r(N(E(U,D),ne,Q),n.apply(this,H),u);qo(A),c>0?Mn(this).transition().duration(c).call(M,G,ne,A):Mn(this).call(b.transform,G,ne,A)}}function B(A,...H){if(e.apply(this,arguments)){var U=A.touches,ne=U.length,Q=O(this,H,A.changedTouches.length===ne).event(A),D,G,k,L;for(Zc(A),G=0;G<ne;++G)k=U[G],L=Kn(k,this),L=[L,this.__zoom.invert(L),k.identifier],Q.touch0?!Q.touch1&&Q.touch0[2]!==L[2]&&(Q.touch1=L,Q.taps=0):(Q.touch0=L,D=!0,Q.taps=1+!!h);h&&(h=clearTimeout(h)),D&&(Q.taps<2&&(g=L[0],h=setTimeout(function(){h=null},w)),Al(this),Q.start())}}function J(A,...H){if(this.__zooming){var U=O(this,H).event(A),ne=A.changedTouches,Q=ne.length,D,G,k,L;for(qo(A),D=0;D<Q;++D)G=ne[D],k=Kn(G,this),U.touch0&&U.touch0[2]===G.identifier?U.touch0[0]=k:U.touch1&&U.touch1[2]===G.identifier&&(U.touch1[0]=k);if(G=U.that.__zoom,U.touch1){var oe=U.touch0[0],$=U.touch0[1],Y=U.touch1[0],ee=U.touch1[1],se=(se=Y[0]-oe[0])*se+(se=Y[1]-oe[1])*se,ae=(ae=ee[0]-$[0])*ae+(ae=ee[1]-$[1])*ae;G=E(G,Math.sqrt(se/ae)),k=[(oe[0]+Y[0])/2,(oe[1]+Y[1])/2],L=[($[0]+ee[0])/2,($[1]+ee[1])/2]}else if(U.touch0)k=U.touch0[0],L=U.touch0[1];else return;U.zoom("touch",r(N(G,k,L),U.extent,u))}}function Z(A,...H){if(this.__zooming){var U=O(this,H).event(A),ne=A.changedTouches,Q=ne.length,D,G;for(Zc(A),y&&clearTimeout(y),y=setTimeout(function(){y=null},w),D=0;D<Q;++D)G=ne[D],U.touch0&&U.touch0[2]===G.identifier?delete U.touch0:U.touch1&&U.touch1[2]===G.identifier&&delete U.touch1;if(U.touch1&&!U.touch0&&(U.touch0=U.touch1,delete U.touch1),U.touch0)U.touch0[1]=this.__zoom.invert(U.touch0[0]);else if(U.end(),U.taps===2&&(G=Kn(G,this),Math.hypot(g[0]-G[0],g[1]-G[1])<S)){var k=Mn(this).on("dblclick.zoom");k&&k.apply(this,arguments)}}}return b.wheelDelta=function(A){return arguments.length?(s=typeof A=="function"?A:vl(+A),b):s},b.filter=function(A){return arguments.length?(e=typeof A=="function"?A:vl(!!A),b):e},b.touchable=function(A){return arguments.length?(o=typeof A=="function"?A:vl(!!A),b):o},b.extent=function(A){return arguments.length?(n=typeof A=="function"?A:vl([[+A[0][0],+A[0][1]],[+A[1][0],+A[1][1]]]),b):n},b.scaleExtent=function(A){return arguments.length?(l[0]=+A[0],l[1]=+A[1],b):[l[0],l[1]]},b.translateExtent=function(A){return arguments.length?(u[0][0]=+A[0][0],u[1][0]=+A[1][0],u[0][1]=+A[0][1],u[1][1]=+A[1][1],b):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},b.constrain=function(A){return arguments.length?(r=A,b):r},b.duration=function(A){return arguments.length?(c=+A,b):c},b.interpolate=function(A){return arguments.length?(f=A,b):f},b.on=function(){var A=p.on.apply(p,arguments);return A===p?b:A},b.clickDistance=function(A){return arguments.length?(_=(A=+A)*A,b):Math.sqrt(_)},b.tapDistance=function(A){return arguments.length?(S=+A,b):S},b}var JA=Hk();const Kl=I.createContext(null),eI=Kl.Provider,Or={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,n)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?n.targetHandle:n.sourceHandle}", edge id: ${n.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},xE=Or.error001();function Xe(e,n){const r=I.useContext(Kl);if(r===null)throw new Error(xE);return Vk(r,e,n)}const jt=()=>{const e=I.useContext(Kl);if(e===null)throw new Error(xE);return I.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},tI=e=>e.userSelectionActive?"none":"all";function nv({position:e,children:n,className:r,style:s,...o}){const l=Xe(tI),u=`${e}`.split("-");return le.createElement("div",{className:Ft(["react-flow__panel",r,...u]),style:{...s,pointerEvents:l},...o},n)}function nI({proOptions:e,position:n="bottom-right"}){return e!=null&&e.hideAttribution?null:le.createElement(nv,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},le.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const rI=({x:e,y:n,label:r,labelStyle:s={},labelShowBg:o=!0,labelBgStyle:l={},labelBgPadding:u=[2,4],labelBgBorderRadius:c=2,children:f,className:p,...h})=>{const g=I.useRef(null),[y,w]=I.useState({x:0,y:0,width:0,height:0}),C=Ft(["react-flow__edge-textwrapper",p]);return I.useEffect(()=>{if(g.current){const _=g.current.getBBox();w({x:_.x,y:_.y,width:_.width,height:_.height})}},[r]),typeof r>"u"||!r?null:le.createElement("g",{transform:`translate(${e-y.width/2} ${n-y.height/2})`,className:C,visibility:y.width?"visible":"hidden",...h},o&&le.createElement("rect",{width:y.width+2*u[0],x:-u[0],y:-u[1],height:y.height+2*u[1],className:"react-flow__edge-textbg",style:l,rx:c,ry:c}),le.createElement("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:g,style:s},r),f)};var iI=I.memo(rI);const rv=e=>({width:e.offsetWidth,height:e.offsetHeight}),Hs=(e,n=0,r=1)=>Math.min(Math.max(e,n),r),iv=(e={x:0,y:0},n)=>({x:Hs(e.x,n[0][0],n[1][0]),y:Hs(e.y,n[0][1],n[1][1])}),Nw=(e,n,r)=>e<n?Hs(Math.abs(e-n),1,50)/50:e>r?-Hs(Math.abs(e-r),1,50)/50:0,_E=(e,n)=>{const r=Nw(e.x,35,n.width-35)*20,s=Nw(e.y,35,n.height-35)*20;return[r,s]},SE=e=>{var n;return((n=e.getRootNode)==null?void 0:n.call(e))||(window==null?void 0:window.document)},bE=(e,n)=>({x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x2,n.x2),y2:Math.max(e.y2,n.y2)}),Zo=({x:e,y:n,width:r,height:s})=>({x:e,y:n,x2:e+r,y2:n+s}),kE=({x:e,y:n,x2:r,y2:s})=>({x:e,y:n,width:r-e,height:s-n}),Cw=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),sI=(e,n)=>kE(bE(Zo(e),Zo(n))),Pg=(e,n)=>{const r=Math.max(0,Math.min(e.x+e.width,n.x+n.width)-Math.max(e.x,n.x)),s=Math.max(0,Math.min(e.y+e.height,n.y+n.height)-Math.max(e.y,n.y));return Math.ceil(r*s)},oI=e=>Pn(e.width)&&Pn(e.height)&&Pn(e.x)&&Pn(e.y),Pn=e=>!isNaN(e)&&isFinite(e),ht=Symbol.for("internals"),EE=["Enter"," ","Escape"],aI=(e,n)=>{},lI=e=>"nativeEvent"in e;function Og(e){var o,l;const n=lI(e)?e.nativeEvent:e,r=((l=(o=n.composedPath)==null?void 0:o.call(n))==null?void 0:l[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(r==null?void 0:r.nodeName)||(r==null?void 0:r.hasAttribute("contenteditable"))||!!(r!=null&&r.closest(".nokey"))}const NE=e=>"clientX"in e,mi=(e,n)=>{var l,u;const r=NE(e),s=r?e.clientX:(l=e.touches)==null?void 0:l[0].clientX,o=r?e.clientY:(u=e.touches)==null?void 0:u[0].clientY;return{x:s-((n==null?void 0:n.left)??0),y:o-((n==null?void 0:n.top)??0)}},$l=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},ia=({id:e,path:n,labelX:r,labelY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:p,style:h,markerEnd:g,markerStart:y,interactionWidth:w=20})=>le.createElement(le.Fragment,null,le.createElement("path",{id:e,style:h,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:g,markerStart:y}),w&&le.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:w,className:"react-flow__edge-interaction"}),o&&Pn(r)&&Pn(s)?le.createElement(iI,{x:r,y:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:p}):null);ia.displayName="BaseEdge";function Lo(e,n,r){return r===void 0?r:s=>{const o=n().edges.find(l=>l.id===e);o&&r(s,{...o})}}function CE({sourceX:e,sourceY:n,targetX:r,targetY:s}){const o=Math.abs(r-e)/2,l=r<e?r+o:r-o,u=Math.abs(s-n)/2,c=s<n?s+u:s-u;return[l,c,o,u]}function jE({sourceX:e,sourceY:n,targetX:r,targetY:s,sourceControlX:o,sourceControlY:l,targetControlX:u,targetControlY:c}){const f=e*.125+o*.375+u*.375+r*.125,p=n*.125+l*.375+c*.375+s*.125,h=Math.abs(f-e),g=Math.abs(p-n);return[f,p,h,g]}var Zi;(function(e){e.Strict="strict",e.Loose="loose"})(Zi||(Zi={}));var Gi;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Gi||(Gi={}));var Jo;(function(e){e.Partial="partial",e.Full="full"})(Jo||(Jo={}));var pi;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(pi||(pi={}));var Dl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Dl||(Dl={}));var Ce;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Ce||(Ce={}));function jw({pos:e,x1:n,y1:r,x2:s,y2:o}){return e===Ce.Left||e===Ce.Right?[.5*(n+s),r]:[n,.5*(r+o)]}function RE({sourceX:e,sourceY:n,sourcePosition:r=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top}){const[u,c]=jw({pos:r,x1:e,y1:n,x2:s,y2:o}),[f,p]=jw({pos:l,x1:s,y1:o,x2:e,y2:n}),[h,g,y,w]=jE({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:u,sourceControlY:c,targetControlX:f,targetControlY:p});return[`M${e},${n} C${u},${c} ${f},${p} ${s},${o}`,h,g,y,w]}const sv=I.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,sourcePosition:o=Ce.Bottom,targetPosition:l=Ce.Top,label:u,labelStyle:c,labelShowBg:f,labelBgStyle:p,labelBgPadding:h,labelBgBorderRadius:g,style:y,markerEnd:w,markerStart:C,interactionWidth:_})=>{const[S,b,E]=RE({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:s,targetPosition:l});return le.createElement(ia,{path:S,labelX:b,labelY:E,label:u,labelStyle:c,labelShowBg:f,labelBgStyle:p,labelBgPadding:h,labelBgBorderRadius:g,style:y,markerEnd:w,markerStart:C,interactionWidth:_})});sv.displayName="SimpleBezierEdge";const Rw={[Ce.Left]:{x:-1,y:0},[Ce.Right]:{x:1,y:0},[Ce.Top]:{x:0,y:-1},[Ce.Bottom]:{x:0,y:1}},uI=({source:e,sourcePosition:n=Ce.Bottom,target:r})=>n===Ce.Left||n===Ce.Right?e.x<r.x?{x:1,y:0}:{x:-1,y:0}:e.y<r.y?{x:0,y:1}:{x:0,y:-1},Tw=(e,n)=>Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2));function cI({source:e,sourcePosition:n=Ce.Bottom,target:r,targetPosition:s=Ce.Top,center:o,offset:l}){const u=Rw[n],c=Rw[s],f={x:e.x+u.x*l,y:e.y+u.y*l},p={x:r.x+c.x*l,y:r.y+c.y*l},h=uI({source:f,sourcePosition:n,target:p}),g=h.x!==0?"x":"y",y=h[g];let w=[],C,_;const S={x:0,y:0},b={x:0,y:0},[E,N,j,M]=CE({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(u[g]*c[g]===-1){C=o.x??E,_=o.y??N;const q=[{x:C,y:f.y},{x:C,y:p.y}],F=[{x:f.x,y:_},{x:p.x,y:_}];u[g]===y?w=g==="x"?q:F:w=g==="x"?F:q}else{const q=[{x:f.x,y:p.y}],F=[{x:p.x,y:f.y}];if(g==="x"?w=u.x===y?F:q:w=u.y===y?q:F,n===s){const Z=Math.abs(e[g]-r[g]);if(Z<=l){const A=Math.min(l-1,l-Z);u[g]===y?S[g]=(f[g]>e[g]?-1:1)*A:b[g]=(p[g]>r[g]?-1:1)*A}}if(n!==s){const Z=g==="x"?"y":"x",A=u[g]===c[Z],H=f[Z]>p[Z],U=f[Z]<p[Z];(u[g]===1&&(!A&&H||A&&U)||u[g]!==1&&(!A&&U||A&&H))&&(w=g==="x"?q:F)}const R={x:f.x+S.x,y:f.y+S.y},P={x:p.x+b.x,y:p.y+b.y},B=Math.max(Math.abs(R.x-w[0].x),Math.abs(P.x-w[0].x)),J=Math.max(Math.abs(R.y-w[0].y),Math.abs(P.y-w[0].y));B>=J?(C=(R.x+P.x)/2,_=w[0].y):(C=w[0].x,_=(R.y+P.y)/2)}return[[e,{x:f.x+S.x,y:f.y+S.y},...w,{x:p.x+b.x,y:p.y+b.y},r],C,_,j,M]}function dI(e,n,r,s){const o=Math.min(Tw(e,n)/2,Tw(n,r)/2,s),{x:l,y:u}=n;if(e.x===l&&l===r.x||e.y===u&&u===r.y)return`L${l} ${u}`;if(e.y===u){const p=e.x<r.x?-1:1,h=e.y<r.y?1:-1;return`L ${l+o*p},${u}Q ${l},${u} ${l},${u+o*h}`}const c=e.x<r.x?1:-1,f=e.y<r.y?-1:1;return`L ${l},${u+o*f}Q ${l},${u} ${l+o*c},${u}`}function qg({sourceX:e,sourceY:n,sourcePosition:r=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top,borderRadius:u=5,centerX:c,centerY:f,offset:p=20}){const[h,g,y,w,C]=cI({source:{x:e,y:n},sourcePosition:r,target:{x:s,y:o},targetPosition:l,center:{x:c,y:f},offset:p});return[h.reduce((S,b,E)=>{let N="";return E>0&&E<h.length-1?N=dI(h[E-1],b,h[E+1],u):N=`${E===0?"M":"L"}${b.x} ${b.y}`,S+=N,S},""),g,y,w,C]}const Yl=I.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:p,style:h,sourcePosition:g=Ce.Bottom,targetPosition:y=Ce.Top,markerEnd:w,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,E,N]=qg({sourceX:e,sourceY:n,sourcePosition:g,targetX:r,targetY:s,targetPosition:y,borderRadius:_==null?void 0:_.borderRadius,offset:_==null?void 0:_.offset});return le.createElement(ia,{path:b,labelX:E,labelY:N,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:p,style:h,markerEnd:w,markerStart:C,interactionWidth:S})});Yl.displayName="SmoothStepEdge";const ov=I.memo(e=>{var n;return le.createElement(Yl,{...e,pathOptions:I.useMemo(()=>{var r;return{borderRadius:0,offset:(r=e.pathOptions)==null?void 0:r.offset}},[(n=e.pathOptions)==null?void 0:n.offset])})});ov.displayName="StepEdge";function fI({sourceX:e,sourceY:n,targetX:r,targetY:s}){const[o,l,u,c]=CE({sourceX:e,sourceY:n,targetX:r,targetY:s});return[`M ${e},${n}L ${r},${s}`,o,l,u,c]}const av=I.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:p,style:h,markerEnd:g,markerStart:y,interactionWidth:w})=>{const[C,_,S]=fI({sourceX:e,sourceY:n,targetX:r,targetY:s});return le.createElement(ia,{path:C,labelX:_,labelY:S,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:p,style:h,markerEnd:g,markerStart:y,interactionWidth:w})});av.displayName="StraightEdge";function yl(e,n){return e>=0?.5*e:n*25*Math.sqrt(-e)}function Aw({pos:e,x1:n,y1:r,x2:s,y2:o,c:l}){switch(e){case Ce.Left:return[n-yl(n-s,l),r];case Ce.Right:return[n+yl(s-n,l),r];case Ce.Top:return[n,r-yl(r-o,l)];case Ce.Bottom:return[n,r+yl(o-r,l)]}}function TE({sourceX:e,sourceY:n,sourcePosition:r=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top,curvature:u=.25}){const[c,f]=Aw({pos:r,x1:e,y1:n,x2:s,y2:o,c:u}),[p,h]=Aw({pos:l,x1:s,y1:o,x2:e,y2:n,c:u}),[g,y,w,C]=jE({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:c,sourceControlY:f,targetControlX:p,targetControlY:h});return[`M${e},${n} C${c},${f} ${p},${h} ${s},${o}`,g,y,w,C]}const Fl=I.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,sourcePosition:o=Ce.Bottom,targetPosition:l=Ce.Top,label:u,labelStyle:c,labelShowBg:f,labelBgStyle:p,labelBgPadding:h,labelBgBorderRadius:g,style:y,markerEnd:w,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,E,N]=TE({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:s,targetPosition:l,curvature:_==null?void 0:_.curvature});return le.createElement(ia,{path:b,labelX:E,labelY:N,label:u,labelStyle:c,labelShowBg:f,labelBgStyle:p,labelBgPadding:h,labelBgBorderRadius:g,style:y,markerEnd:w,markerStart:C,interactionWidth:S})});Fl.displayName="BezierEdge";const lv=I.createContext(null),hI=lv.Provider;lv.Consumer;const pI=()=>I.useContext(lv),mI=e=>"id"in e&&"source"in e&&"target"in e,gI=({source:e,sourceHandle:n,target:r,targetHandle:s})=>`reactflow__edge-${e}${n||""}-${r}${s||""}`,Lg=(e,n)=>typeof e>"u"?"":typeof e=="string"?e:`${n?`${n}__`:""}${Object.keys(e).sort().map(s=>`${s}=${e[s]}`).join("&")}`,vI=(e,n)=>n.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),yI=(e,n)=>{if(!e.source||!e.target)return n;let r;return mI(e)?r={...e}:r={...e,id:gI(e)},vI(r,n)?n:n.concat(r)},$g=({x:e,y:n},[r,s,o],l,[u,c])=>{const f={x:(e-r)/o,y:(n-s)/o};return l?{x:u*Math.round(f.x/u),y:c*Math.round(f.y/c)}:f},AE=({x:e,y:n},[r,s,o])=>({x:e*o+r,y:n*o+s}),Yi=(e,n=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const r=(e.width??0)*n[0],s=(e.height??0)*n[1],o={x:e.position.x-r,y:e.position.y-s};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-r,y:e.positionAbsolute.y-s}:o}},Xl=(e,n=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((s,o)=>{const{x:l,y:u}=Yi(o,n).positionAbsolute;return bE(s,Zo({x:l,y:u,width:o.width||0,height:o.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return kE(r)},IE=(e,n,[r,s,o]=[0,0,1],l=!1,u=!1,c=[0,0])=>{const f={x:(n.x-r)/o,y:(n.y-s)/o,width:n.width/o,height:n.height/o},p=[];return e.forEach(h=>{const{width:g,height:y,selectable:w=!0,hidden:C=!1}=h;if(u&&!w||C)return!1;const{positionAbsolute:_}=Yi(h,c),S={x:_.x,y:_.y,width:g||0,height:y||0},b=Pg(f,S),E=typeof g>"u"||typeof y>"u"||g===null||y===null,N=l&&b>0,j=(g||0)*(y||0);(E||N||b>=j||h.dragging)&&p.push(h)}),p},ME=(e,n)=>{const r=e.map(s=>s.id);return n.filter(s=>r.includes(s.source)||r.includes(s.target))},PE=(e,n,r,s,o,l=.1)=>{const u=n/(e.width*(1+l)),c=r/(e.height*(1+l)),f=Math.min(u,c),p=Hs(f,s,o),h=e.x+e.width/2,g=e.y+e.height/2,y=n/2-h*p,w=r/2-g*p;return{x:y,y:w,zoom:p}},Vi=(e,n=0)=>e.transition().duration(n);function Iw(e,n,r,s){return(n[r]||[]).reduce((o,l)=>{var u,c;return`${e.id}-${l.id}-${r}`!==s&&o.push({id:l.id||null,type:r,nodeId:e.id,x:(((u=e.positionAbsolute)==null?void 0:u.x)??0)+l.x+l.width/2,y:(((c=e.positionAbsolute)==null?void 0:c.y)??0)+l.y+l.height/2}),o},[])}function wI(e,n,r,s,o,l){const{x:u,y:c}=mi(e),p=n.elementsFromPoint(u,c).find(C=>C.classList.contains("react-flow__handle"));if(p){const C=p.getAttribute("data-nodeid");if(C){const _=uv(void 0,p),S=p.getAttribute("data-handleid"),b=l({nodeId:C,id:S,type:_});if(b){const E=o.find(N=>N.nodeId===C&&N.type===_&&N.id===S);return{handle:{id:S,type:_,nodeId:C,x:(E==null?void 0:E.x)||r.x,y:(E==null?void 0:E.y)||r.y},validHandleResult:b}}}}let h=[],g=1/0;if(o.forEach(C=>{const _=Math.sqrt((C.x-r.x)**2+(C.y-r.y)**2);if(_<=s){const S=l(C);_<=g&&(_<g?h=[{handle:C,validHandleResult:S}]:_===g&&h.push({handle:C,validHandleResult:S}),g=_)}}),!h.length)return{handle:null,validHandleResult:OE()};if(h.length===1)return h[0];const y=h.some(({validHandleResult:C})=>C.isValid),w=h.some(({handle:C})=>C.type==="target");return h.find(({handle:C,validHandleResult:_})=>w?C.type==="target":y?_.isValid:!0)||h[0]}const xI={source:null,target:null,sourceHandle:null,targetHandle:null},OE=()=>({handleDomNode:null,isValid:!1,connection:xI,endHandle:null});function qE(e,n,r,s,o,l,u){const c=o==="target",f=u.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),p={...OE(),handleDomNode:f};if(f){const h=uv(void 0,f),g=f.getAttribute("data-nodeid"),y=f.getAttribute("data-handleid"),w=f.classList.contains("connectable"),C=f.classList.contains("connectableend"),_={source:c?g:r,sourceHandle:c?y:s,target:c?r:g,targetHandle:c?s:y};p.connection=_,w&&C&&(n===Zi.Strict?c&&h==="source"||!c&&h==="target":g!==r||y!==s)&&(p.endHandle={nodeId:g,handleId:y,type:h},p.isValid=l(_))}return p}function _I({nodes:e,nodeId:n,handleId:r,handleType:s}){return e.reduce((o,l)=>{if(l[ht]){const{handleBounds:u}=l[ht];let c=[],f=[];u&&(c=Iw(l,u,"source",`${n}-${r}-${s}`),f=Iw(l,u,"target",`${n}-${r}-${s}`)),o.push(...c,...f)}return o},[])}function uv(e,n){return e||(n!=null&&n.classList.contains("target")?"target":n!=null&&n.classList.contains("source")?"source":null)}function Jc(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function SI(e,n){let r=null;return n?r="valid":e&&!n&&(r="invalid"),r}function LE({event:e,handleId:n,nodeId:r,onConnect:s,isTarget:o,getState:l,setState:u,isValidConnection:c,edgeUpdaterType:f,onReconnectEnd:p}){const h=SE(e.target),{connectionMode:g,domNode:y,autoPanOnConnect:w,connectionRadius:C,onConnectStart:_,panBy:S,getNodes:b,cancelConnection:E}=l();let N=0,j;const{x:M,y:O}=mi(e),q=h==null?void 0:h.elementFromPoint(M,O),F=uv(f,q),R=y==null?void 0:y.getBoundingClientRect();if(!R||!F)return;let P,B=mi(e,R),J=!1,Z=null,A=!1,H=null;const U=_I({nodes:b(),nodeId:r,handleId:n,handleType:F}),ne=()=>{if(!w)return;const[G,k]=_E(B,R);S({x:G,y:k}),N=requestAnimationFrame(ne)};u({connectionPosition:B,connectionStatus:null,connectionNodeId:r,connectionHandleId:n,connectionHandleType:F,connectionStartHandle:{nodeId:r,handleId:n,type:F},connectionEndHandle:null}),_==null||_(e,{nodeId:r,handleId:n,handleType:F});function Q(G){const{transform:k}=l();B=mi(G,R);const{handle:L,validHandleResult:oe}=wI(G,h,$g(B,k,!1,[1,1]),C,U,$=>qE($,g,r,n,o?"target":"source",c,h));if(j=L,J||(ne(),J=!0),H=oe.handleDomNode,Z=oe.connection,A=oe.isValid,u({connectionPosition:j&&A?AE({x:j.x,y:j.y},k):B,connectionStatus:SI(!!j,A),connectionEndHandle:oe.endHandle}),!j&&!A&&!H)return Jc(P);Z.source!==Z.target&&H&&(Jc(P),P=H,H.classList.add("connecting","react-flow__handle-connecting"),H.classList.toggle("valid",A),H.classList.toggle("react-flow__handle-valid",A))}function D(G){var k,L;(j||H)&&Z&&A&&(s==null||s(Z)),(L=(k=l()).onConnectEnd)==null||L.call(k,G),f&&(p==null||p(G)),Jc(P),E(),cancelAnimationFrame(N),J=!1,A=!1,Z=null,H=null,h.removeEventListener("mousemove",Q),h.removeEventListener("mouseup",D),h.removeEventListener("touchmove",Q),h.removeEventListener("touchend",D)}h.addEventListener("mousemove",Q),h.addEventListener("mouseup",D),h.addEventListener("touchmove",Q),h.addEventListener("touchend",D)}const Mw=()=>!0,bI=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),kI=(e,n,r)=>s=>{const{connectionStartHandle:o,connectionEndHandle:l,connectionClickStartHandle:u}=s;return{connecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.handleId)===n&&(o==null?void 0:o.type)===r||(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.handleId)===n&&(l==null?void 0:l.type)===r,clickConnecting:(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.handleId)===n&&(u==null?void 0:u.type)===r}},$E=I.forwardRef(({type:e="source",position:n=Ce.Top,isValidConnection:r,isConnectable:s=!0,isConnectableStart:o=!0,isConnectableEnd:l=!0,id:u,onConnect:c,children:f,className:p,onMouseDown:h,onTouchStart:g,...y},w)=>{var R,P;const C=u||null,_=e==="target",S=jt(),b=pI(),{connectOnClick:E,noPanClassName:N}=Xe(bI,Ct),{connecting:j,clickConnecting:M}=Xe(kI(b,C,e),Ct);b||(P=(R=S.getState()).onError)==null||P.call(R,"010",Or.error010());const O=B=>{const{defaultEdgeOptions:J,onConnect:Z,hasDefaultEdges:A}=S.getState(),H={...J,...B};if(A){const{edges:U,setEdges:ne}=S.getState();ne(yI(H,U))}Z==null||Z(H),c==null||c(H)},q=B=>{if(!b)return;const J=NE(B);o&&(J&&B.button===0||!J)&&LE({event:B,handleId:C,nodeId:b,onConnect:O,isTarget:_,getState:S.getState,setState:S.setState,isValidConnection:r||S.getState().isValidConnection||Mw}),J?h==null||h(B):g==null||g(B)},F=B=>{const{onClickConnectStart:J,onClickConnectEnd:Z,connectionClickStartHandle:A,connectionMode:H,isValidConnection:U}=S.getState();if(!b||!A&&!o)return;if(!A){J==null||J(B,{nodeId:b,handleId:C,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:b,type:e,handleId:C}});return}const ne=SE(B.target),Q=r||U||Mw,{connection:D,isValid:G}=qE({nodeId:b,id:C,type:e},H,A.nodeId,A.handleId||null,A.type,Q,ne);G&&O(D),Z==null||Z(B),S.setState({connectionClickStartHandle:null})};return le.createElement("div",{"data-handleid":C,"data-nodeid":b,"data-handlepos":n,"data-id":`${b}-${C}-${e}`,className:Ft(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",N,p,{source:!_,target:_,connectable:s,connectablestart:o,connectableend:l,connecting:M,connectionindicator:s&&(o&&!j||l&&j)}]),onMouseDown:q,onTouchStart:q,onClick:E?F:void 0,ref:w,...y},f)});$E.displayName="Handle";var Vs=I.memo($E);const DE=({data:e,isConnectable:n,targetPosition:r=Ce.Top,sourcePosition:s=Ce.Bottom})=>le.createElement(le.Fragment,null,le.createElement(Vs,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label,le.createElement(Vs,{type:"source",position:s,isConnectable:n}));DE.displayName="DefaultNode";var Dg=I.memo(DE);const FE=({data:e,isConnectable:n,sourcePosition:r=Ce.Bottom})=>le.createElement(le.Fragment,null,e==null?void 0:e.label,le.createElement(Vs,{type:"source",position:r,isConnectable:n}));FE.displayName="InputNode";var zE=I.memo(FE);const BE=({data:e,isConnectable:n,targetPosition:r=Ce.Top})=>le.createElement(le.Fragment,null,le.createElement(Vs,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label);BE.displayName="OutputNode";var UE=I.memo(BE);const cv=()=>null;cv.displayName="GroupNode";const EI=e=>({selectedNodes:e.getNodes().filter(n=>n.selected),selectedEdges:e.edges.filter(n=>n.selected).map(n=>({...n}))}),wl=e=>e.id;function NI(e,n){return Ct(e.selectedNodes.map(wl),n.selectedNodes.map(wl))&&Ct(e.selectedEdges.map(wl),n.selectedEdges.map(wl))}const HE=I.memo(({onSelectionChange:e})=>{const n=jt(),{selectedNodes:r,selectedEdges:s}=Xe(EI,NI);return I.useEffect(()=>{const o={nodes:r,edges:s};e==null||e(o),n.getState().onSelectionChange.forEach(l=>l(o))},[r,s,e]),null});HE.displayName="SelectionListener";const CI=e=>!!e.onSelectionChange;function jI({onSelectionChange:e}){const n=Xe(CI);return e||n?le.createElement(HE,{onSelectionChange:e}):null}const RI=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Ts(e,n){I.useEffect(()=>{typeof e<"u"&&n(e)},[e])}function Le(e,n,r){I.useEffect(()=>{typeof n<"u"&&r({[e]:n})},[n])}const TI=({nodes:e,edges:n,defaultNodes:r,defaultEdges:s,onConnect:o,onConnectStart:l,onConnectEnd:u,onClickConnectStart:c,onClickConnectEnd:f,nodesDraggable:p,nodesConnectable:h,nodesFocusable:g,edgesFocusable:y,edgesUpdatable:w,elevateNodesOnSelect:C,minZoom:_,maxZoom:S,nodeExtent:b,onNodesChange:E,onEdgesChange:N,elementsSelectable:j,connectionMode:M,snapGrid:O,snapToGrid:q,translateExtent:F,connectOnClick:R,defaultEdgeOptions:P,fitView:B,fitViewOptions:J,onNodesDelete:Z,onEdgesDelete:A,onNodeDrag:H,onNodeDragStart:U,onNodeDragStop:ne,onSelectionDrag:Q,onSelectionDragStart:D,onSelectionDragStop:G,noPanClassName:k,nodeOrigin:L,rfId:oe,autoPanOnConnect:$,autoPanOnNodeDrag:Y,onError:ee,connectionRadius:se,isValidConnection:ae,nodeDragThreshold:pe})=>{const{setNodes:ge,setEdges:Ae,setDefaultNodesAndEdges:Oe,setMinZoom:Me,setMaxZoom:Pe,setTranslateExtent:ke,setNodeExtent:We,reset:ve}=Xe(RI,Ct),ye=jt();return I.useEffect(()=>{const Ge=s==null?void 0:s.map(ut=>({...ut,...P}));return Oe(r,Ge),()=>{ve()}},[]),Le("defaultEdgeOptions",P,ye.setState),Le("connectionMode",M,ye.setState),Le("onConnect",o,ye.setState),Le("onConnectStart",l,ye.setState),Le("onConnectEnd",u,ye.setState),Le("onClickConnectStart",c,ye.setState),Le("onClickConnectEnd",f,ye.setState),Le("nodesDraggable",p,ye.setState),Le("nodesConnectable",h,ye.setState),Le("nodesFocusable",g,ye.setState),Le("edgesFocusable",y,ye.setState),Le("edgesUpdatable",w,ye.setState),Le("elementsSelectable",j,ye.setState),Le("elevateNodesOnSelect",C,ye.setState),Le("snapToGrid",q,ye.setState),Le("snapGrid",O,ye.setState),Le("onNodesChange",E,ye.setState),Le("onEdgesChange",N,ye.setState),Le("connectOnClick",R,ye.setState),Le("fitViewOnInit",B,ye.setState),Le("fitViewOnInitOptions",J,ye.setState),Le("onNodesDelete",Z,ye.setState),Le("onEdgesDelete",A,ye.setState),Le("onNodeDrag",H,ye.setState),Le("onNodeDragStart",U,ye.setState),Le("onNodeDragStop",ne,ye.setState),Le("onSelectionDrag",Q,ye.setState),Le("onSelectionDragStart",D,ye.setState),Le("onSelectionDragStop",G,ye.setState),Le("noPanClassName",k,ye.setState),Le("nodeOrigin",L,ye.setState),Le("rfId",oe,ye.setState),Le("autoPanOnConnect",$,ye.setState),Le("autoPanOnNodeDrag",Y,ye.setState),Le("onError",ee,ye.setState),Le("connectionRadius",se,ye.setState),Le("isValidConnection",ae,ye.setState),Le("nodeDragThreshold",pe,ye.setState),Ts(e,ge),Ts(n,Ae),Ts(_,Me),Ts(S,Pe),Ts(F,ke),Ts(b,We),null},Pw={display:"none"},AI={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},VE="react-flow__node-desc",WE="react-flow__edge-desc",II="react-flow__aria-live",MI=e=>e.ariaLiveMessage;function PI({rfId:e}){const n=Xe(MI);return le.createElement("div",{id:`${II}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:AI},n)}function OI({rfId:e,disableKeyboardA11y:n}){return le.createElement(le.Fragment,null,le.createElement("div",{id:`${VE}-${e}`,style:Pw},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),le.createElement("div",{id:`${WE}-${e}`,style:Pw},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&le.createElement(PI,{rfId:e}))}var ea=(e=null,n={actInsideInputWithModifier:!0})=>{const[r,s]=I.useState(!1),o=I.useRef(!1),l=I.useRef(new Set([])),[u,c]=I.useMemo(()=>{if(e!==null){const p=(Array.isArray(e)?e:[e]).filter(g=>typeof g=="string").map(g=>g.split("+")),h=p.reduce((g,y)=>g.concat(...y),[]);return[p,h]}return[[],[]]},[e]);return I.useEffect(()=>{const f=typeof document<"u"?document:null,p=(n==null?void 0:n.target)||f;if(e!==null){const h=w=>{if(o.current=w.ctrlKey||w.metaKey||w.shiftKey,(!o.current||o.current&&!n.actInsideInputWithModifier)&&Og(w))return!1;const _=qw(w.code,c);l.current.add(w[_]),Ow(u,l.current,!1)&&(w.preventDefault(),s(!0))},g=w=>{if((!o.current||o.current&&!n.actInsideInputWithModifier)&&Og(w))return!1;const _=qw(w.code,c);Ow(u,l.current,!0)?(s(!1),l.current.clear()):l.current.delete(w[_]),w.key==="Meta"&&l.current.clear(),o.current=!1},y=()=>{l.current.clear(),s(!1)};return p==null||p.addEventListener("keydown",h),p==null||p.addEventListener("keyup",g),window.addEventListener("blur",y),()=>{p==null||p.removeEventListener("keydown",h),p==null||p.removeEventListener("keyup",g),window.removeEventListener("blur",y)}}},[e,s]),r};function Ow(e,n,r){return e.filter(s=>r||s.length===n.size).some(s=>s.every(o=>n.has(o)))}function qw(e,n){return n.includes(e)?"code":"key"}function GE(e,n,r,s){var c,f;const o=e.parentNode||e.parentId;if(!o)return r;const l=n.get(o),u=Yi(l,s);return GE(l,n,{x:(r.x??0)+u.x,y:(r.y??0)+u.y,z:(((c=l[ht])==null?void 0:c.z)??0)>(r.z??0)?((f=l[ht])==null?void 0:f.z)??0:r.z??0},s)}function KE(e,n,r){e.forEach(s=>{var l;const o=s.parentNode||s.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||r!=null&&r[s.id]){const{x:u,y:c,z:f}=GE(s,e,{...s.position,z:((l=s[ht])==null?void 0:l.z)??0},n);s.positionAbsolute={x:u,y:c},s[ht].z=f,r!=null&&r[s.id]&&(s[ht].isParent=!0)}})}function ed(e,n,r,s){const o=new Map,l={},u=s?1e3:0;return e.forEach(c=>{var w;const f=(Pn(c.zIndex)?c.zIndex:0)+(c.selected?u:0),p=n.get(c.id),h={...c,positionAbsolute:{x:c.position.x,y:c.position.y}},g=c.parentNode||c.parentId;g&&(l[g]=!0);const y=(p==null?void 0:p.type)&&(p==null?void 0:p.type)!==c.type;Object.defineProperty(h,ht,{enumerable:!1,value:{handleBounds:y||(w=p==null?void 0:p[ht])==null?void 0:w.handleBounds,z:f}}),o.set(c.id,h)}),KE(o,r,l),o}function YE(e,n={}){const{getNodes:r,width:s,height:o,minZoom:l,maxZoom:u,d3Zoom:c,d3Selection:f,fitViewOnInitDone:p,fitViewOnInit:h,nodeOrigin:g}=e(),y=n.initial&&!p&&h;if(c&&f&&(y||!n.initial)){const C=r().filter(S=>{var E;const b=n.includeHiddenNodes?S.width&&S.height:!S.hidden;return(E=n.nodes)!=null&&E.length?b&&n.nodes.some(N=>N.id===S.id):b}),_=C.every(S=>S.width&&S.height);if(C.length>0&&_){const S=Xl(C,g),{x:b,y:E,zoom:N}=PE(S,s,o,n.minZoom??l,n.maxZoom??u,n.padding??.1),j=Mr.translate(b,E).scale(N);return typeof n.duration=="number"&&n.duration>0?c.transform(Vi(f,n.duration),j):c.transform(f,j),!0}}return!1}function qI(e,n){return e.forEach(r=>{const s=n.get(r.id);s&&n.set(s.id,{...s,[ht]:s[ht],selected:r.selected})}),new Map(n)}function LI(e,n){return n.map(r=>{const s=e.find(o=>o.id===r.id);return s&&(r.selected=s.selected),r})}function xl({changedNodes:e,changedEdges:n,get:r,set:s}){const{nodeInternals:o,edges:l,onNodesChange:u,onEdgesChange:c,hasDefaultNodes:f,hasDefaultEdges:p}=r();e!=null&&e.length&&(f&&s({nodeInternals:qI(e,o)}),u==null||u(e)),n!=null&&n.length&&(p&&s({edges:LI(n,l)}),c==null||c(n))}const As=()=>{},$I={zoomIn:As,zoomOut:As,zoomTo:As,getZoom:()=>1,setViewport:As,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:As,fitBounds:As,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},DI=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),FI=()=>{const e=jt(),{d3Zoom:n,d3Selection:r}=Xe(DI,Ct);return I.useMemo(()=>r&&n?{zoomIn:o=>n.scaleBy(Vi(r,o==null?void 0:o.duration),1.2),zoomOut:o=>n.scaleBy(Vi(r,o==null?void 0:o.duration),1/1.2),zoomTo:(o,l)=>n.scaleTo(Vi(r,l==null?void 0:l.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,l)=>{const[u,c,f]=e.getState().transform,p=Mr.translate(o.x??u,o.y??c).scale(o.zoom??f);n.transform(Vi(r,l==null?void 0:l.duration),p)},getViewport:()=>{const[o,l,u]=e.getState().transform;return{x:o,y:l,zoom:u}},fitView:o=>YE(e.getState,o),setCenter:(o,l,u)=>{const{width:c,height:f,maxZoom:p}=e.getState(),h=typeof(u==null?void 0:u.zoom)<"u"?u.zoom:p,g=c/2-o*h,y=f/2-l*h,w=Mr.translate(g,y).scale(h);n.transform(Vi(r,u==null?void 0:u.duration),w)},fitBounds:(o,l)=>{const{width:u,height:c,minZoom:f,maxZoom:p}=e.getState(),{x:h,y:g,zoom:y}=PE(o,u,c,f,p,(l==null?void 0:l.padding)??.1),w=Mr.translate(h,g).scale(y);n.transform(Vi(r,l==null?void 0:l.duration),w)},project:o=>{const{transform:l,snapToGrid:u,snapGrid:c}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),$g(o,l,u,c)},screenToFlowPosition:o=>{const{transform:l,snapToGrid:u,snapGrid:c,domNode:f}=e.getState();if(!f)return o;const{x:p,y:h}=f.getBoundingClientRect(),g={x:o.x-p,y:o.y-h};return $g(g,l,u,c)},flowToScreenPosition:o=>{const{transform:l,domNode:u}=e.getState();if(!u)return o;const{x:c,y:f}=u.getBoundingClientRect(),p=AE(o,l);return{x:p.x+c,y:p.y+f}},viewportInitialized:!0}:$I,[n,r])};function sa(){const e=FI(),n=jt(),r=I.useCallback(()=>n.getState().getNodes().map(_=>({..._})),[]),s=I.useCallback(_=>n.getState().nodeInternals.get(_),[]),o=I.useCallback(()=>{const{edges:_=[]}=n.getState();return _.map(S=>({...S}))},[]),l=I.useCallback(_=>{const{edges:S=[]}=n.getState();return S.find(b=>b.id===_)},[]),u=I.useCallback(_=>{const{getNodes:S,setNodes:b,hasDefaultNodes:E,onNodesChange:N}=n.getState(),j=S(),M=typeof _=="function"?_(j):_;if(E)b(M);else if(N){const O=M.length===0?j.map(q=>({type:"remove",id:q.id})):M.map(q=>({item:q,type:"reset"}));N(O)}},[]),c=I.useCallback(_=>{const{edges:S=[],setEdges:b,hasDefaultEdges:E,onEdgesChange:N}=n.getState(),j=typeof _=="function"?_(S):_;if(E)b(j);else if(N){const M=j.length===0?S.map(O=>({type:"remove",id:O.id})):j.map(O=>({item:O,type:"reset"}));N(M)}},[]),f=I.useCallback(_=>{const S=Array.isArray(_)?_:[_],{getNodes:b,setNodes:E,hasDefaultNodes:N,onNodesChange:j}=n.getState();if(N){const O=[...b(),...S];E(O)}else if(j){const M=S.map(O=>({item:O,type:"add"}));j(M)}},[]),p=I.useCallback(_=>{const S=Array.isArray(_)?_:[_],{edges:b=[],setEdges:E,hasDefaultEdges:N,onEdgesChange:j}=n.getState();if(N)E([...b,...S]);else if(j){const M=S.map(O=>({item:O,type:"add"}));j(M)}},[]),h=I.useCallback(()=>{const{getNodes:_,edges:S=[],transform:b}=n.getState(),[E,N,j]=b;return{nodes:_().map(M=>({...M})),edges:S.map(M=>({...M})),viewport:{x:E,y:N,zoom:j}}},[]),g=I.useCallback(({nodes:_,edges:S})=>{const{nodeInternals:b,getNodes:E,edges:N,hasDefaultNodes:j,hasDefaultEdges:M,onNodesDelete:O,onEdgesDelete:q,onNodesChange:F,onEdgesChange:R}=n.getState(),P=(_||[]).map(H=>H.id),B=(S||[]).map(H=>H.id),J=E().reduce((H,U)=>{const ne=U.parentNode||U.parentId,Q=!P.includes(U.id)&&ne&&H.find(G=>G.id===ne);return(typeof U.deletable=="boolean"?U.deletable:!0)&&(P.includes(U.id)||Q)&&H.push(U),H},[]),Z=N.filter(H=>typeof H.deletable=="boolean"?H.deletable:!0),A=Z.filter(H=>B.includes(H.id));if(J||A){const H=ME(J,Z),U=[...A,...H],ne=U.reduce((Q,D)=>(Q.includes(D.id)||Q.push(D.id),Q),[]);if((M||j)&&(M&&n.setState({edges:N.filter(Q=>!ne.includes(Q.id))}),j&&(J.forEach(Q=>{b.delete(Q.id)}),n.setState({nodeInternals:new Map(b)}))),ne.length>0&&(q==null||q(U),R&&R(ne.map(Q=>({id:Q,type:"remove"})))),J.length>0&&(O==null||O(J),F)){const Q=J.map(D=>({id:D.id,type:"remove"}));F(Q)}}},[]),y=I.useCallback(_=>{const S=oI(_),b=S?null:n.getState().nodeInternals.get(_.id);return!S&&!b?[null,null,S]:[S?_:Cw(b),b,S]},[]),w=I.useCallback((_,S=!0,b)=>{const[E,N,j]=y(_);return E?(b||n.getState().getNodes()).filter(M=>{if(!j&&(M.id===N.id||!M.positionAbsolute))return!1;const O=Cw(M),q=Pg(O,E);return S&&q>0||q>=E.width*E.height}):[]},[]),C=I.useCallback((_,S,b=!0)=>{const[E]=y(_);if(!E)return!1;const N=Pg(E,S);return b&&N>0||N>=E.width*E.height},[]);return I.useMemo(()=>({...e,getNodes:r,getNode:s,getEdges:o,getEdge:l,setNodes:u,setEdges:c,addNodes:f,addEdges:p,toObject:h,deleteElements:g,getIntersectingNodes:w,isNodeIntersecting:C}),[e,r,s,o,l,u,c,f,p,h,g,w,C])}const zI={actInsideInputWithModifier:!1};var BI=({deleteKeyCode:e,multiSelectionKeyCode:n})=>{const r=jt(),{deleteElements:s}=sa(),o=ea(e,zI),l=ea(n);I.useEffect(()=>{if(o){const{edges:u,getNodes:c}=r.getState(),f=c().filter(h=>h.selected),p=u.filter(h=>h.selected);s({nodes:f,edges:p}),r.setState({nodesSelectionActive:!1})}},[o]),I.useEffect(()=>{r.setState({multiSelectionActive:l})},[l])};function UI(e){const n=jt();I.useEffect(()=>{let r;const s=()=>{var l,u;if(!e.current)return;const o=rv(e.current);(o.height===0||o.width===0)&&((u=(l=n.getState()).onError)==null||u.call(l,"004",Or.error004())),n.setState({width:o.width||500,height:o.height||500})};return s(),window.addEventListener("resize",s),e.current&&(r=new ResizeObserver(()=>s()),r.observe(e.current)),()=>{window.removeEventListener("resize",s),r&&e.current&&r.unobserve(e.current)}},[])}const dv={position:"absolute",width:"100%",height:"100%",top:0,left:0},HI=(e,n)=>e.x!==n.x||e.y!==n.y||e.zoom!==n.k,_l=e=>({x:e.x,y:e.y,zoom:e.k}),Is=(e,n)=>e.target.closest(`.${n}`),Lw=(e,n)=>n===2&&Array.isArray(e)&&e.includes(2),$w=e=>{const n=e.ctrlKey&&$l()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*n},VI=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),WI=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:s,zoomOnScroll:o=!0,zoomOnPinch:l=!0,panOnScroll:u=!1,panOnScrollSpeed:c=.5,panOnScrollMode:f=Gi.Free,zoomOnDoubleClick:p=!0,elementsSelectable:h,panOnDrag:g=!0,defaultViewport:y,translateExtent:w,minZoom:C,maxZoom:_,zoomActivationKeyCode:S,preventScrolling:b=!0,children:E,noWheelClassName:N,noPanClassName:j})=>{const M=I.useRef(),O=jt(),q=I.useRef(!1),F=I.useRef(!1),R=I.useRef(null),P=I.useRef({x:0,y:0,zoom:0}),{d3Zoom:B,d3Selection:J,d3ZoomHandler:Z,userSelectionActive:A}=Xe(VI,Ct),H=ea(S),U=I.useRef(0),ne=I.useRef(!1),Q=I.useRef();return UI(R),I.useEffect(()=>{if(R.current){const D=R.current.getBoundingClientRect(),G=wE().scaleExtent([C,_]).translateExtent(w),k=Mn(R.current).call(G),L=Mr.translate(y.x,y.y).scale(Hs(y.zoom,C,_)),oe=[[0,0],[D.width,D.height]],$=G.constrain()(L,oe,w);G.transform(k,$),G.wheelDelta($w),O.setState({d3Zoom:G,d3Selection:k,d3ZoomHandler:k.on("wheel.zoom"),transform:[$.x,$.y,$.k],domNode:R.current.closest(".react-flow")})}},[]),I.useEffect(()=>{J&&B&&(u&&!H&&!A?J.on("wheel.zoom",D=>{if(Is(D,N))return!1;D.preventDefault(),D.stopImmediatePropagation();const G=J.property("__zoom").k||1;if(D.ctrlKey&&l){const ae=Kn(D),pe=$w(D),ge=G*Math.pow(2,pe);B.scaleTo(J,ge,ae,D);return}const k=D.deltaMode===1?20:1;let L=f===Gi.Vertical?0:D.deltaX*k,oe=f===Gi.Horizontal?0:D.deltaY*k;!$l()&&D.shiftKey&&f!==Gi.Vertical&&(L=D.deltaY*k,oe=0),B.translateBy(J,-(L/G)*c,-(oe/G)*c,{internal:!0});const $=_l(J.property("__zoom")),{onViewportChangeStart:Y,onViewportChange:ee,onViewportChangeEnd:se}=O.getState();clearTimeout(Q.current),ne.current||(ne.current=!0,n==null||n(D,$),Y==null||Y($)),ne.current&&(e==null||e(D,$),ee==null||ee($),Q.current=setTimeout(()=>{r==null||r(D,$),se==null||se($),ne.current=!1},150))},{passive:!1}):typeof Z<"u"&&J.on("wheel.zoom",function(D,G){if(!b&&D.type==="wheel"&&!D.ctrlKey||Is(D,N))return null;D.preventDefault(),Z.call(this,D,G)},{passive:!1}))},[A,u,f,J,B,Z,H,l,b,N,n,e,r]),I.useEffect(()=>{B&&B.on("start",D=>{var L,oe;if(!D.sourceEvent||D.sourceEvent.internal)return null;U.current=(L=D.sourceEvent)==null?void 0:L.button;const{onViewportChangeStart:G}=O.getState(),k=_l(D.transform);q.current=!0,P.current=k,((oe=D.sourceEvent)==null?void 0:oe.type)==="mousedown"&&O.setState({paneDragging:!0}),G==null||G(k),n==null||n(D.sourceEvent,k)})},[B,n]),I.useEffect(()=>{B&&(A&&!q.current?B.on("zoom",null):A||B.on("zoom",D=>{var k;const{onViewportChange:G}=O.getState();if(O.setState({transform:[D.transform.x,D.transform.y,D.transform.k]}),F.current=!!(s&&Lw(g,U.current??0)),(e||G)&&!((k=D.sourceEvent)!=null&&k.internal)){const L=_l(D.transform);G==null||G(L),e==null||e(D.sourceEvent,L)}}))},[A,B,e,g,s]),I.useEffect(()=>{B&&B.on("end",D=>{if(!D.sourceEvent||D.sourceEvent.internal)return null;const{onViewportChangeEnd:G}=O.getState();if(q.current=!1,O.setState({paneDragging:!1}),s&&Lw(g,U.current??0)&&!F.current&&s(D.sourceEvent),F.current=!1,(r||G)&&HI(P.current,D.transform)){const k=_l(D.transform);P.current=k,clearTimeout(M.current),M.current=setTimeout(()=>{G==null||G(k),r==null||r(D.sourceEvent,k)},u?150:0)}})},[B,u,g,r,s]),I.useEffect(()=>{B&&B.filter(D=>{const G=H||o,k=l&&D.ctrlKey;if((g===!0||Array.isArray(g)&&g.includes(1))&&D.button===1&&D.type==="mousedown"&&(Is(D,"react-flow__node")||Is(D,"react-flow__edge")))return!0;if(!g&&!G&&!u&&!p&&!l||A||!p&&D.type==="dblclick"||Is(D,N)&&D.type==="wheel"||Is(D,j)&&(D.type!=="wheel"||u&&D.type==="wheel"&&!H)||!l&&D.ctrlKey&&D.type==="wheel"||!G&&!u&&!k&&D.type==="wheel"||!g&&(D.type==="mousedown"||D.type==="touchstart")||Array.isArray(g)&&!g.includes(D.button)&&D.type==="mousedown")return!1;const L=Array.isArray(g)&&g.includes(D.button)||!D.button||D.button<=1;return(!D.ctrlKey||D.type==="wheel")&&L})},[A,B,o,l,u,p,g,h,H]),le.createElement("div",{className:"react-flow__renderer",ref:R,style:dv},E)},GI=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function KI(){const{userSelectionActive:e,userSelectionRect:n}=Xe(GI,Ct);return e&&n?le.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function Dw(e,n){const r=n.parentNode||n.parentId,s=e.find(o=>o.id===r);if(s){const o=n.position.x+n.width-s.width,l=n.position.y+n.height-s.height;if(o>0||l>0||n.position.x<0||n.position.y<0){if(s.style={...s.style},s.style.width=s.style.width??s.width,s.style.height=s.style.height??s.height,o>0&&(s.style.width+=o),l>0&&(s.style.height+=l),n.position.x<0){const u=Math.abs(n.position.x);s.position.x=s.position.x-u,s.style.width+=u,n.position.x=0}if(n.position.y<0){const u=Math.abs(n.position.y);s.position.y=s.position.y-u,s.style.height+=u,n.position.y=0}s.width=s.style.width,s.height=s.style.height}}}function YI(e,n){if(e.some(s=>s.type==="reset"))return e.filter(s=>s.type==="reset").map(s=>s.item);const r=e.filter(s=>s.type==="add").map(s=>s.item);return n.reduce((s,o)=>{const l=e.filter(c=>c.id===o.id);if(l.length===0)return s.push(o),s;const u={...o};for(const c of l)if(c)switch(c.type){case"select":{u.selected=c.selected;break}case"position":{typeof c.position<"u"&&(u.position=c.position),typeof c.positionAbsolute<"u"&&(u.positionAbsolute=c.positionAbsolute),typeof c.dragging<"u"&&(u.dragging=c.dragging),u.expandParent&&Dw(s,u);break}case"dimensions":{typeof c.dimensions<"u"&&(u.width=c.dimensions.width,u.height=c.dimensions.height),typeof c.updateStyle<"u"&&(u.style={...u.style||{},...c.dimensions}),typeof c.resizing=="boolean"&&(u.resizing=c.resizing),u.expandParent&&Dw(s,u);break}case"remove":return s}return s.push(u),s},r)}function XI(e,n){return YI(e,n)}const hi=(e,n)=>({id:e,type:"select",selected:n});function qs(e,n){return e.reduce((r,s)=>{const o=n.includes(s.id);return!s.selected&&o?(s.selected=!0,r.push(hi(s.id,!0))):s.selected&&!o&&(s.selected=!1,r.push(hi(s.id,!1))),r},[])}const td=(e,n)=>r=>{r.target===n.current&&(e==null||e(r))},QI=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),XE=I.memo(({isSelecting:e,selectionMode:n=Jo.Full,panOnDrag:r,onSelectionStart:s,onSelectionEnd:o,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:c,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:h,children:g})=>{const y=I.useRef(null),w=jt(),C=I.useRef(0),_=I.useRef(0),S=I.useRef(),{userSelectionActive:b,elementsSelectable:E,dragging:N}=Xe(QI,Ct),j=()=>{w.setState({userSelectionActive:!1,userSelectionRect:null}),C.current=0,_.current=0},M=Z=>{l==null||l(Z),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})},O=Z=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){Z.preventDefault();return}u==null||u(Z)},q=c?Z=>c(Z):void 0,F=Z=>{const{resetSelectedElements:A,domNode:H}=w.getState();if(S.current=H==null?void 0:H.getBoundingClientRect(),!E||!e||Z.button!==0||Z.target!==y.current||!S.current)return;const{x:U,y:ne}=mi(Z,S.current);A(),w.setState({userSelectionRect:{width:0,height:0,startX:U,startY:ne,x:U,y:ne}}),s==null||s(Z)},R=Z=>{const{userSelectionRect:A,nodeInternals:H,edges:U,transform:ne,onNodesChange:Q,onEdgesChange:D,nodeOrigin:G,getNodes:k}=w.getState();if(!e||!S.current||!A)return;w.setState({userSelectionActive:!0,nodesSelectionActive:!1});const L=mi(Z,S.current),oe=A.startX??0,$=A.startY??0,Y={...A,x:L.x<oe?L.x:oe,y:L.y<$?L.y:$,width:Math.abs(L.x-oe),height:Math.abs(L.y-$)},ee=k(),se=IE(H,Y,ne,n===Jo.Partial,!0,G),ae=ME(se,U).map(ge=>ge.id),pe=se.map(ge=>ge.id);if(C.current!==pe.length){C.current=pe.length;const ge=qs(ee,pe);ge.length&&(Q==null||Q(ge))}if(_.current!==ae.length){_.current=ae.length;const ge=qs(U,ae);ge.length&&(D==null||D(ge))}w.setState({userSelectionRect:Y})},P=Z=>{if(Z.button!==0)return;const{userSelectionRect:A}=w.getState();!b&&A&&Z.target===y.current&&(M==null||M(Z)),w.setState({nodesSelectionActive:C.current>0}),j(),o==null||o(Z)},B=Z=>{b&&(w.setState({nodesSelectionActive:C.current>0}),o==null||o(Z)),j()},J=E&&(e||b);return le.createElement("div",{className:Ft(["react-flow__pane",{dragging:N,selection:e}]),onClick:J?void 0:td(M,y),onContextMenu:td(O,y),onWheel:td(q,y),onMouseEnter:J?void 0:f,onMouseDown:J?F:void 0,onMouseMove:J?R:p,onMouseUp:J?P:void 0,onMouseLeave:J?B:h,ref:y,style:dv},g,le.createElement(KI,null))});XE.displayName="Pane";function QE(e,n){const r=e.parentNode||e.parentId;if(!r)return!1;const s=n.get(r);return s?s.selected?!0:QE(s,n):!1}function Fw(e,n,r){let s=e;do{if(s!=null&&s.matches(n))return!0;if(s===r.current)return!1;s=s.parentElement}while(s);return!1}function ZI(e,n,r,s){return Array.from(e.values()).filter(o=>(o.selected||o.id===s)&&(!o.parentNode||o.parentId||!QE(o,e))&&(o.draggable||n&&typeof o.draggable>"u")).map(o=>{var l,u;return{id:o.id,position:o.position||{x:0,y:0},positionAbsolute:o.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((l=o.positionAbsolute)==null?void 0:l.x)??0),y:r.y-(((u=o.positionAbsolute)==null?void 0:u.y)??0)},delta:{x:0,y:0},extent:o.extent,parentNode:o.parentNode||o.parentId,parentId:o.parentNode||o.parentId,width:o.width,height:o.height,expandParent:o.expandParent}})}function JI(e,n){return!n||n==="parent"?n:[n[0],[n[1][0]-(e.width||0),n[1][1]-(e.height||0)]]}function ZE(e,n,r,s,o=[0,0],l){const u=JI(e,e.extent||s);let c=u;const f=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(f&&e.width&&e.height){const g=r.get(f),{x:y,y:w}=Yi(g,o).positionAbsolute;c=g&&Pn(y)&&Pn(w)&&Pn(g.width)&&Pn(g.height)?[[y+e.width*o[0],w+e.height*o[1]],[y+g.width-e.width+e.width*o[0],w+g.height-e.height+e.height*o[1]]]:c}else l==null||l("005",Or.error005()),c=u;else if(e.extent&&f&&e.extent!=="parent"){const g=r.get(f),{x:y,y:w}=Yi(g,o).positionAbsolute;c=[[e.extent[0][0]+y,e.extent[0][1]+w],[e.extent[1][0]+y,e.extent[1][1]+w]]}let p={x:0,y:0};if(f){const g=r.get(f);p=Yi(g,o).positionAbsolute}const h=c&&c!=="parent"?iv(n,c):n;return{position:{x:h.x-p.x,y:h.y-p.y},positionAbsolute:h}}function nd({nodeId:e,dragItems:n,nodeInternals:r}){const s=n.map(o=>({...r.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?s.find(o=>o.id===e):s[0],s]}const zw=(e,n,r,s)=>{const o=n.querySelectorAll(e);if(!o||!o.length)return null;const l=Array.from(o),u=n.getBoundingClientRect(),c={x:u.width*s[0],y:u.height*s[1]};return l.map(f=>{const p=f.getBoundingClientRect();return{id:f.getAttribute("data-handleid"),position:f.getAttribute("data-handlepos"),x:(p.left-u.left-c.x)/r,y:(p.top-u.top-c.y)/r,...rv(f)}})};function $o(e,n,r){return r===void 0?r:s=>{const o=n().nodeInternals.get(e);o&&r(s,{...o})}}function Fg({id:e,store:n,unselect:r=!1,nodeRef:s}){const{addSelectedNodes:o,unselectNodesAndEdges:l,multiSelectionActive:u,nodeInternals:c,onError:f}=n.getState(),p=c.get(e);if(!p){f==null||f("012",Or.error012(e));return}n.setState({nodesSelectionActive:!1}),p.selected?(r||p.selected&&u)&&(l({nodes:[p],edges:[]}),requestAnimationFrame(()=>{var h;return(h=s==null?void 0:s.current)==null?void 0:h.blur()})):o([e])}function eM(){const e=jt();return I.useCallback(({sourceEvent:r})=>{const{transform:s,snapGrid:o,snapToGrid:l}=e.getState(),u=r.touches?r.touches[0].clientX:r.clientX,c=r.touches?r.touches[0].clientY:r.clientY,f={x:(u-s[0])/s[2],y:(c-s[1])/s[2]};return{xSnapped:l?o[0]*Math.round(f.x/o[0]):f.x,ySnapped:l?o[1]*Math.round(f.y/o[1]):f.y,...f}},[])}function rd(e){return(n,r,s)=>e==null?void 0:e(n,s)}function JE({nodeRef:e,disabled:n=!1,noDragClassName:r,handleSelector:s,nodeId:o,isSelectable:l,selectNodesOnDrag:u}){const c=jt(),[f,p]=I.useState(!1),h=I.useRef([]),g=I.useRef({x:null,y:null}),y=I.useRef(0),w=I.useRef(null),C=I.useRef({x:0,y:0}),_=I.useRef(null),S=I.useRef(!1),b=I.useRef(!1),E=I.useRef(!1),N=eM();return I.useEffect(()=>{if(e!=null&&e.current){const j=Mn(e.current),M=({x:F,y:R})=>{const{nodeInternals:P,onNodeDrag:B,onSelectionDrag:J,updateNodePositions:Z,nodeExtent:A,snapGrid:H,snapToGrid:U,nodeOrigin:ne,onError:Q}=c.getState();g.current={x:F,y:R};let D=!1,G={x:0,y:0,x2:0,y2:0};if(h.current.length>1&&A){const L=Xl(h.current,ne);G=Zo(L)}if(h.current=h.current.map(L=>{const oe={x:F-L.distance.x,y:R-L.distance.y};U&&(oe.x=H[0]*Math.round(oe.x/H[0]),oe.y=H[1]*Math.round(oe.y/H[1]));const $=[[A[0][0],A[0][1]],[A[1][0],A[1][1]]];h.current.length>1&&A&&!L.extent&&($[0][0]=L.positionAbsolute.x-G.x+A[0][0],$[1][0]=L.positionAbsolute.x+(L.width??0)-G.x2+A[1][0],$[0][1]=L.positionAbsolute.y-G.y+A[0][1],$[1][1]=L.positionAbsolute.y+(L.height??0)-G.y2+A[1][1]);const Y=ZE(L,oe,P,$,ne,Q);return D=D||L.position.x!==Y.position.x||L.position.y!==Y.position.y,L.position=Y.position,L.positionAbsolute=Y.positionAbsolute,L}),!D)return;Z(h.current,!0,!0),p(!0);const k=o?B:rd(J);if(k&&_.current){const[L,oe]=nd({nodeId:o,dragItems:h.current,nodeInternals:P});k(_.current,L,oe)}},O=()=>{if(!w.current)return;const[F,R]=_E(C.current,w.current);if(F!==0||R!==0){const{transform:P,panBy:B}=c.getState();g.current.x=(g.current.x??0)-F/P[2],g.current.y=(g.current.y??0)-R/P[2],B({x:F,y:R})&&M(g.current)}y.current=requestAnimationFrame(O)},q=F=>{var ne;const{nodeInternals:R,multiSelectionActive:P,nodesDraggable:B,unselectNodesAndEdges:J,onNodeDragStart:Z,onSelectionDragStart:A}=c.getState();b.current=!0;const H=o?Z:rd(A);(!u||!l)&&!P&&o&&((ne=R.get(o))!=null&&ne.selected||J()),o&&l&&u&&Fg({id:o,store:c,nodeRef:e});const U=N(F);if(g.current=U,h.current=ZI(R,B,U,o),H&&h.current){const[Q,D]=nd({nodeId:o,dragItems:h.current,nodeInternals:R});H(F.sourceEvent,Q,D)}};if(n)j.on(".drag",null);else{const F=u2().on("start",R=>{const{domNode:P,nodeDragThreshold:B}=c.getState();B===0&&q(R),E.current=!1;const J=N(R);g.current=J,w.current=(P==null?void 0:P.getBoundingClientRect())||null,C.current=mi(R.sourceEvent,w.current)}).on("drag",R=>{var Z,A;const P=N(R),{autoPanOnNodeDrag:B,nodeDragThreshold:J}=c.getState();if(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1&&(E.current=!0),!E.current){if(!S.current&&b.current&&B&&(S.current=!0,O()),!b.current){const H=P.xSnapped-(((Z=g==null?void 0:g.current)==null?void 0:Z.x)??0),U=P.ySnapped-(((A=g==null?void 0:g.current)==null?void 0:A.y)??0);Math.sqrt(H*H+U*U)>J&&q(R)}(g.current.x!==P.xSnapped||g.current.y!==P.ySnapped)&&h.current&&b.current&&(_.current=R.sourceEvent,C.current=mi(R.sourceEvent,w.current),M(P))}}).on("end",R=>{if(!(!b.current||E.current)&&(p(!1),S.current=!1,b.current=!1,cancelAnimationFrame(y.current),h.current)){const{updateNodePositions:P,nodeInternals:B,onNodeDragStop:J,onSelectionDragStop:Z}=c.getState(),A=o?J:rd(Z);if(P(h.current,!1,!1),A){const[H,U]=nd({nodeId:o,dragItems:h.current,nodeInternals:B});A(R.sourceEvent,H,U)}}}).filter(R=>{const P=R.target;return!R.button&&(!r||!Fw(P,`.${r}`,e))&&(!s||Fw(P,s,e))});return j.call(F),()=>{j.on(".drag",null)}}}},[e,n,r,s,l,c,o,u,N]),f}function eN(){const e=jt();return I.useCallback(r=>{const{nodeInternals:s,nodeExtent:o,updateNodePositions:l,getNodes:u,snapToGrid:c,snapGrid:f,onError:p,nodesDraggable:h}=e.getState(),g=u().filter(E=>E.selected&&(E.draggable||h&&typeof E.draggable>"u")),y=c?f[0]:5,w=c?f[1]:5,C=r.isShiftPressed?4:1,_=r.x*y*C,S=r.y*w*C,b=g.map(E=>{if(E.positionAbsolute){const N={x:E.positionAbsolute.x+_,y:E.positionAbsolute.y+S};c&&(N.x=f[0]*Math.round(N.x/f[0]),N.y=f[1]*Math.round(N.y/f[1]));const{positionAbsolute:j,position:M}=ZE(E,N,s,o,void 0,p);E.position=M,E.positionAbsolute=j}return E});l(b,!0,!1)},[])}const Fs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var Do=e=>{const n=({id:r,type:s,data:o,xPos:l,yPos:u,xPosOrigin:c,yPosOrigin:f,selected:p,onClick:h,onMouseEnter:g,onMouseMove:y,onMouseLeave:w,onContextMenu:C,onDoubleClick:_,style:S,className:b,isDraggable:E,isSelectable:N,isConnectable:j,isFocusable:M,selectNodesOnDrag:O,sourcePosition:q,targetPosition:F,hidden:R,resizeObserver:P,dragHandle:B,zIndex:J,isParent:Z,noDragClassName:A,noPanClassName:H,initialized:U,disableKeyboardA11y:ne,ariaLabel:Q,rfId:D,hasHandleBounds:G})=>{const k=jt(),L=I.useRef(null),oe=I.useRef(null),$=I.useRef(q),Y=I.useRef(F),ee=I.useRef(s),se=N||E||h||g||y||w,ae=eN(),pe=$o(r,k.getState,g),ge=$o(r,k.getState,y),Ae=$o(r,k.getState,w),Oe=$o(r,k.getState,C),Me=$o(r,k.getState,_),Pe=ve=>{const{nodeDragThreshold:ye}=k.getState();if(N&&(!O||!E||ye>0)&&Fg({id:r,store:k,nodeRef:L}),h){const Ge=k.getState().nodeInternals.get(r);Ge&&h(ve,{...Ge})}},ke=ve=>{if(!Og(ve)&&!ne)if(EE.includes(ve.key)&&N){const ye=ve.key==="Escape";Fg({id:r,store:k,unselect:ye,nodeRef:L})}else E&&p&&Object.prototype.hasOwnProperty.call(Fs,ve.key)&&(k.setState({ariaLiveMessage:`Moved selected node ${ve.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~l}, y: ${~~u}`}),ae({x:Fs[ve.key].x,y:Fs[ve.key].y,isShiftPressed:ve.shiftKey}))};I.useEffect(()=>()=>{oe.current&&(P==null||P.unobserve(oe.current),oe.current=null)},[]),I.useEffect(()=>{if(L.current&&!R){const ve=L.current;(!U||!G||oe.current!==ve)&&(oe.current&&(P==null||P.unobserve(oe.current)),P==null||P.observe(ve),oe.current=ve)}},[R,U,G]),I.useEffect(()=>{const ve=ee.current!==s,ye=$.current!==q,Ge=Y.current!==F;L.current&&(ve||ye||Ge)&&(ve&&(ee.current=s),ye&&($.current=q),Ge&&(Y.current=F),k.getState().updateNodeDimensions([{id:r,nodeElement:L.current,forceUpdate:!0}]))},[r,s,q,F]);const We=JE({nodeRef:L,disabled:R||!E,noDragClassName:A,handleSelector:B,nodeId:r,isSelectable:N,selectNodesOnDrag:O});return R?null:le.createElement("div",{className:Ft(["react-flow__node",`react-flow__node-${s}`,{[H]:E},b,{selected:p,selectable:N,parent:Z,dragging:We}]),ref:L,style:{zIndex:J,transform:`translate(${c}px,${f}px)`,pointerEvents:se?"all":"none",visibility:U?"visible":"hidden",...S},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:pe,onMouseMove:ge,onMouseLeave:Ae,onContextMenu:Oe,onClick:Pe,onDoubleClick:Me,onKeyDown:M?ke:void 0,tabIndex:M?0:void 0,role:M?"button":void 0,"aria-describedby":ne?void 0:`${VE}-${D}`,"aria-label":Q},le.createElement(hI,{value:r},le.createElement(e,{id:r,data:o,type:s,xPos:l,yPos:u,selected:p,isConnectable:j,sourcePosition:q,targetPosition:F,dragging:We,dragHandle:B,zIndex:J})))};return n.displayName="NodeWrapper",I.memo(n)};const tM=e=>{const n=e.getNodes().filter(r=>r.selected);return{...Xl(n,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function nM({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const s=jt(),{width:o,height:l,x:u,y:c,transformString:f,userSelectionActive:p}=Xe(tM,Ct),h=eN(),g=I.useRef(null);if(I.useEffect(()=>{var C;r||(C=g.current)==null||C.focus({preventScroll:!0})},[r]),JE({nodeRef:g}),p||!o||!l)return null;const y=e?C=>{const _=s.getState().getNodes().filter(S=>S.selected);e(C,_)}:void 0,w=C=>{Object.prototype.hasOwnProperty.call(Fs,C.key)&&h({x:Fs[C.key].x,y:Fs[C.key].y,isShiftPressed:C.shiftKey})};return le.createElement("div",{className:Ft(["react-flow__nodesselection","react-flow__container",n]),style:{transform:f}},le.createElement("div",{ref:g,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:r?void 0:-1,onKeyDown:r?void 0:w,style:{width:o,height:l,top:c,left:u}}))}var rM=I.memo(nM);const iM=e=>e.nodesSelectionActive,tN=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,deleteKeyCode:c,onMove:f,onMoveStart:p,onMoveEnd:h,selectionKeyCode:g,selectionOnDrag:y,selectionMode:w,onSelectionStart:C,onSelectionEnd:_,multiSelectionKeyCode:S,panActivationKeyCode:b,zoomActivationKeyCode:E,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:M,panOnScroll:O,panOnScrollSpeed:q,panOnScrollMode:F,zoomOnDoubleClick:R,panOnDrag:P,defaultViewport:B,translateExtent:J,minZoom:Z,maxZoom:A,preventScrolling:H,onSelectionContextMenu:U,noWheelClassName:ne,noPanClassName:Q,disableKeyboardA11y:D})=>{const G=Xe(iM),k=ea(g),L=ea(b),oe=L||P,$=L||O,Y=k||y&&oe!==!0;return BI({deleteKeyCode:c,multiSelectionKeyCode:S}),le.createElement(WI,{onMove:f,onMoveStart:p,onMoveEnd:h,onPaneContextMenu:l,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:M,panOnScroll:$,panOnScrollSpeed:q,panOnScrollMode:F,zoomOnDoubleClick:R,panOnDrag:!k&&oe,defaultViewport:B,translateExtent:J,minZoom:Z,maxZoom:A,zoomActivationKeyCode:E,preventScrolling:H,noWheelClassName:ne,noPanClassName:Q},le.createElement(XE,{onSelectionStart:C,onSelectionEnd:_,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,panOnDrag:oe,isSelecting:!!Y,selectionMode:w},e,G&&le.createElement(rM,{onSelectionContextMenu:U,noPanClassName:Q,disableKeyboardA11y:D})))};tN.displayName="FlowRenderer";var sM=I.memo(tN);function oM(e){return Xe(I.useCallback(r=>e?IE(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function aM(e){const n={input:Do(e.input||zE),default:Do(e.default||Dg),output:Do(e.output||UE),group:Do(e.group||cv)},r={},s=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,l)=>(o[l]=Do(e[l]||Dg),o),r);return{...n,...s}}const lM=({x:e,y:n,width:r,height:s,origin:o})=>!r||!s?{x:e,y:n}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:n}:{x:e-r*o[0],y:n-s*o[1]},uM=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),nN=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:s,elementsSelectable:o,updateNodeDimensions:l,onError:u}=Xe(uM,Ct),c=oM(e.onlyRenderVisibleElements),f=I.useRef(),p=I.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const h=new ResizeObserver(g=>{const y=g.map(w=>({id:w.target.getAttribute("data-id"),nodeElement:w.target,forceUpdate:!0}));l(y)});return f.current=h,h},[]);return I.useEffect(()=>()=>{var h;(h=f==null?void 0:f.current)==null||h.disconnect()},[]),le.createElement("div",{className:"react-flow__nodes",style:dv},c.map(h=>{var M,O,q;let g=h.type||"default";e.nodeTypes[g]||(u==null||u("003",Or.error003(g)),g="default");const y=e.nodeTypes[g]||e.nodeTypes.default,w=!!(h.draggable||n&&typeof h.draggable>"u"),C=!!(h.selectable||o&&typeof h.selectable>"u"),_=!!(h.connectable||r&&typeof h.connectable>"u"),S=!!(h.focusable||s&&typeof h.focusable>"u"),b=e.nodeExtent?iv(h.positionAbsolute,e.nodeExtent):h.positionAbsolute,E=(b==null?void 0:b.x)??0,N=(b==null?void 0:b.y)??0,j=lM({x:E,y:N,width:h.width??0,height:h.height??0,origin:e.nodeOrigin});return le.createElement(y,{key:h.id,id:h.id,className:h.className,style:h.style,type:g,data:h.data,sourcePosition:h.sourcePosition||Ce.Bottom,targetPosition:h.targetPosition||Ce.Top,hidden:h.hidden,xPos:E,yPos:N,xPosOrigin:j.x,yPosOrigin:j.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!h.selected,isDraggable:w,isSelectable:C,isConnectable:_,isFocusable:S,resizeObserver:p,dragHandle:h.dragHandle,zIndex:((M=h[ht])==null?void 0:M.z)??0,isParent:!!((O=h[ht])!=null&&O.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!h.width&&!!h.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:h.ariaLabel,hasHandleBounds:!!((q=h[ht])!=null&&q.handleBounds)})}))};nN.displayName="NodeRenderer";var cM=I.memo(nN);const dM=(e,n,r)=>r===Ce.Left?e-n:r===Ce.Right?e+n:e,fM=(e,n,r)=>r===Ce.Top?e-n:r===Ce.Bottom?e+n:e,Bw="react-flow__edgeupdater",Uw=({position:e,centerX:n,centerY:r,radius:s=10,onMouseDown:o,onMouseEnter:l,onMouseOut:u,type:c})=>le.createElement("circle",{onMouseDown:o,onMouseEnter:l,onMouseOut:u,className:Ft([Bw,`${Bw}-${c}`]),cx:dM(n,s,e),cy:fM(r,s,e),r:s,stroke:"transparent",fill:"transparent"}),hM=()=>!0;var Ms=e=>{const n=({id:r,className:s,type:o,data:l,onClick:u,onEdgeDoubleClick:c,selected:f,animated:p,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:w,labelBgPadding:C,labelBgBorderRadius:_,style:S,source:b,target:E,sourceX:N,sourceY:j,targetX:M,targetY:O,sourcePosition:q,targetPosition:F,elementsSelectable:R,hidden:P,sourceHandleId:B,targetHandleId:J,onContextMenu:Z,onMouseEnter:A,onMouseMove:H,onMouseLeave:U,reconnectRadius:ne,onReconnect:Q,onReconnectStart:D,onReconnectEnd:G,markerEnd:k,markerStart:L,rfId:oe,ariaLabel:$,isFocusable:Y,isReconnectable:ee,pathOptions:se,interactionWidth:ae,disableKeyboardA11y:pe})=>{const ge=I.useRef(null),[Ae,Oe]=I.useState(!1),[Me,Pe]=I.useState(!1),ke=jt(),We=I.useMemo(()=>`url('#${Lg(L,oe)}')`,[L,oe]),ve=I.useMemo(()=>`url('#${Lg(k,oe)}')`,[k,oe]);if(P)return null;const ye=Je=>{var zt;const{edges:dt,addSelectedEdges:gt,unselectNodesAndEdges:yt,multiSelectionActive:Gt}=ke.getState(),Pt=dt.find(Ln=>Ln.id===r);Pt&&(R&&(ke.setState({nodesSelectionActive:!1}),Pt.selected&&Gt?(yt({nodes:[],edges:[Pt]}),(zt=ge.current)==null||zt.blur()):gt([r])),u&&u(Je,Pt))},Ge=Lo(r,ke.getState,c),ut=Lo(r,ke.getState,Z),it=Lo(r,ke.getState,A),Ke=Lo(r,ke.getState,H),$e=Lo(r,ke.getState,U),Qe=(Je,dt)=>{if(Je.button!==0)return;const{edges:gt,isValidConnection:yt}=ke.getState(),Gt=dt?E:b,Pt=(dt?J:B)||null,zt=dt?"target":"source",Ln=yt||hM,er=dt,bn=gt.find(hn=>hn.id===r);Pe(!0),D==null||D(Je,bn,zt);const Bt=hn=>{Pe(!1),G==null||G(hn,bn,zt)};LE({event:Je,handleId:Pt,nodeId:Gt,onConnect:hn=>Q==null?void 0:Q(bn,hn),isTarget:er,getState:ke.getState,setState:ke.setState,isValidConnection:Ln,edgeUpdaterType:zt,onReconnectEnd:Bt})},bt=Je=>Qe(Je,!0),ct=Je=>Qe(Je,!1),pt=()=>Oe(!0),mt=()=>Oe(!1),kt=!R&&!u,He=Je=>{var dt;if(!pe&&EE.includes(Je.key)&&R){const{unselectNodesAndEdges:gt,addSelectedEdges:yt,edges:Gt}=ke.getState();Je.key==="Escape"?((dt=ge.current)==null||dt.blur(),gt({edges:[Gt.find(zt=>zt.id===r)]})):yt([r])}};return le.createElement("g",{className:Ft(["react-flow__edge",`react-flow__edge-${o}`,s,{selected:f,animated:p,inactive:kt,updating:Ae}]),onClick:ye,onDoubleClick:Ge,onContextMenu:ut,onMouseEnter:it,onMouseMove:Ke,onMouseLeave:$e,onKeyDown:Y?He:void 0,tabIndex:Y?0:void 0,role:Y?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":$===null?void 0:$||`Edge from ${b} to ${E}`,"aria-describedby":Y?`${WE}-${oe}`:void 0,ref:ge},!Me&&le.createElement(e,{id:r,source:b,target:E,selected:f,animated:p,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:w,labelBgPadding:C,labelBgBorderRadius:_,data:l,style:S,sourceX:N,sourceY:j,targetX:M,targetY:O,sourcePosition:q,targetPosition:F,sourceHandleId:B,targetHandleId:J,markerStart:We,markerEnd:ve,pathOptions:se,interactionWidth:ae}),ee&&le.createElement(le.Fragment,null,(ee==="source"||ee===!0)&&le.createElement(Uw,{position:q,centerX:N,centerY:j,radius:ne,onMouseDown:bt,onMouseEnter:pt,onMouseOut:mt,type:"source"}),(ee==="target"||ee===!0)&&le.createElement(Uw,{position:F,centerX:M,centerY:O,radius:ne,onMouseDown:ct,onMouseEnter:pt,onMouseOut:mt,type:"target"})))};return n.displayName="EdgeWrapper",I.memo(n)};function pM(e){const n={default:Ms(e.default||Fl),straight:Ms(e.bezier||av),step:Ms(e.step||ov),smoothstep:Ms(e.step||Yl),simplebezier:Ms(e.simplebezier||sv)},r={},s=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,l)=>(o[l]=Ms(e[l]||Fl),o),r);return{...n,...s}}function Hw(e,n,r=null){const s=((r==null?void 0:r.x)||0)+n.x,o=((r==null?void 0:r.y)||0)+n.y,l=(r==null?void 0:r.width)||n.width,u=(r==null?void 0:r.height)||n.height;switch(e){case Ce.Top:return{x:s+l/2,y:o};case Ce.Right:return{x:s+l,y:o+u/2};case Ce.Bottom:return{x:s+l/2,y:o+u};case Ce.Left:return{x:s,y:o+u/2}}}function Vw(e,n){return e?e.length===1||!n?e[0]:n&&e.find(r=>r.id===n)||null:null}const mM=(e,n,r,s,o,l)=>{const u=Hw(r,e,n),c=Hw(l,s,o);return{sourceX:u.x,sourceY:u.y,targetX:c.x,targetY:c.y}};function gM({sourcePos:e,targetPos:n,sourceWidth:r,sourceHeight:s,targetWidth:o,targetHeight:l,width:u,height:c,transform:f}){const p={x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x+r,n.x+o),y2:Math.max(e.y+s,n.y+l)};p.x===p.x2&&(p.x2+=1),p.y===p.y2&&(p.y2+=1);const h=Zo({x:(0-f[0])/f[2],y:(0-f[1])/f[2],width:u/f[2],height:c/f[2]}),g=Math.max(0,Math.min(h.x2,p.x2)-Math.max(h.x,p.x)),y=Math.max(0,Math.min(h.y2,p.y2)-Math.max(h.y,p.y));return Math.ceil(g*y)>0}function Ww(e){var s,o,l,u,c;const n=((s=e==null?void 0:e[ht])==null?void 0:s.handleBounds)||null,r=n&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((o=e==null?void 0:e.positionAbsolute)==null?void 0:o.x)<"u"&&typeof((l=e==null?void 0:e.positionAbsolute)==null?void 0:l.y)<"u";return[{x:((u=e==null?void 0:e.positionAbsolute)==null?void 0:u.x)||0,y:((c=e==null?void 0:e.positionAbsolute)==null?void 0:c.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},n,!!r]}const vM=[{level:0,isMaxLevel:!0,edges:[]}];function yM(e,n,r=!1){let s=-1;const o=e.reduce((u,c)=>{var h,g;const f=Pn(c.zIndex);let p=f?c.zIndex:0;if(r){const y=n.get(c.target),w=n.get(c.source),C=c.selected||(y==null?void 0:y.selected)||(w==null?void 0:w.selected),_=Math.max(((h=w==null?void 0:w[ht])==null?void 0:h.z)||0,((g=y==null?void 0:y[ht])==null?void 0:g.z)||0,1e3);p=(f?c.zIndex:0)+(C?_:0)}return u[p]?u[p].push(c):u[p]=[c],s=p>s?p:s,u},{}),l=Object.entries(o).map(([u,c])=>{const f=+u;return{edges:c,level:f,isMaxLevel:f===s}});return l.length===0?vM:l}function wM(e,n,r){const s=Xe(I.useCallback(o=>e?o.edges.filter(l=>{const u=n.get(l.source),c=n.get(l.target);return(u==null?void 0:u.width)&&(u==null?void 0:u.height)&&(c==null?void 0:c.width)&&(c==null?void 0:c.height)&&gM({sourcePos:u.positionAbsolute||{x:0,y:0},targetPos:c.positionAbsolute||{x:0,y:0},sourceWidth:u.width,sourceHeight:u.height,targetWidth:c.width,targetHeight:c.height,width:o.width,height:o.height,transform:o.transform})}):o.edges,[e,n]));return yM(s,n,r)}const xM=({color:e="none",strokeWidth:n=1})=>le.createElement("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),_M=({color:e="none",strokeWidth:n=1})=>le.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Gw={[Dl.Arrow]:xM,[Dl.ArrowClosed]:_M};function SM(e){const n=jt();return I.useMemo(()=>{var o,l;return Object.prototype.hasOwnProperty.call(Gw,e)?Gw[e]:((l=(o=n.getState()).onError)==null||l.call(o,"009",Or.error009(e)),null)},[e])}const bM=({id:e,type:n,color:r,width:s=12.5,height:o=12.5,markerUnits:l="strokeWidth",strokeWidth:u,orient:c="auto-start-reverse"})=>{const f=SM(n);return f?le.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${s}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:l,orient:c,refX:"0",refY:"0"},le.createElement(f,{color:r,strokeWidth:u})):null},kM=({defaultColor:e,rfId:n})=>r=>{const s=[];return r.edges.reduce((o,l)=>([l.markerStart,l.markerEnd].forEach(u=>{if(u&&typeof u=="object"){const c=Lg(u,n);s.includes(c)||(o.push({id:c,color:u.color||e,...u}),s.push(c))}}),o),[]).sort((o,l)=>o.id.localeCompare(l.id))},rN=({defaultColor:e,rfId:n})=>{const r=Xe(I.useCallback(kM({defaultColor:e,rfId:n}),[e,n]),(s,o)=>!(s.length!==o.length||s.some((l,u)=>l.id!==o[u].id)));return le.createElement("defs",null,r.map(s=>le.createElement(bM,{id:s.id,key:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient})))};rN.displayName="MarkerDefinitions";var EM=I.memo(rN);const NM=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),iN=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:s,edgeTypes:o,noPanClassName:l,onEdgeContextMenu:u,onEdgeMouseEnter:c,onEdgeMouseMove:f,onEdgeMouseLeave:p,onEdgeClick:h,onEdgeDoubleClick:g,onReconnect:y,onReconnectStart:w,onReconnectEnd:C,reconnectRadius:_,children:S,disableKeyboardA11y:b})=>{const{edgesFocusable:E,edgesUpdatable:N,elementsSelectable:j,width:M,height:O,connectionMode:q,nodeInternals:F,onError:R}=Xe(NM,Ct),P=wM(n,F,r);return M?le.createElement(le.Fragment,null,P.map(({level:B,edges:J,isMaxLevel:Z})=>le.createElement("svg",{key:B,style:{zIndex:B},width:M,height:O,className:"react-flow__edges react-flow__container"},Z&&le.createElement(EM,{defaultColor:e,rfId:s}),le.createElement("g",null,J.map(A=>{const[H,U,ne]=Ww(F.get(A.source)),[Q,D,G]=Ww(F.get(A.target));if(!ne||!G)return null;let k=A.type||"default";o[k]||(R==null||R("011",Or.error011(k)),k="default");const L=o[k]||o.default,oe=q===Zi.Strict?D.target:(D.target??[]).concat(D.source??[]),$=Vw(U.source,A.sourceHandle),Y=Vw(oe,A.targetHandle),ee=($==null?void 0:$.position)||Ce.Bottom,se=(Y==null?void 0:Y.position)||Ce.Top,ae=!!(A.focusable||E&&typeof A.focusable>"u"),pe=A.reconnectable||A.updatable,ge=typeof y<"u"&&(pe||N&&typeof pe>"u");if(!$||!Y)return R==null||R("008",Or.error008($,A)),null;const{sourceX:Ae,sourceY:Oe,targetX:Me,targetY:Pe}=mM(H,$,ee,Q,Y,se);return le.createElement(L,{key:A.id,id:A.id,className:Ft([A.className,l]),type:k,data:A.data,selected:!!A.selected,animated:!!A.animated,hidden:!!A.hidden,label:A.label,labelStyle:A.labelStyle,labelShowBg:A.labelShowBg,labelBgStyle:A.labelBgStyle,labelBgPadding:A.labelBgPadding,labelBgBorderRadius:A.labelBgBorderRadius,style:A.style,source:A.source,target:A.target,sourceHandleId:A.sourceHandle,targetHandleId:A.targetHandle,markerEnd:A.markerEnd,markerStart:A.markerStart,sourceX:Ae,sourceY:Oe,targetX:Me,targetY:Pe,sourcePosition:ee,targetPosition:se,elementsSelectable:j,onContextMenu:u,onMouseEnter:c,onMouseMove:f,onMouseLeave:p,onClick:h,onEdgeDoubleClick:g,onReconnect:y,onReconnectStart:w,onReconnectEnd:C,reconnectRadius:_,rfId:s,ariaLabel:A.ariaLabel,isFocusable:ae,isReconnectable:ge,pathOptions:"pathOptions"in A?A.pathOptions:void 0,interactionWidth:A.interactionWidth,disableKeyboardA11y:b})})))),S):null};iN.displayName="EdgeRenderer";var CM=I.memo(iN);const jM=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function RM({children:e}){const n=Xe(jM);return le.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}function TM(e){const n=sa(),r=I.useRef(!1);I.useEffect(()=>{!r.current&&n.viewportInitialized&&e&&(setTimeout(()=>e(n),1),r.current=!0)},[e,n.viewportInitialized])}const AM={[Ce.Left]:Ce.Right,[Ce.Right]:Ce.Left,[Ce.Top]:Ce.Bottom,[Ce.Bottom]:Ce.Top},sN=({nodeId:e,handleType:n,style:r,type:s=pi.Bezier,CustomComponent:o,connectionStatus:l})=>{var O,q,F;const{fromNode:u,handleId:c,toX:f,toY:p,connectionMode:h}=Xe(I.useCallback(R=>({fromNode:R.nodeInternals.get(e),handleId:R.connectionHandleId,toX:(R.connectionPosition.x-R.transform[0])/R.transform[2],toY:(R.connectionPosition.y-R.transform[1])/R.transform[2],connectionMode:R.connectionMode}),[e]),Ct),g=(O=u==null?void 0:u[ht])==null?void 0:O.handleBounds;let y=g==null?void 0:g[n];if(h===Zi.Loose&&(y=y||(g==null?void 0:g[n==="source"?"target":"source"])),!u||!y)return null;const w=c?y.find(R=>R.id===c):y[0],C=w?w.x+w.width/2:(u.width??0)/2,_=w?w.y+w.height/2:u.height??0,S=(((q=u.positionAbsolute)==null?void 0:q.x)??0)+C,b=(((F=u.positionAbsolute)==null?void 0:F.y)??0)+_,E=w==null?void 0:w.position,N=E?AM[E]:null;if(!E||!N)return null;if(o)return le.createElement(o,{connectionLineType:s,connectionLineStyle:r,fromNode:u,fromHandle:w,fromX:S,fromY:b,toX:f,toY:p,fromPosition:E,toPosition:N,connectionStatus:l});let j="";const M={sourceX:S,sourceY:b,sourcePosition:E,targetX:f,targetY:p,targetPosition:N};return s===pi.Bezier?[j]=TE(M):s===pi.Step?[j]=qg({...M,borderRadius:0}):s===pi.SmoothStep?[j]=qg(M):s===pi.SimpleBezier?[j]=RE(M):j=`M${S},${b} ${f},${p}`,le.createElement("path",{d:j,fill:"none",className:"react-flow__connection-path",style:r})};sN.displayName="ConnectionLine";const IM=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function MM({containerStyle:e,style:n,type:r,component:s}){const{nodeId:o,handleType:l,nodesConnectable:u,width:c,height:f,connectionStatus:p}=Xe(IM,Ct);return!(o&&l&&c&&u)?null:le.createElement("svg",{style:e,width:c,height:f,className:"react-flow__edges react-flow__connectionline react-flow__container"},le.createElement("g",{className:Ft(["react-flow__connection",p])},le.createElement(sN,{nodeId:o,handleType:l,style:n,type:r,CustomComponent:s,connectionStatus:p})))}function Kw(e,n){return I.useRef(null),jt(),I.useMemo(()=>n(e),[e])}const oN=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:s,onMoveEnd:o,onInit:l,onNodeClick:u,onEdgeClick:c,onNodeDoubleClick:f,onEdgeDoubleClick:p,onNodeMouseEnter:h,onNodeMouseMove:g,onNodeMouseLeave:y,onNodeContextMenu:w,onSelectionContextMenu:C,onSelectionStart:_,onSelectionEnd:S,connectionLineType:b,connectionLineStyle:E,connectionLineComponent:N,connectionLineContainerStyle:j,selectionKeyCode:M,selectionOnDrag:O,selectionMode:q,multiSelectionKeyCode:F,panActivationKeyCode:R,zoomActivationKeyCode:P,deleteKeyCode:B,onlyRenderVisibleElements:J,elementsSelectable:Z,selectNodesOnDrag:A,defaultViewport:H,translateExtent:U,minZoom:ne,maxZoom:Q,preventScrolling:D,defaultMarkerColor:G,zoomOnScroll:k,zoomOnPinch:L,panOnScroll:oe,panOnScrollSpeed:$,panOnScrollMode:Y,zoomOnDoubleClick:ee,panOnDrag:se,onPaneClick:ae,onPaneMouseEnter:pe,onPaneMouseMove:ge,onPaneMouseLeave:Ae,onPaneScroll:Oe,onPaneContextMenu:Me,onEdgeContextMenu:Pe,onEdgeMouseEnter:ke,onEdgeMouseMove:We,onEdgeMouseLeave:ve,onReconnect:ye,onReconnectStart:Ge,onReconnectEnd:ut,reconnectRadius:it,noDragClassName:Ke,noWheelClassName:$e,noPanClassName:Qe,elevateEdgesOnSelect:bt,disableKeyboardA11y:ct,nodeOrigin:pt,nodeExtent:mt,rfId:kt})=>{const He=Kw(e,aM),Je=Kw(n,pM);return TM(l),le.createElement(sM,{onPaneClick:ae,onPaneMouseEnter:pe,onPaneMouseMove:ge,onPaneMouseLeave:Ae,onPaneContextMenu:Me,onPaneScroll:Oe,deleteKeyCode:B,selectionKeyCode:M,selectionOnDrag:O,selectionMode:q,onSelectionStart:_,onSelectionEnd:S,multiSelectionKeyCode:F,panActivationKeyCode:R,zoomActivationKeyCode:P,elementsSelectable:Z,onMove:r,onMoveStart:s,onMoveEnd:o,zoomOnScroll:k,zoomOnPinch:L,zoomOnDoubleClick:ee,panOnScroll:oe,panOnScrollSpeed:$,panOnScrollMode:Y,panOnDrag:se,defaultViewport:H,translateExtent:U,minZoom:ne,maxZoom:Q,onSelectionContextMenu:C,preventScrolling:D,noDragClassName:Ke,noWheelClassName:$e,noPanClassName:Qe,disableKeyboardA11y:ct},le.createElement(RM,null,le.createElement(CM,{edgeTypes:Je,onEdgeClick:c,onEdgeDoubleClick:p,onlyRenderVisibleElements:J,onEdgeContextMenu:Pe,onEdgeMouseEnter:ke,onEdgeMouseMove:We,onEdgeMouseLeave:ve,onReconnect:ye,onReconnectStart:Ge,onReconnectEnd:ut,reconnectRadius:it,defaultMarkerColor:G,noPanClassName:Qe,elevateEdgesOnSelect:!!bt,disableKeyboardA11y:ct,rfId:kt},le.createElement(MM,{style:E,type:b,component:N,containerStyle:j})),le.createElement("div",{className:"react-flow__edgelabel-renderer"}),le.createElement(cM,{nodeTypes:He,onNodeClick:u,onNodeDoubleClick:f,onNodeMouseEnter:h,onNodeMouseMove:g,onNodeMouseLeave:y,onNodeContextMenu:w,selectNodesOnDrag:A,onlyRenderVisibleElements:J,noPanClassName:Qe,noDragClassName:Ke,disableKeyboardA11y:ct,nodeOrigin:pt,nodeExtent:mt,rfId:kt})))};oN.displayName="GraphView";var PM=I.memo(oN);const zg=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],di={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:zg,nodeExtent:zg,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Zi.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:aI,isValidConnection:void 0},OM=()=>_R((e,n)=>({...di,setNodes:r=>{const{nodeInternals:s,nodeOrigin:o,elevateNodesOnSelect:l}=n();e({nodeInternals:ed(r,s,o,l)})},getNodes:()=>Array.from(n().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:s={}}=n();e({edges:r.map(o=>({...s,...o}))})},setDefaultNodesAndEdges:(r,s)=>{const o=typeof r<"u",l=typeof s<"u",u=o?ed(r,new Map,n().nodeOrigin,n().elevateNodesOnSelect):new Map;e({nodeInternals:u,edges:l?s:[],hasDefaultNodes:o,hasDefaultEdges:l})},updateNodeDimensions:r=>{const{onNodesChange:s,nodeInternals:o,fitViewOnInit:l,fitViewOnInitDone:u,fitViewOnInitOptions:c,domNode:f,nodeOrigin:p}=n(),h=f==null?void 0:f.querySelector(".react-flow__viewport");if(!h)return;const g=window.getComputedStyle(h),{m22:y}=new window.DOMMatrixReadOnly(g.transform),w=r.reduce((_,S)=>{const b=o.get(S.id);if(b!=null&&b.hidden)o.set(b.id,{...b,[ht]:{...b[ht],handleBounds:void 0}});else if(b){const E=rv(S.nodeElement);!!(E.width&&E.height&&(b.width!==E.width||b.height!==E.height||S.forceUpdate))&&(o.set(b.id,{...b,[ht]:{...b[ht],handleBounds:{source:zw(".source",S.nodeElement,y,p),target:zw(".target",S.nodeElement,y,p)}},...E}),_.push({id:b.id,type:"dimensions",dimensions:E}))}return _},[]);KE(o,p);const C=u||l&&!u&&YE(n,{initial:!0,...c});e({nodeInternals:new Map(o),fitViewOnInitDone:C}),(w==null?void 0:w.length)>0&&(s==null||s(w))},updateNodePositions:(r,s=!0,o=!1)=>{const{triggerNodeChanges:l}=n(),u=r.map(c=>{const f={id:c.id,type:"position",dragging:o};return s&&(f.positionAbsolute=c.positionAbsolute,f.position=c.position),f});l(u)},triggerNodeChanges:r=>{const{onNodesChange:s,nodeInternals:o,hasDefaultNodes:l,nodeOrigin:u,getNodes:c,elevateNodesOnSelect:f}=n();if(r!=null&&r.length){if(l){const p=XI(r,c()),h=ed(p,o,u,f);e({nodeInternals:h})}s==null||s(r)}},addSelectedNodes:r=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=r.map(f=>hi(f,!0)):(u=qs(l(),r),c=qs(o,[])),xl({changedNodes:u,changedEdges:c,get:n,set:e})},addSelectedEdges:r=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=r.map(f=>hi(f,!0)):(u=qs(o,r),c=qs(l(),[])),xl({changedNodes:c,changedEdges:u,get:n,set:e})},unselectNodesAndEdges:({nodes:r,edges:s}={})=>{const{edges:o,getNodes:l}=n(),u=r||l(),c=s||o,f=u.map(h=>(h.selected=!1,hi(h.id,!1))),p=c.map(h=>hi(h.id,!1));xl({changedNodes:f,changedEdges:p,get:n,set:e})},setMinZoom:r=>{const{d3Zoom:s,maxZoom:o}=n();s==null||s.scaleExtent([r,o]),e({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:s,minZoom:o}=n();s==null||s.scaleExtent([o,r]),e({maxZoom:r})},setTranslateExtent:r=>{var s;(s=n().d3Zoom)==null||s.translateExtent(r),e({translateExtent:r})},resetSelectedElements:()=>{const{edges:r,getNodes:s}=n(),l=s().filter(c=>c.selected).map(c=>hi(c.id,!1)),u=r.filter(c=>c.selected).map(c=>hi(c.id,!1));xl({changedNodes:l,changedEdges:u,get:n,set:e})},setNodeExtent:r=>{const{nodeInternals:s}=n();s.forEach(o=>{o.positionAbsolute=iv(o.position,r)}),e({nodeExtent:r,nodeInternals:new Map(s)})},panBy:r=>{const{transform:s,width:o,height:l,d3Zoom:u,d3Selection:c,translateExtent:f}=n();if(!u||!c||!r.x&&!r.y)return!1;const p=Mr.translate(s[0]+r.x,s[1]+r.y).scale(s[2]),h=[[0,0],[o,l]],g=u==null?void 0:u.constrain()(p,h,f);return u.transform(c,g),s[0]!==g.x||s[1]!==g.y||s[2]!==g.k},cancelConnection:()=>e({connectionNodeId:di.connectionNodeId,connectionHandleId:di.connectionHandleId,connectionHandleType:di.connectionHandleType,connectionStatus:di.connectionStatus,connectionStartHandle:di.connectionStartHandle,connectionEndHandle:di.connectionEndHandle}),reset:()=>e({...di})}),Object.is),fv=({children:e})=>{const n=I.useRef(null);return n.current||(n.current=OM()),le.createElement(eI,{value:n.current},e)};fv.displayName="ReactFlowProvider";const aN=({children:e})=>I.useContext(Kl)?le.createElement(le.Fragment,null,e):le.createElement(fv,null,e);aN.displayName="ReactFlowWrapper";const qM={input:zE,default:Dg,output:UE,group:cv},LM={default:Fl,straight:av,step:ov,smoothstep:Yl,simplebezier:sv},$M=[0,0],DM=[15,15],FM={x:0,y:0,zoom:1},zM={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},lN=I.forwardRef(({nodes:e,edges:n,defaultNodes:r,defaultEdges:s,className:o,nodeTypes:l=qM,edgeTypes:u=LM,onNodeClick:c,onEdgeClick:f,onInit:p,onMove:h,onMoveStart:g,onMoveEnd:y,onConnect:w,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,onNodeMouseEnter:E,onNodeMouseMove:N,onNodeMouseLeave:j,onNodeContextMenu:M,onNodeDoubleClick:O,onNodeDragStart:q,onNodeDrag:F,onNodeDragStop:R,onNodesDelete:P,onEdgesDelete:B,onSelectionChange:J,onSelectionDragStart:Z,onSelectionDrag:A,onSelectionDragStop:H,onSelectionContextMenu:U,onSelectionStart:ne,onSelectionEnd:Q,connectionMode:D=Zi.Strict,connectionLineType:G=pi.Bezier,connectionLineStyle:k,connectionLineComponent:L,connectionLineContainerStyle:oe,deleteKeyCode:$="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:ee=!1,selectionMode:se=Jo.Full,panActivationKeyCode:ae="Space",multiSelectionKeyCode:pe=$l()?"Meta":"Control",zoomActivationKeyCode:ge=$l()?"Meta":"Control",snapToGrid:Ae=!1,snapGrid:Oe=DM,onlyRenderVisibleElements:Me=!1,selectNodesOnDrag:Pe=!0,nodesDraggable:ke,nodesConnectable:We,nodesFocusable:ve,nodeOrigin:ye=$M,edgesFocusable:Ge,edgesUpdatable:ut,elementsSelectable:it,defaultViewport:Ke=FM,minZoom:$e=.5,maxZoom:Qe=2,translateExtent:bt=zg,preventScrolling:ct=!0,nodeExtent:pt,defaultMarkerColor:mt="#b1b1b7",zoomOnScroll:kt=!0,zoomOnPinch:He=!0,panOnScroll:Je=!1,panOnScrollSpeed:dt=.5,panOnScrollMode:gt=Gi.Free,zoomOnDoubleClick:yt=!0,panOnDrag:Gt=!0,onPaneClick:Pt,onPaneMouseEnter:zt,onPaneMouseMove:Ln,onPaneMouseLeave:er,onPaneScroll:bn,onPaneContextMenu:Bt,children:Jt,onEdgeContextMenu:hn,onEdgeDoubleClick:$r,onEdgeMouseEnter:Rt,onEdgeMouseMove:hr,onEdgeMouseLeave:pr,onEdgeUpdate:pn,onEdgeUpdateStart:wi,onEdgeUpdateEnd:tr,onReconnect:xi,onReconnectStart:mn,onReconnectEnd:rs,reconnectRadius:nr=10,edgeUpdaterRadius:Dr=10,onNodesChange:mr,onEdgesChange:Fr,noDragClassName:Ot="nodrag",noWheelClassName:_i="nowheel",noPanClassName:$n="nopan",fitView:Dn=!1,fitViewOptions:Kt,connectOnClick:zr=!0,attributionPosition:Si,proOptions:bi,defaultEdgeOptions:gr,elevateNodesOnSelect:Br=!0,elevateEdgesOnSelect:kn=!1,disableKeyboardA11y:ki=!1,autoPanOnConnect:is=!0,autoPanOnNodeDrag:et=!0,connectionRadius:Qs=20,isValidConnection:vr,onError:Fn,style:yr,id:ss,nodeDragThreshold:Ei,...wr},en)=>{const Tt=ss||"1";return le.createElement("div",{...wr,style:{...yr,...zM},ref:en,className:Ft(["react-flow",o]),"data-testid":"rf__wrapper",id:ss},le.createElement(aN,null,le.createElement(PM,{onInit:p,onMove:h,onMoveStart:g,onMoveEnd:y,onNodeClick:c,onEdgeClick:f,onNodeMouseEnter:E,onNodeMouseMove:N,onNodeMouseLeave:j,onNodeContextMenu:M,onNodeDoubleClick:O,nodeTypes:l,edgeTypes:u,connectionLineType:G,connectionLineStyle:k,connectionLineComponent:L,connectionLineContainerStyle:oe,selectionKeyCode:Y,selectionOnDrag:ee,selectionMode:se,deleteKeyCode:$,multiSelectionKeyCode:pe,panActivationKeyCode:ae,zoomActivationKeyCode:ge,onlyRenderVisibleElements:Me,selectNodesOnDrag:Pe,defaultViewport:Ke,translateExtent:bt,minZoom:$e,maxZoom:Qe,preventScrolling:ct,zoomOnScroll:kt,zoomOnPinch:He,zoomOnDoubleClick:yt,panOnScroll:Je,panOnScrollSpeed:dt,panOnScrollMode:gt,panOnDrag:Gt,onPaneClick:Pt,onPaneMouseEnter:zt,onPaneMouseMove:Ln,onPaneMouseLeave:er,onPaneScroll:bn,onPaneContextMenu:Bt,onSelectionContextMenu:U,onSelectionStart:ne,onSelectionEnd:Q,onEdgeContextMenu:hn,onEdgeDoubleClick:$r,onEdgeMouseEnter:Rt,onEdgeMouseMove:hr,onEdgeMouseLeave:pr,onReconnect:xi??pn,onReconnectStart:mn??wi,onReconnectEnd:rs??tr,reconnectRadius:nr??Dr,defaultMarkerColor:mt,noDragClassName:Ot,noWheelClassName:_i,noPanClassName:$n,elevateEdgesOnSelect:kn,rfId:Tt,disableKeyboardA11y:ki,nodeOrigin:ye,nodeExtent:pt}),le.createElement(TI,{nodes:e,edges:n,defaultNodes:r,defaultEdges:s,onConnect:w,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,nodesDraggable:ke,nodesConnectable:We,nodesFocusable:ve,edgesFocusable:Ge,edgesUpdatable:ut,elementsSelectable:it,elevateNodesOnSelect:Br,minZoom:$e,maxZoom:Qe,nodeExtent:pt,onNodesChange:mr,onEdgesChange:Fr,snapToGrid:Ae,snapGrid:Oe,connectionMode:D,translateExtent:bt,connectOnClick:zr,defaultEdgeOptions:gr,fitView:Dn,fitViewOptions:Kt,onNodesDelete:P,onEdgesDelete:B,onNodeDragStart:q,onNodeDrag:F,onNodeDragStop:R,onSelectionDrag:A,onSelectionDragStart:Z,onSelectionDragStop:H,noPanClassName:$n,nodeOrigin:ye,rfId:Tt,autoPanOnConnect:is,autoPanOnNodeDrag:et,onError:Fn,connectionRadius:Qs,isValidConnection:vr,nodeDragThreshold:Ei}),le.createElement(jI,{onSelectionChange:J}),Jt,le.createElement(nI,{proOptions:bi,position:Si}),le.createElement(OI,{rfId:Tt,disableKeyboardA11y:ki})))});lN.displayName="ReactFlow";const BM=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function uN(){return Xe(BM,Ct)}const cN=({id:e,x:n,y:r,width:s,height:o,style:l,color:u,strokeColor:c,strokeWidth:f,className:p,borderRadius:h,shapeRendering:g,onClick:y,selected:w})=>{const{background:C,backgroundColor:_}=l||{},S=u||C||_;return le.createElement("rect",{className:Ft(["react-flow__minimap-node",{selected:w},p]),x:n,y:r,rx:h,ry:h,width:s,height:o,fill:S,stroke:c,strokeWidth:f,shapeRendering:g,onClick:y?b=>y(b,e):void 0})};cN.displayName="MiniMapNode";var UM=I.memo(cN);const HM=e=>e.nodeOrigin,VM=e=>e.getNodes().filter(n=>!n.hidden&&n.width&&n.height),id=e=>e instanceof Function?e:()=>e;function WM({nodeStrokeColor:e="transparent",nodeColor:n="#e2e2e2",nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:o=2,nodeComponent:l=UM,onClick:u}){const c=Xe(VM,Ct),f=Xe(HM),p=id(n),h=id(e),g=id(r),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return le.createElement(le.Fragment,null,c.map(w=>{const{x:C,y:_}=Yi(w,f).positionAbsolute;return le.createElement(l,{key:w.id,x:C,y:_,width:w.width,height:w.height,style:w.style,selected:w.selected,className:g(w),color:p(w),borderRadius:s,strokeColor:h(w),strokeWidth:o,shapeRendering:y,onClick:u,id:w.id})}))}var GM=I.memo(WM);const KM=200,YM=150,XM=e=>{const n=e.getNodes(),r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:n.length>0?sI(Xl(n,e.nodeOrigin),r):r,rfId:e.rfId}},QM="react-flow__minimap-desc";function dN({style:e,className:n,nodeStrokeColor:r="transparent",nodeColor:s="#e2e2e2",nodeClassName:o="",nodeBorderRadius:l=5,nodeStrokeWidth:u=2,nodeComponent:c,maskColor:f="rgb(240, 240, 240, 0.6)",maskStrokeColor:p="none",maskStrokeWidth:h=1,position:g="bottom-right",onClick:y,onNodeClick:w,pannable:C=!1,zoomable:_=!1,ariaLabel:S="React Flow mini map",inversePan:b=!1,zoomStep:E=10,offsetScale:N=5}){const j=jt(),M=I.useRef(null),{boundingRect:O,viewBB:q,rfId:F}=Xe(XM,Ct),R=(e==null?void 0:e.width)??KM,P=(e==null?void 0:e.height)??YM,B=O.width/R,J=O.height/P,Z=Math.max(B,J),A=Z*R,H=Z*P,U=N*Z,ne=O.x-(A-O.width)/2-U,Q=O.y-(H-O.height)/2-U,D=A+U*2,G=H+U*2,k=`${QM}-${F}`,L=I.useRef(0);L.current=Z,I.useEffect(()=>{if(M.current){const Y=Mn(M.current),ee=pe=>{const{transform:ge,d3Selection:Ae,d3Zoom:Oe}=j.getState();if(pe.sourceEvent.type!=="wheel"||!Ae||!Oe)return;const Me=-pe.sourceEvent.deltaY*(pe.sourceEvent.deltaMode===1?.05:pe.sourceEvent.deltaMode?1:.002)*E,Pe=ge[2]*Math.pow(2,Me);Oe.scaleTo(Ae,Pe)},se=pe=>{const{transform:ge,d3Selection:Ae,d3Zoom:Oe,translateExtent:Me,width:Pe,height:ke}=j.getState();if(pe.sourceEvent.type!=="mousemove"||!Ae||!Oe)return;const We=L.current*Math.max(1,ge[2])*(b?-1:1),ve={x:ge[0]-pe.sourceEvent.movementX*We,y:ge[1]-pe.sourceEvent.movementY*We},ye=[[0,0],[Pe,ke]],Ge=Mr.translate(ve.x,ve.y).scale(ge[2]),ut=Oe.constrain()(Ge,ye,Me);Oe.transform(Ae,ut)},ae=wE().on("zoom",C?se:null).on("zoom.wheel",_?ee:null);return Y.call(ae),()=>{Y.on("zoom",null)}}},[C,_,b,E]);const oe=y?Y=>{const ee=Kn(Y);y(Y,{x:ee[0],y:ee[1]})}:void 0,$=w?(Y,ee)=>{const se=j.getState().nodeInternals.get(ee);w(Y,se)}:void 0;return le.createElement(nv,{position:g,style:e,className:Ft(["react-flow__minimap",n]),"data-testid":"rf__minimap"},le.createElement("svg",{width:R,height:P,viewBox:`${ne} ${Q} ${D} ${G}`,role:"img","aria-labelledby":k,ref:M,onClick:oe},S&&le.createElement("title",{id:k},S),le.createElement(GM,{onClick:$,nodeColor:s,nodeStrokeColor:r,nodeBorderRadius:l,nodeClassName:o,nodeStrokeWidth:u,nodeComponent:c}),le.createElement("path",{className:"react-flow__minimap-mask",d:`M${ne-U},${Q-U}h${D+U*2}v${G+U*2}h${-D-U*2}z
57
57
  M${q.x},${q.y}h${q.width}v${q.height}h${-q.width}z`,fill:f,fillRule:"evenodd",stroke:p,strokeWidth:h,pointerEvents:"none"})))}dN.displayName="MiniMap";var ZM=I.memo(dN);function JM(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},le.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function eP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},le.createElement("path",{d:"M0 0h32v4.2H0z"}))}function tP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},le.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function nP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},le.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function rP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},le.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const Ls=({children:e,className:n,...r})=>le.createElement("button",{type:"button",className:Ft(["react-flow__controls-button",n]),...r},e);Ls.displayName="ControlButton";const iP=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),fN=({style:e,showZoom:n=!0,showFitView:r=!0,showInteractive:s=!0,fitViewOptions:o,onZoomIn:l,onZoomOut:u,onFitView:c,onInteractiveChange:f,className:p,children:h,position:g="bottom-left"})=>{const y=jt(),[w,C]=I.useState(!1),{isInteractive:_,minZoomReached:S,maxZoomReached:b}=Xe(iP,Ct),{zoomIn:E,zoomOut:N,fitView:j}=sa();if(I.useEffect(()=>{C(!0)},[]),!w)return null;const M=()=>{E(),l==null||l()},O=()=>{N(),u==null||u()},q=()=>{j(o),c==null||c()},F=()=>{y.setState({nodesDraggable:!_,nodesConnectable:!_,elementsSelectable:!_}),f==null||f(!_)};return le.createElement(nv,{className:Ft(["react-flow__controls",p]),position:g,style:e,"data-testid":"rf__controls"},n&&le.createElement(le.Fragment,null,le.createElement(Ls,{onClick:M,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:b},le.createElement(JM,null)),le.createElement(Ls,{onClick:O,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:S},le.createElement(eP,null))),r&&le.createElement(Ls,{className:"react-flow__controls-fitview",onClick:q,title:"fit view","aria-label":"fit view"},le.createElement(tP,null)),s&&le.createElement(Ls,{className:"react-flow__controls-interactive",onClick:F,title:"toggle interactivity","aria-label":"toggle interactivity"},_?le.createElement(rP,null):le.createElement(nP,null)),h)};fN.displayName="Controls";var sP=I.memo(fN),Xn;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Xn||(Xn={}));function oP({color:e,dimensions:n,lineWidth:r}){return le.createElement("path",{stroke:e,strokeWidth:r,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function aP({color:e,radius:n}){return le.createElement("circle",{cx:n,cy:n,r:n,fill:e})}const lP={[Xn.Dots]:"#91919a",[Xn.Lines]:"#eee",[Xn.Cross]:"#e2e2e2"},uP={[Xn.Dots]:1,[Xn.Lines]:1,[Xn.Cross]:6},cP=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function hN({id:e,variant:n=Xn.Dots,gap:r=20,size:s,lineWidth:o=1,offset:l=2,color:u,style:c,className:f}){const p=I.useRef(null),{transform:h,patternId:g}=Xe(cP,Ct),y=u||lP[n],w=s||uP[n],C=n===Xn.Dots,_=n===Xn.Cross,S=Array.isArray(r)?r:[r,r],b=[S[0]*h[2]||1,S[1]*h[2]||1],E=w*h[2],N=_?[E,E]:b,j=C?[E/l,E/l]:[N[0]/l,N[1]/l];return le.createElement("svg",{className:Ft(["react-flow__background",f]),style:{...c,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:p,"data-testid":"rf__background"},le.createElement("pattern",{id:g+e,x:h[0]%b[0],y:h[1]%b[1],width:b[0],height:b[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${j[0]},-${j[1]})`},C?le.createElement(aP,{color:y,radius:E/l}):le.createElement(oP,{dimensions:N,color:y,lineWidth:o})),le.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${g+e})`}))}hN.displayName="Background";var dP=I.memo(hN);function pN(){return{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreateTokens:0}}function mN(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.input_tokens=="number"||typeof r.output_tokens=="number"||typeof r.cache_read_input_tokens=="number"||typeof r.cache_creation_input_tokens=="number")return{inputTokens:Number(r.input_tokens??0),outputTokens:Number(r.output_tokens??0),cacheReadTokens:Number(r.cache_read_input_tokens??0),cacheCreateTokens:Number(r.cache_creation_input_tokens??0)};for(const s of Object.values(r)){const o=mN(s,n+1);if(o)return o}return null}function fP(e,n){e.inputTokens+=n.inputTokens,e.outputTokens+=n.outputTokens,e.cacheReadTokens+=n.cacheReadTokens,e.cacheCreateTokens+=n.cacheCreateTokens}const hP=/^(?:claude[-_]|gpt[-_]|o\d|codex[-_])/i;function gN(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.model=="string"&&hP.test(r.model))return r.model;for(const s of Object.values(r)){const o=gN(s,n+1);if(o)return o}return null}function Bg(){return{agents:new Map,toolIndex:new Map,toolOwner:new Map,activeSubagentStack:new Map,lastSeq:0,totalEvents:0}}function gi(e){if(!e)return;const n=e.replace(/\\/g,"/").split("/").filter(Boolean);return n[n.length-1]}function hv(e,n){return`${e}::${n}`}function zl(e){return e.agent_type??e.subagent_type??"subagent"}function Ug(e){return e.agent_id?e.agent_id:e.parent_tool_use_id?e.parent_tool_use_id:null}function Wo(e,n,r,s){const o=n;let l=e.agents.get(o);return l||(l={id:o,sessionId:n,label:"session",kind:"root",state:"active",startedAt:r,tools:[],prompts:[],toolCount:0,childCount:0,synthetic:s,inFlightTool:null,usage:pN()},e.agents.set(o,l),l)}function vN(e,n,r,s){const o=hv(n,r),l=e.agents.get(o);if(!l)return null;!l.cwd&&s.cwd&&(l.cwd=s.cwd,l.cwdBasename=gi(s.cwd));const u=zl(s);return u&&(l.label==="subagent"||!l.label)&&(l.label=u),l}function Yw(e,n,r){const s=n.session_id??"unknown",o=Ug(n);if(o){const f=vN(e,s,o,n);if(f)return f}const l=e.activeSubagentStack.get(s),u=l&&l.length>0?l[l.length-1]:null;if(u){const f=e.agents.get(hv(s,u));if(f)return!f.cwd&&n.cwd&&(f.cwd=n.cwd,f.cwdBasename=gi(n.cwd)),f}const c=Wo(e,s,r,!1);return c.synthetic&&(c.synthetic=!1,c.startedAt=r),!c.cwd&&n.cwd&&(c.cwd=n.cwd,c.cwdBasename=gi(n.cwd)),c.label==="session"&&n.cwd&&(c.label=gi(n.cwd)??"session"),c}function pP(e,n,r,s,o){const l=hv(n,r),u=Wo(e,n,o,!0);let c=e.agents.get(l);if(c){!c.cwd&&s.cwd&&(c.cwd=s.cwd,c.cwdBasename=gi(s.cwd));const f=zl(s);return f&&(c.label==="subagent"||!c.label)&&(c.label=f),c}return c={id:l,sessionId:n,label:zl(s),kind:"subagent",parentId:u.id,state:"active",startedAt:o,tools:[],prompts:[],cwd:s.cwd,cwdBasename:gi(s.cwd),toolCount:0,childCount:0,inFlightTool:null,usage:pN()},e.agents.set(l,c),u.childCount+=1,c}function mP(e,n,r){const s=e.activeSubagentStack.get(n)??[];s.push(r),e.activeSubagentStack.set(n,s)}function gP(e,n,r){const s=e.activeSubagentStack.get(n);if(s){for(let o=s.length-1;o>=0;o--)if(s[o]===r){s.splice(o,1);break}s.length===0&&e.activeSubagentStack.delete(n)}}function sd(e,n=80){if(e==null)return"";if(typeof e=="string")return e.length>n?e.slice(0,n-1)+"…":e;try{const r=JSON.stringify(e);return r.length>n?r.slice(0,n-1)+"…":r}catch{return String(e)}}function Bo(e){let n=null;for(let r=e.tools.length-1;r>=0;r--){const s=e.tools[r];if(s.endedAt==null){n=s;break}}e.inFlightTool=n}function vP(e,n,r,s){if(e.agents.size<=r)return!1;const o=[];for(const[u,c]of e.agents)c.state==="done"&&c.endedAt!=null&&n-c.endedAt>s&&o.push({id:u,endedAt:c.endedAt});if(o.length===0)return!1;o.sort((u,c)=>u.endedAt-c.endedAt);let l=0;for(const u of o){if(e.agents.size<=r)break;e.agents.delete(u.id),l++}return l>0}function yP(e,n,r,s){const o=new Map;for(const[p,h]of e.agents){let g=o.get(h.sessionId);g||(g={ids:[],endedAt:0,live:!1},o.set(h.sessionId,g)),g.ids.push(p),h.state==="done"&&h.endedAt!=null?g.endedAt=Math.max(g.endedAt,h.endedAt):g.live=!0}const l=[...o.values()].filter(p=>!p.live&&p.endedAt>0&&n-p.endedAt>s).sort((p,h)=>p.endedAt-h.endedAt);let c=[...o.values()].filter(p=>!p.live).length-r;if(c<=0)return!1;let f=!1;for(const p of l){if(c<=0)break;for(const h of p.ids)e.agents.delete(h);c--,f=!0}return f}function wP(e,n,r){let s=!1;for(const o of e.agents.values()){let l=!1;for(const u of o.tools)u.endedAt==null&&n-u.startedAt>r&&(u.endedAt=u.startedAt+r,u.ok=!1,u.errorPreview="stale (no PostToolUse received)",e.toolIndex.delete(u.id),e.toolOwner.delete(u.id),l=!0,s=!0);l&&Bo(o)}return s}function Xw(e,n){if(n.seq<=e.lastSeq)return e;const r=n.payload??{},s=n.receivedAt,o=r.hook_event_name??"Unknown";if(o==="__clear")return{...Bg(),lastSeq:n.seq};e.totalEvents+=1,e.lastSeq=n.seq;const l=r.session_id??"unknown";if(o==="ModelObserved"){const f=typeof r.model=="string"?r.model:null;if(f){const h=e.agents.get(l);h&&(h.model=f)}const p=r.subagentModels;if(p&&typeof p=="object")for(const[h,g]of Object.entries(p)){if(typeof g!="string")continue;const y=`${l}::${h}`,w=e.agents.get(y);w&&(w.model=g)}return e}if(o==="ContextObserved"){const f=r.context??null;if(f){const p=e.agents.get(l);p&&(p.context={msgsUser:Number(f.msgsUser??0),msgsAssistant:Number(f.msgsAssistant??0),toolUses:Number(f.toolUses??0),toolResults:Number(f.toolResults??0),systemReminders:Number(f.systemReminders??0),currentContextTokens:Number(f.currentContextTokens??0),claudeMdFiles:Array.isArray(f.claudeMdFiles)?f.claudeMdFiles:[]})}return e}if(o==="UsageObserved"){const f=r.usage??null;if(f){const p=e.agents.get(l);p&&(p.usage.inputTokens=Number(f.input_tokens??0),p.usage.outputTokens=Number(f.output_tokens??0),p.usage.cacheReadTokens=Number(f.cache_read_input_tokens??f.cached_input_tokens??0),p.usage.cacheCreateTokens=Number(f.cache_creation_input_tokens??0),typeof f.reasoning_output_tokens=="number"&&(p.usage.reasoningOutputTokens=Number(f.reasoning_output_tokens)))}return e}const u=Yw(e,r,s);u.provider||(u.provider=r.provider==="codex"?"codex":"claude"),typeof r.model_context_window=="number"&&r.model_context_window>0&&(u.contextWindow=r.model_context_window);const c=gN(r);switch(c&&(u.model=c),o){case"SessionStart":{const f=Wo(e,l,s,!1);f.synthetic=!1,f.state="active",f.startedAt=f.startedAt||s,!f.cwd&&r.cwd&&(f.cwd=r.cwd,f.cwdBasename=gi(r.cwd)),f.label==="session"&&r.cwd&&(f.label=gi(r.cwd)??"session");break}case"UserPromptSubmit":{for(const g of e.agents.values())g.sessionId===l&&g.kind==="subagent"&&g.state==="done"&&g.exitAt==null&&g.endedAt!=null&&g.endedAt<s&&(g.exitAt=s);const f=Wo(e,l,s,!1);f.state="active",f.endedAt=void 0,f.exitAt=void 0;const p=Yw(e,r,s);p.state="active",p.exitAt=void 0,p.endedAt=void 0;const h=(typeof r.prompt=="string"?r.prompt:typeof r.message=="string"?r.message:"")??"";h&&(p.prompts.push({at:s,text:h}),p.firstPrompt||(p.firstPrompt=sd(h,120)));break}case"PreToolUse":{const f=r.tool_use_id??`${u.id}:${u.toolCount}`,p={id:f,name:r.tool_name??"?",input:r.tool_input,inputPreview:sd(r.tool_input),agentId:u.id,startedAt:s};u.tools.push(p),u.toolCount+=1,u.state="active",e.toolIndex.set(f,p),e.toolOwner.set(f,u.id),Bo(u);break}case"PostToolUse":case"PostToolUseFailure":{const f=r.tool_use_id;if(!f)break;let p=e.toolIndex.get(f),h=!1;if(!p)for(const w of e.agents.values()){const C=w.tools.find(_=>_.id===f);if(C){p=C,h=!0;break}}if(!p)break;p.endedAt=s,p.ok=o==="PostToolUse",p.response=r.tool_response,o==="PostToolUseFailure"?p.errorPreview=sd(r.tool_response):h&&(p.errorPreview=void 0);const g=mN(r.tool_response);g&&(p.usage=g),e.toolIndex.delete(f);const y=e.toolOwner.get(f)??p.agentId;if(e.toolOwner.delete(f),y){const w=e.agents.get(y);w&&(g&&fP(w.usage,g),Bo(w))}break}case"SubagentStart":{const f=Ug(r);if(!f)break;const p=pP(e,l,f,r,s);p.state="active",p.startedAt=p.startedAt||s,p.exitAt=void 0,p.endedAt=void 0;const h=zl(r);h&&(p.label=h),mP(e,l,f);break}case"SubagentStop":{const f=Ug(r);if(!f)break;const p=vN(e,l,f,r);if(!p)break;p.state="done",p.endedAt=s,Bo(p),gP(e,l,f);break}case"Stop":case"SessionEnd":{const f=Wo(e,l,s,!1);f.state="done",f.endedAt=s,Bo(f);break}}return e}function pv(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}const xP=Date.UTC(2026,8,1);function _P(){return Date.now()<xP?{input:2,output:10,cacheRead:.2,cacheWrite:2.5}:{input:3,output:15,cacheRead:.3,cacheWrite:3.75}}const SP=[{match:/^claude[-_](fable|mythos)[-_]5\b/i,rates:{input:10,output:50,cacheRead:1,cacheWrite:12.5}},{match:/^claude[-_]opus[-_]5\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25}},{match:/^claude[-_]sonnet[-_]5\b/i,rates:_P()},{match:/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25}},{match:/^claude[-_]opus[-_]4(?:[-_.]1)?\b/i,rates:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75}},{match:/^claude[-_]sonnet[-_]4[-_.](?:5|6)\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75}},{match:/^claude[-_]sonnet[-_]4\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75}},{match:/^claude[-_]haiku[-_]4[-_.]5\b/i,rates:{input:1,output:5,cacheRead:.1,cacheWrite:1.25}},{match:/^claude[-_]haiku[-_]3[-_.]5\b/i,rates:{input:.8,output:4,cacheRead:.08,cacheWrite:1}},{match:/^gpt[-_]5[-_.]6[-_]cyber/i,rates:{input:12.5,output:75,cacheRead:1.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]6[-_]luna/i,rates:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25}},{match:/^gpt[-_]5[-_.]6[-_]terra/i,rates:{input:2,output:12,cacheRead:.2,cacheWrite:2.5}},{match:/^gpt[-_]5[-_.]6(?:[-_]sol)?\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:6.25}},{match:/^gpt[-_]5[-_.]5[-_]pro/i,rates:{input:30,output:180,cacheRead:30,cacheWrite:0}},{match:/^gpt[-_]5[-_.]5\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]pro/i,rates:{input:30,output:180,cacheRead:3,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]mini/i,rates:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]nano/i,rates:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4\b/i,rates:{input:2.5,output:15,cacheRead:.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]3[-_]codex/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2[-_]pro/i,rates:{input:21,output:168,cacheRead:21,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2\b/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^codex[-_]mini/i,rates:{input:1.5,output:6,cacheRead:.375,cacheWrite:0}},{match:/^o1[-_]pro/i,rates:{input:150,output:600,cacheRead:150,cacheWrite:0}},{match:/^o1\b/i,rates:{input:15,output:60,cacheRead:7.5,cacheWrite:0}},{match:/^o3[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0}},{match:/^o3[-_]pro/i,rates:{input:20,output:80,cacheRead:20,cacheWrite:0}},{match:/^o4[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0}},{match:/^o3\b/i,rates:{input:2,output:8,cacheRead:.5,cacheWrite:0}}];function bP(e){return e?/^(?:gpt[-_]|codex[-_]|o\d)/i.test(e):!1}function mv(e){if(!e)return null;for(const n of SP)if(n.match.test(e))return n.rates;return null}function dn(e,n){const r=mv(n);if(!r)return{input:0,output:0,cacheRead:0,cacheWrite:0,total:0};const l=(bP(n)?Math.max(0,e.inputTokens-e.cacheReadTokens):e.inputTokens)*r.input/1e6,u=e.outputTokens*r.output/1e6,c=e.cacheReadTokens*r.cacheRead/1e6,f=e.cacheCreateTokens*r.cacheWrite/1e6;return{input:l,output:u,cacheRead:c,cacheWrite:f,total:l+u+c+f}}const Qw=2e5,kP=1e6,EP=[/\[1m\]/i,/^claude[-_]opus[-_]5\b/i,/^claude[-_]sonnet[-_]5\b/i,/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,/^claude[-_]sonnet[-_]4[-_.]6\b/i,/^claude[-_](fable|mythos)[-_]5\b/i],NP=[{match:/^gpt[-_]5[-_.]6[-_]cyber/i,window:4e5},{match:/^gpt[-_]5[-_.]6/i,window:105e4},{match:/^gpt[-_]5[-_.]5/i,window:105e4},{match:/^gpt[-_]5[-_.]4[-_](?:mini|nano)/i,window:4e5},{match:/^gpt[-_]5[-_.]4/i,window:105e4},{match:/^gpt[-_]5[-_.]3[-_]codex[-_]spark/i,window:128e3},{match:/^gpt[-_]5[-_.]3[-_]codex/i,window:4e5},{match:/^gpt[-_]5[-_.]2/i,window:4e5},{match:/^gpt[-_]5/i,window:4e5},{match:/^codex[-_]mini/i,window:2e5},{match:/^o\d/i,window:2e5}];function yN(e){if(!e)return Qw;for(const n of EP)if(n.test(e))return kP;for(const n of NP)if(n.match.test(e))return n.window;return Qw}function Be(e){return e<=0?"—":e<.005?"<1¢":e<1?`${(e*100).toFixed(e<.1?1:0)}¢`:e<100?`$${e.toFixed(2)}`:e<1e4?`$${e.toFixed(0)}`:`$${(e/1e3).toFixed(1)}k`}function Bl(e,n){if(e<=0||n<10)return null;const r=e/n,s=r*60;return s>=.01?`${Be(s)}/min`:`${Be(r*3600)}/hr`}function In(e){return e.toLocaleString()}function CP(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}function jP({agent:e,onClose:n}){var p;const r=e.context,s=e.usage,o=(r==null?void 0:r.currentContextTokens)??0,l=yN(e.model),u=Math.min(100,o/l*100),c=dn(s,e.model),f=s.inputTokens+s.cacheReadTokens+s.cacheCreateTokens;return m.jsx("div",{className:"ctx-modal-backdrop",onClick:n,role:"presentation",children:m.jsxs("div",{className:"ctx-modal",onClick:h=>h.stopPropagation(),role:"dialog","aria-label":"Context breakdown",children:[m.jsxs("header",{className:"ctx-modal-head",children:[m.jsxs("div",{children:[m.jsxs("div",{className:"ctx-modal-title",children:["Context · ",e.label]}),m.jsx("div",{className:"ctx-modal-sub",children:"approximation — CC's /context isn't hook-exposed"})]}),m.jsx("button",{className:"ctx-modal-close",onClick:n,"aria-label":"Close",children:"×"})]}),m.jsxs("section",{className:"ctx-window-row",children:[m.jsx("div",{className:"ctx-window-bar",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(u),children:m.jsx("div",{className:"ctx-window-fill",style:{width:`${u}%`}})}),m.jsxs("div",{className:"ctx-window-meta",children:[m.jsxs("span",{className:"ctx-window-pct",children:[u.toFixed(1),"%"]}),m.jsxs("span",{className:"ctx-window-num",children:[In(o)," / ",In(l)," tok (current turn)"]})]})]}),m.jsx("h3",{className:"ctx-section-title",children:"Cumulative usage · whole session"}),m.jsxs("div",{className:"ctx-grid",children:[m.jsx(Gn,{label:"input tokens",val:In(s.inputTokens)}),m.jsx(Gn,{label:"output tokens",val:In(s.outputTokens)}),m.jsx(Gn,{label:"cache reads",val:In(s.cacheReadTokens)}),m.jsx(Gn,{label:"cache writes",val:In(s.cacheCreateTokens)}),m.jsx(Gn,{label:"cumulative total",val:In(f)}),m.jsx(Gn,{label:"estimated cost",val:Be(c.total),accent:!0})]}),m.jsx("h3",{className:"ctx-section-title",children:"Transcript composition"}),m.jsxs("div",{className:"ctx-grid",children:[m.jsx(Gn,{label:"user messages",val:In((r==null?void 0:r.msgsUser)??0)}),m.jsx(Gn,{label:"assistant messages",val:In((r==null?void 0:r.msgsAssistant)??0)}),m.jsx(Gn,{label:"tool uses",val:In((r==null?void 0:r.toolUses)??0)}),m.jsx(Gn,{label:"tool results",val:In((r==null?void 0:r.toolResults)??0)}),m.jsx(Gn,{label:"system-reminders",val:In((r==null?void 0:r.systemReminders)??0)})]}),m.jsx("h3",{className:"ctx-section-title",children:"CLAUDE.md files in scope"}),(((p=r==null?void 0:r.claudeMdFiles)==null?void 0:p.length)??0)===0?m.jsx("div",{className:"ctx-empty",children:"No CLAUDE.md files found on the path from cwd to ~/.claude."}):m.jsx("ul",{className:"ctx-md-list",children:r.claudeMdFiles.map(h=>m.jsxs("li",{children:[m.jsx("span",{className:"ctx-md-path",title:h.path,children:h.path}),m.jsx("span",{className:"ctx-md-size",children:CP(h.bytes)})]},h.path))})]})})}function Gn({label:e,val:n,accent:r}){return m.jsxs("div",{className:`ctx-row${r?" accent":""}`,children:[m.jsx("span",{className:"ctx-row-label",children:e}),m.jsx("span",{className:"ctx-row-val",children:n})]})}function RP({currentContextTokens:e,modelId:n,size:r=26,onClick:s,title:o}){const l=yN(n),u=Math.min(1,e/l),c=r/2-3,f=r/2,p=2*Math.PI*c,h=p*u,g=u>.9?"var(--err)":u>.7?"var(--inflight)":"var(--accent)";return m.jsx("button",{type:"button",className:"ctx-donut",onClick:s,title:o??`context: ${e.toLocaleString()} / ${l.toLocaleString()} (${(u*100).toFixed(1)}%)`,"aria-label":"Show context breakdown",children:m.jsxs("svg",{width:r,height:r,viewBox:`0 0 ${r} ${r}`,children:[m.jsx("circle",{cx:f,cy:f,r:c,stroke:"var(--line)",strokeWidth:"2.5",fill:"none"}),m.jsx("circle",{cx:f,cy:f,r:c,stroke:g,strokeWidth:"2.5",fill:"none",strokeDasharray:`${h} ${p-h}`,strokeDashoffset:p/4,strokeLinecap:"round",style:{transition:"stroke-dasharray 400ms ease"}}),m.jsx("text",{x:f,y:f+3,textAnchor:"middle",fontSize:"8",fill:"var(--text)",fontWeight:"600",children:Math.round(u*100)})]})})}function TP(e,n){const r=mv(n);if(!r)return"no rates for this model";const s=u=>u.toLocaleString(),o=u=>`$${u}/MTok`,l=dn(e,n);return[`model: ${n}`,`input ${s(e.inputTokens).padStart(14)} × ${o(r.input).padEnd(11)} = ${Be(l.input)}`,`output ${s(e.outputTokens).padStart(14)} × ${o(r.output).padEnd(11)} = ${Be(l.output)}`,`cache r ${s(e.cacheReadTokens).padStart(14)} × ${o(r.cacheRead).padEnd(11)} = ${Be(l.cacheRead)}`,`cache w ${s(e.cacheCreateTokens).padStart(14)} × ${o(r.cacheWrite).padEnd(11)} = ${Be(l.cacheWrite)}`,"─────────────────────────────────────────",`total = ${Be(l.total)}`].join(`
58
58
  `)}function AP(e,n,r){const s=(n??r)-e;if(s<1e3)return`${Math.max(0,s)}ms`;const o=Math.floor(s/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60),u=o%60;return`${l}m ${String(u).padStart(2,"0")}s`}function IP({data:e,selected:n}){var p;const r=e.now??Date.now(),s=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(h=>!h.endedAt).length,u=`hsl(${pv(e.sessionId)} 70% 60%)`,c=((p=e.context)==null?void 0:p.currentContextTokens)??0,f=e.kind==="root"&&c>0;return m.jsxs("div",{className:s,style:{"--accent":u},children:[m.jsx("span",{className:"accent-stripe"}),m.jsx(Vs,{type:"target",position:Ce.Left,style:{background:"transparent",border:"none"}}),m.jsxs("div",{className:"head",children:[m.jsxs("div",{className:"title",children:[m.jsx(MP,{state:e.state}),m.jsx("span",{className:"label",title:e.cwd,children:e.label}),e.synthetic&&m.jsx("span",{className:"synth-tag",title:"No SessionStart captured — synthesised",children:"?"})]}),m.jsxs("div",{className:"head-right",children:[f&&e.onOpenContext&&m.jsx(RP,{currentContextTokens:c,modelId:e.model,onClick:()=>e.onOpenContext(e.sessionId)}),m.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:AP(e.startedAt,e.endedAt,r)})]})]}),m.jsxs("div",{className:"sub",children:[e.kind==="root"?"session":"subagent",e.childCount>0&&m.jsxs("span",{className:"spawn-badge",title:`${e.childCount} subagents spawned`,children:["→ ",e.childCount]}),e.cwdBasename&&e.kind==="subagent"?` · ${e.cwdBasename}`:"",e.model&&m.jsx("span",{className:"model-chip",title:e.model,children:oa(e.model)})]}),e.tools.length>0&&m.jsx(OP,{tools:e.tools,now:r}),m.jsxs("div",{className:"meta",children:[m.jsxs("span",{children:[m.jsx("b",{children:e.toolCount})," tools"]}),o>0&&m.jsxs("span",{className:"inflight-meta",children:[m.jsx("b",{children:o})," in-flight"]}),e.usage.inputTokens+e.usage.outputTokens>0&&m.jsxs("span",{className:"tokens-meta",title:`in:${e.usage.inputTokens} out:${e.usage.outputTokens} cache-r:${e.usage.cacheReadTokens} cache-c:${e.usage.cacheCreateTokens}${(e.usage.reasoningOutputTokens??0)>0?` reasoning:${e.usage.reasoningOutputTokens}`:""}`,children:[m.jsx("b",{children:PP(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&mv(e.model)&&(()=>{const h=dn(e.usage,e.model);if(h.total<=0)return null;const g=Math.max(0,((e.endedAt??r)-e.startedAt)/1e3),y=e.state==="active"?Bl(h.total,g):null,w=TP(e.usage,e.model)+(y?`
59
- burn: ${y}`:"");return m.jsxs("span",{className:"cost-meta",title:w,children:[m.jsx("b",{children:Be(h.total)}),y&&m.jsx("span",{className:"cost-rate",children:y})]})})()]}),m.jsx(Vs,{type:"source",position:Ce.Right,style:{background:"transparent",border:"none"}})]})}function MP({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return m.jsx("span",{className:`state-pill state-${e}`,children:n})}function PP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function OP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const w=n-y.startedAt;if(w<0||w>=6e4)continue;const C=23-Math.floor(w/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),f=132,p=14,h=f/24,g=c/(2500/1e3);return m.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${g.toFixed(1)}/s`,children:[m.jsx("svg",{className:"tool-spark",width:f,height:p,viewBox:`0 0 ${f} ${p}`,"aria-hidden":!0,children:l.map((y,w)=>{const C=y===0?1.5:Math.max(1.5,y/c*p),_=w===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return m.jsx("rect",{x:w*h+.4,y:p-C,width:Math.max(.5,h-1),height:C,rx:.8,className:b},w)})}),m.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function oa(e){const n=e.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(n){const o=n[1][0].toUpperCase()+n[1].slice(1).toLowerCase(),l=n[2].replace(/[-_]/g,".");return`${o} ${l}`}const r=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(r)return`GPT-${r[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function Zw(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function qP(e){if(e.endedAt==null)return"in-flight…";const n=e.endedAt-e.startedAt;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(2)}s`}function LP({tool:e,onClose:n}){I.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return m.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:m.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[m.jsxs("header",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:`status-dot ${r}`}),m.jsx("span",{className:"modal-tool-name",children:e.name}),m.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),m.jsxs("div",{className:"modal-actions",children:[m.jsx("span",{className:"modal-dur",children:qP(e)}),m.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),m.jsxs("section",{className:"modal-body",children:[m.jsxs("div",{className:"modal-section",children:[m.jsx("h4",{children:"Input"}),m.jsx("pre",{children:Zw(e.input??e.inputPreview)})]}),m.jsxs("div",{className:"modal-section",children:[m.jsxs("h4",{children:["Response ",r==="err"&&m.jsx("span",{className:"err-tag",children:"error"})]}),m.jsx("pre",{children:e.endedAt==null?"(waiting…)":Zw(e.response??e.errorPreview)})]})]})]})})}const Sl=18,Jw=26,$P=12;function DP(e){const n=new Map;for(const o of e.nodeInternals.values()){const l=o.data;if(!(l!=null&&l.sessionId)||l.exitAt!=null||o.width==null||o.height==null)continue;const u=o.position.x,c=o.position.y,f=u+o.width,p=c+o.height,h=n.get(l.sessionId);h?(h.minX=Math.min(h.minX,u),h.minY=Math.min(h.minY,c),h.maxX=Math.max(h.maxX,f),h.maxY=Math.max(h.maxY,p),l.kind==="root"&&(h.label=ex(l)??h.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:f,maxY:p,label:ex(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${FP(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-Sl,y:l.minY-Sl-Jw,w:l.maxX-l.minX+Sl*2,h:l.maxY-l.minY+Sl*2+Jw})}return s}function FP(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function ex(e){if(e.kind==="root")return e.label}function zP(){const{x:e,y:n,zoom:r}=uN(),s=sa(),o=Xe(DP,BP);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(f=>{const p=f.data;return(p==null?void 0:p.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return m.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=pv(u.sessionId),f={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},p={position:"absolute",left:u.x*r+e+16*r,top:(u.y-$P)*r+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top"};return m.jsxs(le.Fragment,{children:[m.jsx("div",{className:"cluster-card",style:f,"aria-hidden":!0}),m.jsx("button",{type:"button",className:"cluster-label",style:p,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function BP(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const s=e[r],o=n[r];if(s.sessionId!==o.sessionId||s.label!==o.label||s.x!==o.x||s.y!==o.y||s.w!==o.w||s.h!==o.h)return!1}return!0}function UP({data:e}){return m.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const wN=600,HP=36,Hg=16,VP=60,WP=6,tx=220,nx=96,GP=28,KP={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function YP(e){return e.startsWith("mcp__")?"mcp":KP[e]??"other"}const XP={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function rx(e){return e.startsWith("mcp__")?"🔌":XP[e]??"✨"}const QP={git:"🐙",gh:"🐙",glab:"🐙",npm:"📦",pnpm:"📦",yarn:"📦",bun:"📦",brew:"🍺",node:"🟢",deno:"🟢",python:"🐍",python3:"🐍",py:"🐍",pip:"🐍",pip3:"🐍",uv:"🐍",ruby:"💎",bundle:"💎",gem:"💎",cargo:"🦀",rustc:"🦀",rustup:"🦀",go:"🐹",docker:"🐳","docker-compose":"🐳",podman:"🐳",kubectl:"☸️",helm:"☸️",k9s:"☸️",grep:"🔎",rg:"🔎",ag:"🔎",ack:"🔎",find:"🔍",fd:"🔍",locate:"🔍",which:"🔍",ls:"📂",dir:"📂",tree:"📂",cat:"📄",head:"📄",tail:"📄",less:"📄",more:"📄",bat:"📄",cp:"📋",mv:"✂️",rm:"🗑️",rmdir:"🗑️",mkdir:"📁",touch:"📁",sed:"✏️",awk:"✏️",tr:"✏️",curl:"🌐",wget:"🌐",http:"🌐",httpie:"🌐",ssh:"🔐",scp:"🔐",rsync:"🔐",ping:"📡",make:"🔨",cmake:"🔨",ninja:"🔨",bazel:"🔨",just:"🔨",terraform:"🏗️",ansible:"📕",pulumi:"🏗️",ps:"📊",top:"📊",htop:"📊",btm:"📊",kill:"💀",pkill:"💀",systemctl:"⚙️",service:"⚙️",tar:"🗜️",zip:"🗜️",unzip:"🗜️",gzip:"🗜️","7z":"🗜️",vim:"📝",nvim:"📝",nano:"📝",emacs:"📝",code:"📝",jq:"🪺",yq:"🪺",echo:"💬",printf:"💬",ffmpeg:"🎞️",ffprobe:"🎞️",imagemagick:"🖼️",convert:"🖼️","Get-ChildItem":"📂","Get-Content":"📄","Set-Content":"💾","Out-File":"💾","Add-Content":"💾","Set-Location":"📍","Get-Location":"📍","Get-Process":"📊","Start-Process":"▶️","Stop-Process":"💀","Invoke-WebRequest":"🌐","Invoke-RestMethod":"🌐","New-Item":"📁","Remove-Item":"🗑️","Copy-Item":"📋","Move-Item":"✂️","Test-Path":"🔍","Where-Object":"🔎","ForEach-Object":"🔁","Select-Object":"🎯","Measure-Object":"📊","Get-Service":"⚙️","Restart-Service":"⚙️","ConvertTo-Json":"🪺","ConvertFrom-Json":"🪺"};function xN(e){if(!e)return null;let n=e.trim();if(!n)return null;const r=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(r)return xN(r[1]);for(;;){const l=n.match(/^([A-Z_][A-Z0-9_]*=\S*)\s+/);if(!l)break;n=n.slice(l[0].length)}n=n.replace(/^sudo(?:\s+-\S+)*\s+/,""),n=n.replace(/^(?:time|nohup|xargs)\s+/,"");const s=n.match(/^([^\s|;&<>(]+)/);if(!s)return null;let o=s[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function ZP(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const s=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<r.length)return r[s+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const JP=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),e3=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function t3(e,n){return e3.has(e)?Math.max(nx,34+n.length*7.5):nx}function n3(e,n){if(!JP.has(e))return null;const r=ZP(n);if(!r)return null;const s=xN(r);return s?{emoji:QP[s]??"⚙️",label:s,category:"shell",detail:r}:null}const r3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),ix={ts:"🟦",tsx:"🟦",d:"🟦",js:"🟨",jsx:"🟨",mjs:"🟨",cjs:"🟨",py:"🐍",pyi:"🐍",ipynb:"📓",rs:"🦀",go:"🐹",rb:"💎",erb:"💎",java:"☕",kt:"☕",scala:"☕",gradle:"☕",cs:"🔷",fs:"🔷",php:"🐘",swift:"🦅",c:"🇨",cpp:"🇨",cc:"🇨",h:"🇨",hpp:"🇨",md:"📝",mdx:"📝",rst:"📝",json:"🪺",json5:"🪺",jsonl:"🪺",yaml:"⚙️",yml:"⚙️",toml:"⚙️",ini:"⚙️",conf:"⚙️",cfg:"⚙️",xml:"📰",html:"🌐",htm:"🌐",vue:"🌐",svelte:"🌐",css:"🎨",scss:"🎨",sass:"🎨",less:"🎨",sh:"⚡",bash:"⚡",zsh:"⚡",fish:"⚡",ps1:"⚡",txt:"📄",log:"📄",out:"📄",csv:"📊",tsv:"📊",xlsx:"📊",xls:"📊",pdf:"📕",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",webp:"🖼️",svg:"🖼️",ico:"🖼️",mp4:"🎬",mov:"🎬",avi:"🎬",mkv:"🎬",webm:"🎬",mp3:"🎵",wav:"🎵",ogg:"🎵",flac:"🎵",zip:"🗜️",tar:"🗜️",gz:"🗜️",bz2:"🗜️","7z":"🗜️",xz:"🗜️",rar:"🗜️",env:"🔐",lock:"🔐",pem:"🔐",key:"🔐",crt:"🔐",sql:"🗄️",db:"🗄️",sqlite:"🗄️",parquet:"🗄️"},sx={dockerfile:"🐳",makefile:"🔨",rakefile:"💎","package.json":"📦","pnpm-lock.yaml":"📦","yarn.lock":"📦","cargo.toml":"🦀","cargo.lock":"🦀","go.mod":"🐹","go.sum":"🐹","pyproject.toml":"🐍","requirements.txt":"🐍","readme.md":"📖",readme:"📖",license:"📜",".gitignore":"🐙",".gitattributes":"🐙",".env":"🔐",".dockerignore":"🐳"};function i3(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),s=r.lastIndexOf("/");return s>=0?r.slice(s+1):r}function s3(e){const n=e.toLowerCase();if(sx[n])return sx[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const r=n.lastIndexOf(".");if(r>0&&r<n.length-1){const s=n.slice(r+1);if(ix[s])return ix[s]}return"📄"}function o3(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const s=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[1].trim():null}return typeof r.file_path=="string"?r.file_path:typeof r.notebook_path=="string"?r.notebook_path:typeof r.path=="string"?r.path:e==="Glob"&&typeof r.pattern=="string"?r.pattern:null}function a3(e,n){if(!r3.has(e))return null;const r=o3(e,n);if(!r)return null;const s=i3(r);return s?{emoji:e==="LS"?"📂":s3(s),label:s,category:"file",detail:r}:null}const _N={github:{emoji:"🐙",name:"GitHub"},git:{emoji:"🐙",name:"Git"},gitlab:{emoji:"🦊",name:"GitLab"},slack:{emoji:"💬",name:"Slack"},discord:{emoji:"💬",name:"Discord"},linear:{emoji:"📐",name:"Linear"},jira:{emoji:"🅹",name:"Jira"},atlassian:{emoji:"🅰️",name:"Atlassian"},notion:{emoji:"📓",name:"Notion"},asana:{emoji:"📋",name:"Asana"},intercom:{emoji:"💬",name:"Intercom"},figma:{emoji:"🎨",name:"Figma"},gmail:{emoji:"📧",name:"Gmail"},calendar:{emoji:"📅",name:"Calendar"},drive:{emoji:"☁️",name:"Drive"},zoom:{emoji:"📹",name:"Zoom"},spotify:{emoji:"🎵",name:"Spotify"},youtube:{emoji:"📺",name:"YouTube"},ccd_session:{emoji:"📡",name:"Session"},ccd_directory:{emoji:"📂",name:"Directory"},ccd_session_mgmt:{emoji:"📡",name:"Sessions"},mcp_registry:{emoji:"🧰",name:"Registry"},"computer-use":{emoji:"🖱️",name:"Computer"},"claude-in-chrome":{emoji:"🌐",name:"Chrome"},"claude-preview":{emoji:"👀",name:"Preview"},"scheduled-tasks":{emoji:"⏰",name:"Scheduler"},visualize:{emoji:"🎨",name:"Visualize"},"plugin-design-asana":{emoji:"📋",name:"Asana"},"plugin-design-atlassian":{emoji:"🅰️",name:"Atlassian"},"plugin-design-figma":{emoji:"🎨",name:"Figma"},"plugin-design-intercom":{emoji:"💬",name:"Intercom"},"plugin-design-linear":{emoji:"📐",name:"Linear"},"plugin-design-notion":{emoji:"📓",name:"Notion"},"plugin-design-slack":{emoji:"💬",name:"Slack"}};function SN(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),r=n.indexOf("__");return r<=0?{server:n,method:""}:{server:n.slice(0,r),method:n.slice(r+2)}}function l3(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}function u3(e,n){const r=SN(e);if(!r)return null;const{server:s,method:o}=r;if(!o)return null;const l=_N[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function c3(e,n){return n3(e,n)??a3(e,n)??u3(e)}const d3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function f3(e){const n=SN(e);if(n){const s=_N[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:l3(n.server)}}const r=d3[e];return r?{emoji:rx(e),label:r}:{emoji:rx(e),label:e}}function h3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function p3(e,n,r){if(r==null)return 1;const s=n-r;return s<0?1:Math.max(0,1-s/wN)}function m3(e,n,r,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>wN)continue;const f=s.get(c.id)??r.get(c.id);if(!f)continue;const p=c.tools.slice(-4);if(p.length===0)continue;const h=c.exitAt??null,g=o.get(c.id),y=Math.max((g==null?void 0:g.width)??tx,tx),w=(g==null?void 0:g.height)??130,C=f.x,_=f.y,S=C+y,b=_+w/2;p.forEach((E,N)=>{const j=N*HP,M=C+y+VP,O=_+WP+j,q=p3(E,l,h),F=E.inputPreview??"",R=h3(E),P=q<.999,B=f3(E.name);u.push({id:E.id,toolId:E.id,agentId:c.id,toolName:E.name,name:B.label,emoji:B.emoji,status:R,category:YP(E.name),mcpHue:B.hue,inputPreview:F,fade:q,fading:P,worldX:M,worldY:O,anchorX:S,anchorY:b,spawnDx:S-M,spawnDy:b-(O+Hg)});const J=c3(E.name,E.input);if(J){const Z=t3(E.name,B.label),A=M+Z+GP,H=O,U=M+Z,ne=O+Hg;u.push({id:`sub:${E.id}`,toolId:E.id,agentId:c.id,toolName:E.name,name:J.label,emoji:J.emoji,isSub:!0,status:R,category:J.category,inputPreview:J.detail??F,fade:q,fading:P,worldX:A,worldY:H,anchorX:U,anchorY:ne,spawnDx:U-A,spawnDy:0})}})}return u}function g3({agents:e,visibleAgentIds:n,positions:r,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:f,onOpenTool:p}){const{x:h,y:g,zoom:y}=uN(),w=m3(e,n,r,s,o,f),C=c&&c.size>0?w.filter(_=>!c.has(_.category)):w;return m.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[m.jsx("svg",{className:"tool-bursts-svg",children:C.map(_=>{const S=_.anchorX*y+h,b=_.anchorY*y+g,E=(_.worldX+6)*y+h,N=(_.worldY+Hg)*y+g,j=S+(E-S)*.55,M=l!=null&&!l.has(_.agentId),O=u!=null&&!u.has(_.agentId),q=_.fade*(M||O?.14:1);return m.jsx("path",{d:`M ${S} ${b} Q ${j} ${b}, ${E} ${N}`,className:`tool-conn status-${_.status}${_.fading?" fading":""}`,opacity:q},`l:${_.id}`)})}),C.map(_=>{const S=_.worldX*y+h,b=_.worldY*y+g,E={left:`${S}px`,top:`${b}px`,transform:`scale(${y})`,transformOrigin:"left top","--spawn-dx":`${_.spawnDx}px`,"--spawn-dy":`${_.spawnDy}px`},N=_.isSub?`${_.toolName} · ${_.name}`:_.toolName,j=_.inputPreview?`${N} · ${_.inputPreview}`:N,M=p!=null,O=_.mcpHue!=null?{"--cat-accent":`hsl(${_.mcpHue} 65% 65%)`}:{},q=l!=null&&!l.has(_.agentId),F=u!=null&&!u.has(_.agentId),R=q||F?" dim":"";return m.jsx("div",{className:"tool-burst-wrap",style:E,children:m.jsxs("div",{className:`tool-burst cat-${_.category} status-${_.status}${_.fading?" fading":""}${M?" clickable":""}${_.isSub?" sub":""}${R}`,style:O,title:j,role:M?"button":void 0,tabIndex:M?0:void 0,"aria-label":M?`Open ${_.toolName} ${_.status==="inflight"?"in flight":_.status} — click for details`:void 0,onClick:M?()=>p(_.toolId):void 0,onKeyDown:M?P=>{(P.key==="Enter"||P.key===" ")&&(P.preventDefault(),p(_.toolId))}:void 0,children:[m.jsx("span",{className:"tb-emoji",children:_.emoji}),m.jsx("span",{className:"tb-name",children:_.name}),_.status==="inflight"&&m.jsx("span",{className:"tb-spin"}),_.status==="done"&&m.jsx("span",{className:"tb-mark done",children:"✓"}),_.status==="err"&&m.jsx("span",{className:"tb-mark err",children:"×"})]})},_.id)})]})}function v3({state:e,sessionId:n,onClose:r}){const s=I.useMemo(()=>w3(e,n),[e,n]);return s?m.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:m.jsxs("div",{className:"modal session-summary",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[m.jsxs("div",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),m.jsx("span",{id:"ss-title",className:"modal-tool-name",title:s.cwd??s.sessionId,children:s.label}),m.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),m.jsxs("div",{className:"modal-actions",children:[m.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),m.jsx("button",{className:"btn",onClick:r,"aria-label":"Close",children:"×"})]})]}),m.jsxs("div",{className:"modal-body",children:[m.jsxs("section",{className:"ss-hero",children:[m.jsxs("div",{className:"ss-hero-left",children:[m.jsx("div",{className:"ss-cost-label",children:"total spend"}),m.jsx("div",{className:"ss-cost",children:Be(s.cost.total)}),s.modelChips.length>0&&m.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>m.jsx("span",{className:"model-chip",title:o,children:oa(o)},o))})]}),m.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&m.jsxs(m.Fragment,{children:[m.jsx(y3,{cost:s.cost}),m.jsxs("div",{className:"ss-cost-legend",children:[m.jsxs("span",{className:"ssl ssl-in",children:["input ",m.jsx("b",{children:Be(s.cost.input)})]}),m.jsxs("span",{className:"ssl ssl-out",children:["output ",m.jsx("b",{children:Be(s.cost.output)})]}),m.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",m.jsx("b",{children:Be(s.cost.cacheRead)})]}),m.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",m.jsx("b",{children:Be(s.cost.cacheWrite)})]})]})]})})]}),m.jsxs("section",{className:"ss-stats",children:[m.jsx(Ps,{label:"agents",value:s.agentCount}),m.jsx(Ps,{label:"subagents",value:s.subagentCount}),m.jsx(Ps,{label:"tool calls",value:s.toolCount}),m.jsx(Ps,{label:"prompts",value:s.promptCount}),m.jsx(Ps,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&m.jsx(Ps,{label:"errors",value:s.errCount,tone:"err"})]}),s.topTools.length>0&&m.jsxs("section",{className:"modal-section",children:[m.jsx("h4",{children:"Most-used tools"}),m.jsx("div",{className:"ss-top-tools",children:s.topTools.map(([o,l])=>m.jsxs("div",{className:"ss-tt",children:[m.jsx("span",{className:"ss-tt-name",children:o}),m.jsx("span",{className:"ss-tt-bar",children:m.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),m.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&m.jsxs("section",{className:"modal-section",children:[m.jsx("h4",{children:"Opening prompt"}),m.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Ps({label:e,value:n,tone:r}){return m.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[m.jsx("div",{className:"ss-stat-value",children:n}),m.jsx("div",{className:"ss-stat-label",children:e})]})}function y3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return m.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Be(s)} (${u.toFixed(0)}%)`},o)};return m.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function w3(e,n){const r=e.agents.get(n);if(!r)return null;const s=[];for(const N of e.agents.values())N.sessionId===n&&s.push(N);if(s.length===0)return null;const o={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},l=new Set,u=new Map;let c=0,f=0,p=0,h=0,g=0,y,w=1/0,C=0;for(const N of s){const j=dn(N.usage,N.model);o.input+=j.input,o.output+=j.output,o.cacheRead+=j.cacheRead,o.cacheWrite+=j.cacheWrite,o.total+=j.total,N.model&&l.add(N.model),N.kind==="subagent"&&g++,f+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),p+=N.usage.inputTokens+N.usage.outputTokens,c+=N.tools.length,w=Math.min(w,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const M of N.tools)u.set(M.name,(u.get(M.name)??0)+1),M.ok===!1&&h++}const _=Math.max(0,C-w),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,E=Array.from(u.entries()).sort((N,j)=>j[1]-N[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:g,toolCount:c,promptCount:f,tokensSum:p,errCount:h,topTools:E,firstPrompt:y}}function x3(e,n){const r=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.tools.length,l=dn(s.usage,s.model).total,u=s.endedAt??s.startedAt;for(const c of e.agents.values()){if(c.sessionId!==s.sessionId||c.kind==="root")continue;o+=c.tools.length,l+=dn(c.usage,c.model).total;const f=c.endedAt??c.startedAt;f>u&&(u=f)}r.push({sessionId:s.sessionId,label:s.label||s.cwdBasename||"session",cwdBasename:s.cwdBasename,state:s.state,modelId:s.model,toolCount:o,cost:l,startedAt:s.startedAt,lastActivity:u})}return r.sort((s,o)=>{if(s.state!==o.state){if(s.state==="active")return-1;if(o.state==="active")return 1}return o.lastActivity-s.lastActivity}),r}function _3(e,n,r){const s=(n??r)-e;if(s<1e3)return"<1s";const o=Math.floor(s/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60);return l<60?`${l}m`:`${Math.floor(l/60)}h ${l%60}m`}function S3({state:e,now:n,selectedIds:r,onSelect:s,onClose:o}){const l=I.useMemo(()=>x3(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return m.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[m.jsxs("div",{className:"sl-header",children:[m.jsxs("h3",{children:["Sessions ",m.jsx("span",{className:"sl-count",children:l.length})]}),u>0&&m.jsxs("span",{className:"sl-live-count",children:[u," live"]}),m.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),m.jsxs("div",{className:"sl-rows",children:[l.length===0&&m.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(c=>{const f=r.has(c.sessionId);return m.jsxs("button",{type:"button",className:`sl-row state-${c.state}${f?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[m.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),m.jsxs("div",{className:"sl-row-body",children:[m.jsxs("div",{className:"sl-row-head",children:[m.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&m.jsx("span",{className:"model-chip",title:c.modelId,children:oa(c.modelId)})]}),m.jsxs("div",{className:"sl-row-meta",children:[m.jsxs("span",{title:"tool calls",children:[m.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&m.jsx("span",{className:"sl-cost",title:"total spend",children:m.jsx("b",{children:Be(c.cost)})}),m.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:_3(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function ox(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function b3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function Ar(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function k3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return m.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Be(s)} (${u.toFixed(0)}%)`},o)};return m.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function E3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/3600),o=Math.floor(r%3600/60);if(s>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function N3(e,n,r,s){const o=Math.max(0,n-s),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const f=100-e,p=l>0?e/l:0,h=p>0?f/p:1/0,g={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(h<o&&h<86400){const y=Math.floor(h/3600),w=Math.floor(h%3600/60);g.runsOutIn=y>0?`${y}h ${w}m`:`${w}m`}return g}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Bi({pct:e,label:n,reset:r,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),p=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",h=c===0?"< 1%":`${c}%`,g=c===0?2:c,y=s?E3(s,u):null,w=s&&o?N3(c,s,o,u):null;return m.jsxs("div",{className:"qb-row",children:[m.jsxs("div",{className:"qb-meta",children:[m.jsxs("span",{className:"qb-label",children:[n,l&&m.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),m.jsx("span",{className:"qb-pct",style:{color:p},children:h})]}),m.jsxs("div",{className:"qb-track",children:[m.jsx("div",{className:"qb-fill",style:{width:`${g}%`,background:p,opacity:c===0?.4:1}}),w&&m.jsx("div",{className:"qb-pace-marker",style:{left:`${w.expectedPct}%`,background:w.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(w.expectedPct)}% by now`})]}),m.jsxs("div",{className:"qb-reset-row",children:[y?m.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?m.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,w&&m.jsx("span",{className:"qb-pace",style:{color:w.color},children:w.runsOutIn?`runs out in ${w.runsOutIn}`:w.label})]})]})}const C3=6e4;function j3(){const[e,n]=I.useState(null),[r,s]=I.useState(!1),o=I.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const p=await fetch(c?"/api/quota?refresh=1":"/api/quota");p.ok&&n(await p.json())}catch{}finally{c&&s(!1)}};return I.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),C3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function R3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const bN=6e4;function T3(){const[e,n]=I.useState(null),[r,s]=I.useState(!1),o=I.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const p=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");p.ok&&n(await p.json())}catch{}finally{c&&s(!1)}};return I.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),bN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function A3(){const[e,n]=I.useState(null),r=I.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return I.useEffect(()=>(s(),r.current=window.setInterval(s,bN),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function I3({state:e,now:n,onClose:r}){var q,F;const{quota:s,loading:o,refresh:l}=j3(),{data:u,loading:c,refresh:f}=T3(),{data:p}=A3(),[h,g]=I.useState(()=>Math.floor(Date.now()/1e3));I.useEffect(()=>{const R=window.setInterval(()=>g(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(R)},[]);const{byModel:y,totalCost:w,totalTokens:C,burnRate:_}=I.useMemo(()=>{const R=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let B=0,J=0,Z=0,A=0;for(const D of e.agents.values()){const G=D.model??"__unknown__",k=dn(D.usage,D.model),L=R.get(G);L?(L.inputTokens+=D.usage.inputTokens,L.outputTokens+=D.usage.outputTokens,L.cacheReadTokens+=D.usage.cacheReadTokens,L.cacheCreateTokens+=D.usage.cacheCreateTokens,L.cost.total+=k.total,L.cost.input+=k.input,L.cost.output+=k.output,L.cost.cacheRead+=k.cacheRead,L.cost.cacheWrite+=k.cacheWrite,L.agentCount++):R.set(G,{model:G,inputTokens:D.usage.inputTokens,outputTokens:D.usage.outputTokens,cacheReadTokens:D.usage.cacheReadTokens,cacheCreateTokens:D.usage.cacheCreateTokens,cost:{...k},agentCount:1}),P.total+=k.total,P.input+=k.input,P.output+=k.output,P.cacheRead+=k.cacheRead,P.cacheWrite+=k.cacheWrite,B+=D.usage.inputTokens,J+=D.usage.outputTokens,Z+=D.usage.cacheReadTokens,A+=D.usage.cacheCreateTokens}const H=Array.from(R.values()).sort((D,G)=>G.cost.total-D.cost.total);let U=0,ne=0;for(const D of e.agents.values()){if(D.state!=="active")continue;const G=dn(D.usage,D.model);U+=G.total,ne=Math.max(ne,((D.endedAt??n)-D.startedAt)/1e3)}const Q=ne>0?Bl(U,ne):null;return{byModel:H,totalCost:P,totalTokens:{in:B,out:J,cacheR:Z,cacheC:A},burnRate:Q}},[e,e.lastSeq,n]),S=I.useMemo(()=>{const R=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let B=dn(P.usage,P.model).total,J=P.usage.inputTokens,Z=P.usage.outputTokens;for(const A of e.agents.values())A.sessionId!==P.sessionId||A.kind==="root"||(B+=dn(A.usage,A.model).total,J+=A.usage.inputTokens,Z+=A.usage.outputTokens);R.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:B,inputTokens:J,outputTokens:Z})}return R.sort((P,B)=>B.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=w.total>0,E=C.in+C.out,N=o||c,j=ox(s==null?void 0:s.fetchedAt,h),M=ox(u==null?void 0:u.fetchedAt,h),O=()=>{l(),f()};return m.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[m.jsxs("div",{className:"up-header",children:[m.jsx("h3",{children:"Usage"}),_&&m.jsx("span",{className:"up-rate",children:_}),m.jsxs("div",{className:"up-header-right",children:[m.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:O,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Claude quota",j&&!o&&m.jsx("span",{className:"up-section-age",title:b3(s==null?void 0:s.source),children:j})]}),s!=null&&s.ok?m.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&m.jsx(Bi,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:h}),s.week7dPct!=null&&m.jsx(Bi,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:h}),s.weekSonnetPct!=null&&m.jsx(Bi,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:h}),s.weekOpusPct!=null&&m.jsx(Bi,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:h})]}):(s==null?void 0:s.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsxs("span",{className:"up-quota-hint",children:["Run ",m.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&m.jsx("span",{className:"up-plan-badge",children:u.planLabel}),M&&!c&&m.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:M})]}),u!=null&&u.ok?m.jsxs("div",{className:"up-quota-bars",children:[(q=u.windows)==null?void 0:q.map(R=>m.jsx(Bi,{label:R.label,pct:R.pct,reset:R.reset??void 0,resetAt:R.resetAt??void 0,windowSec:R.windowSec??void 0,limitReached:u.limitReached&&R.pct>=100,nowSec:h},R.id)),(F=u.extraWindows)==null?void 0:F.map(R=>m.jsx(Bi,{label:R.label,pct:R.pct,reset:R.reset??void 0,resetAt:R.resetAt??void 0,windowSec:R.windowSec??void 0,nowSec:h},R.id)),u.creditLimit&&m.jsx(Bi,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:h}),(p==null?void 0:p.ok)&&p.window7d&&p.window7d.sessionCount>0&&m.jsxs("div",{className:"up-quota-sub",children:[Ar(p.window7d.totalTokens)," tokens · ",p.window7d.sessionCount," session",p.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&m.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&m.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&m.jsxs("div",{className:"up-quota-sub up-reset-credits",title:"Redeem in the Codex CLI or ChatGPT — agents-deck only reports them",children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&m.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&m.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsx("span",{className:"up-quota-hint",children:R3(u.reason)})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-total",children:[m.jsx("span",{className:"up-total-value",children:Be(w.total)}),m.jsx("span",{className:"up-total-label",children:"total spend"})]}),m.jsx(k3,{cost:w}),E>0&&m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]}),C.cacheR>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache r"}),Ar(C.cacheR)]}),C.cacheC>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache c"}),Ar(C.cacheC)]})]}),y.filter(R=>R.cost.total>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By model"}),m.jsxs("table",{className:"up-table",children:[m.jsx("thead",{children:m.jsxs("tr",{children:[m.jsx("th",{children:"Model"}),m.jsx("th",{children:"Tokens"}),m.jsx("th",{children:"Cost"})]})}),m.jsx("tbody",{children:y.filter(R=>R.cost.total>0).map(R=>m.jsxs("tr",{children:[m.jsx("td",{className:"up-model-name",title:R.model,children:oa(R.model)}),m.jsx("td",{className:"up-num",children:Ar(R.inputTokens+R.outputTokens)}),m.jsx("td",{className:"up-num up-cost-val",children:Be(R.cost.total)})]},R.model))})]})]}),S.filter(R=>R.cost>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By session"}),m.jsx("div",{className:"up-sessions",children:S.filter(R=>R.cost>0).map(R=>m.jsxs("div",{className:"up-session-row",children:[m.jsx("span",{className:`sl-dot state-${R.state}`,"aria-hidden":!0}),m.jsx("span",{className:"up-session-label",children:R.label}),m.jsx("span",{className:"up-session-tokens",children:Ar(R.inputTokens+R.outputTokens)}),m.jsx("span",{className:"up-session-cost",children:Be(R.cost)})]},R.sessionId))})]})]}):E>0?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]})]}),m.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):m.jsxs("div",{className:"up-empty",children:["No usage data yet.",m.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const ax=18,M3=1100,Os=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},P3=Array.from({length:ax},(e,n)=>{const r=-72+144*n/(ax-1)+(Os(n,1)-.5)*9,s=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Os(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+Os(n,3)*260),delay:Math.round(Os(n,4)*90),dur:760+Math.round(Os(n,5)*260),scale:.8+Os(n,6)*.45,hue:n%4,round:n%3===0}});function lx({anchor:e,lifetimeMs:n=M3}){var l;const[r,s]=I.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return I.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();s({x:c.left+c.width/2,y:c.top+c.height/2});const f=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(f)},[e,n,o]),o||!r?null:JA.createPortal(m.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:P3.map((u,c)=>m.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const O3=1500;async function bl(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const q3={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:"that share was made by a newer agents-deck",expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},od=(e,n)=>(e==null?void 0:e.detail)||(e!=null&&e.reason?q3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Vg=le.forwardRef((e,n)=>m.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[m.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),m.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Vg.displayName="SuccessMark";function L3({onClose:e,onChanged:n}){const[r,s]=I.useState("login"),[o,l]=I.useState(null),[u,c]=I.useState(""),[f,p]=I.useState(""),[h,g]=I.useState(!1),[y,w]=I.useState(null),[C,_]=I.useState(null),S=I.useRef(!1),b=I.useRef(null),E=I.useRef(null),N=I.useRef(null),j=I.useCallback(()=>{S.current&&bl({action:"login-cancel"}).catch(()=>{}),e()},[e]);I.useEffect(()=>{const R=P=>{P.key==="Escape"&&j()};return window.addEventListener("keydown",R),()=>window.removeEventListener("keydown",R)},[j]);const M=I.useCallback(async()=>{g(!0),w(null),S.current=!0;const R=await bl({action:"login"}).catch(()=>null);if(g(!1),!(R!=null&&R.ok)){w(od(R,"could not start the sign-in"));return}l(R)},[]);I.useEffect(()=>{if(!o||o.state==="done"||o.state==="failed")return;const R=window.setInterval(async()=>{try{const P=await fetch("/api/claude-accounts/login");P.ok&&l(await P.json())}catch{}},O3);return()=>window.clearInterval(R)},[o]),I.useEffect(()=>{var R;(o==null?void 0:o.state)==="awaiting_code"&&((R=b.current)==null||R.focus()),(o==null?void 0:o.state)==="done"&&n()},[o==null?void 0:o.state,n]),I.useEffect(()=>{var R;r==="paste"&&((R=E.current)==null||R.focus())},[r]);const O=I.useCallback(async()=>{var P;g(!0),w(null);const R=await bl({action:"login-code",code:u}).catch(()=>null);if(g(!1),!(R!=null&&R.ok)){w(od(R,"the code was not accepted")),R!=null&&R.state&&l(R),(P=b.current)==null||P.select();return}c(""),l(R)},[u,o]),q=I.useCallback(async()=>{g(!0),w(null);const R=await bl({action:"import",blob:f}).catch(()=>null);if(g(!1),!(R!=null&&R.ok)){w(od(R,"the import failed"));return}p(""),_({added:R.added===!0,num:R.num??null,email:R.email??null}),n()},[f,n]),F=(o==null?void 0:o.state)==="done"?o.account:null;return m.jsx("div",{className:"modal-backdrop",onClick:j,role:"presentation",children:m.jsxs("div",{className:"modal aa-modal",onClick:R=>R.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[m.jsxs("header",{className:"modal-head",children:[m.jsx("div",{className:"modal-title",children:m.jsxs("span",{className:"aa-tabs",role:"tablist",children:[m.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>s("login"),children:"Sign in"}),m.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),m.jsx("div",{className:"modal-actions",children:m.jsx("button",{type:"button",className:"btn icon-btn",onClick:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),m.jsx("section",{className:"modal-body aa-body",children:r==="login"?F?m.jsxs("div",{className:"aa-done",children:[m.jsx(Vg,{ref:N}),m.jsx(lx,{anchor:N}),m.jsx("h4",{children:F.added?`Account ${F.num} added`:"Credentials refreshed"}),m.jsxs("p",{className:"aa-note",children:[m.jsx("strong",{children:F.email}),F.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"1 · Approve in the browser"}),m.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),m.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"2 · Paste the code it gives you"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:b,type:"text",value:u,onChange:R=>c(R.target.value),onKeyDown:R=>{R.key==="Enter"&&u.trim()&&!h&&O()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),m.jsx("button",{type:"button",className:"btn primary",disabled:h||!u.trim()||o.state==="registering",onClick:O,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&m.jsx("p",{className:"aa-err",children:y??o.error}),m.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):(o==null?void 0:o.state)==="failed"||y&&S.current&&!h?m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"Sign-in failed"}),m.jsx("p",{className:"aa-err",children:y??(o==null?void 0:o.error)}),m.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),w(null),M()},children:"Try again"})]}):h||S.current?m.jsx("div",{className:"aa-step",children:m.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):m.jsxs("div",{className:"aa-step aa-primer",children:[m.jsx("h4",{children:"Sign in to Anthropic"}),m.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),m.jsx("div",{className:"aa-actions",children:m.jsx("button",{type:"button",className:"btn primary",onClick:M,disabled:h,children:"Open the sign-in page"})})]}):C?m.jsxs("div",{className:"aa-done",children:[m.jsx(Vg,{ref:N}),C.added&&m.jsx(lx,{anchor:N}),m.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),m.jsx("p",{className:"aa-note",children:C.added?m.jsxs(m.Fragment,{children:[C.email?m.jsx("strong",{children:C.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),m.jsxs("div",{className:"aa-actions",children:[m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),m.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"Paste an account shared from another deck"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:E,type:"text",value:f,onChange:R=>p(R.target.value),onKeyDown:R=>{R.key==="Enter"&&f.trim()&&!h&&q()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),m.jsx("button",{type:"button",className:"btn primary",disabled:h||!f.trim(),onClick:q,children:h?"importing…":"Import"})]}),y&&m.jsx("p",{className:"aa-err",children:y}),m.jsxs("p",{className:"aa-note",children:["Use ",m.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}const $3=15e3,D3=[70,80,85,90,95];function F3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function ux(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function z3(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function B3(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function U3({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),s=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?F3(e.resetAt,n):null;return m.jsxs("div",{className:"ap-lane",children:[m.jsx("span",{className:"ap-lane-label",children:e.label}),m.jsx("div",{className:"ap-lane-track",children:m.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:s,opacity:r===0?.4:1}})}),m.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[r,"%"]}),m.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function H3(e){const n=e.map(s=>s.num),r=n.length?Math.max(...n):0;return[...new Set([...n,r+1])].sort((s,o)=>s-o)}async function V3(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(s=>window.setTimeout(()=>s(!1),500))])}catch{n=!1}if(n)return!0;try{const s=document.createElement("textarea");s.value=e,s.setAttribute("readonly",""),s.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(s),s.select(),n=document.execCommand("copy"),s.remove()}catch{n=!1}return n}function W3(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function G3({onClose:e}){var Q,D,G;const[n,r]=I.useState(null),[s,o]=I.useState(null),[l,u]=I.useState(null),[c,f]=I.useState(null),[p,h]=I.useState(null),[g,y]=I.useState(()=>Math.floor(Date.now()/1e3)),w=I.useRef(null),[C,_]=I.useState(null),[S,b]=I.useState(!1),[E,N]=I.useState(""),[j,M]=I.useState(null),[O,q]=I.useState(null),[F,R]=I.useState(!1),P=I.useCallback(async(k=!1)=>{try{const[L,oe]=await Promise.all([fetch(`/api/claude-accounts${k?"?refresh=1":""}`),fetch("/api/cswap-auto")]);L.ok&&r(await L.json()),oe.ok&&o(await oe.json())}catch{}},[]),B=I.useCallback(async(k,L)=>{u(L),h(null);try{const $=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)})).json().catch(()=>null);return $!=null&&$.ok||h(($==null?void 0:$.detail)||($==null?void 0:$.reason)||"command failed"),$}catch{return h("server unreachable"),null}finally{u(null)}},[]),J=I.useCallback(async(k,L)=>{u(L),h(null);try{const $=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)})).json().catch(()=>null);return $!=null&&$.ok||h(($==null?void 0:$.detail)||($==null?void 0:$.reason)||"command failed"),$}catch{return h("server unreachable"),null}finally{u(null)}},[]);I.useEffect(()=>(P(!0),w.current=window.setInterval(()=>P(!1),$3),()=>{w.current!=null&&window.clearInterval(w.current)}),[P]),I.useEffect(()=>{const k=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(k)},[]);const Z=((Q=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:Q.value)??"90",A=(D=n==null?void 0:n.accounts)==null?void 0:D.find(k=>k.active),H=A!=null&&A.lanes.length?Math.max(...A.lanes.map(k=>k.pct)):null,U=H!=null&&H>=Number(Z)-15,ne=async k=>{f(k),h(null);try{const oe=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:k})})).json().catch(()=>null);oe!=null&&oe.ok||h((oe==null?void 0:oe.output)||(oe==null?void 0:oe.reason)||"switch failed"),await P(!0)}catch{h("server unreachable")}finally{f(null)}};return m.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[m.jsxs("div",{className:"ap-header",children:[m.jsx("h3",{children:"Accounts"}),m.jsxs("div",{className:"ap-header-right",children:[m.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>b(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),m.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>P(!0),title:"Reload from claude-swap",children:"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?m.jsxs(m.Fragment,{children:[(G=n.accounts)==null?void 0:G.map(k=>m.jsxs("div",{className:`ap-account${k.active?" active":""}${k.disabled?" disabled":""}`,children:[m.jsxs("div",{className:"ap-account-head",children:[m.jsx("span",{className:"ap-num",children:k.num}),k.alias&&m.jsx("span",{className:"ap-alias",children:k.alias}),m.jsx("span",{className:"ap-email",title:k.org??void 0,children:k.email}),m.jsx("button",{type:"button",className:`ap-more${C===k.num?" on":""}`,"aria-label":`Manage account ${k.num}`,"aria-expanded":C===k.num,title:"Share, rename, move, remove",onClick:()=>{_(C===k.num?null:k.num),N(k.alias??""),M(null),q(null),R(!1)},children:"⋯"}),k.active?m.jsx("span",{className:"ap-badge-active",children:"● active"}):m.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||k.disabled,onClick:()=>ne(k.num),title:k.disabled?"Held out of rotation":`Switch to ${k.alias??k.email}`,children:c===k.num?"…":"switch"})]}),k.lanes.length>0?k.lanes.map(L=>m.jsx(U3,{lane:L,nowSec:g},L.id)):m.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),m.jsxs("div",{className:"ap-meta",children:[k.error&&(()=>{const L=B3(k.error);return m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"ap-err",title:L.hint,children:L.text}),L.fixable&&m.jsx("button",{type:"button",className:"ap-fix",onClick:()=>b(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((s==null?void 0:s.enabled)||(s==null?void 0:s.external))&&!k.active&&m.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>B({action:"account",account:k.num,enabled:k.disabled},`rot-${k.num}`).then(()=>P(!0)),title:k.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:k.disabled?"held out":"in rotation"}),k.fetchedAt?m.jsxs("span",{className:`ap-age${k.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",ux(k.fetchedAt,g),z3(k.nextAt,g)]}):m.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===k.num&&m.jsxs("div",{className:"ap-manage",children:[m.jsxs("div",{className:"ap-manage-row",children:[m.jsx("span",{className:"ap-manage-label",children:"name"}),m.jsx("input",{className:"ap-manage-input",type:"text",value:E,onChange:L=>N(L.target.value),onKeyDown:L=>{L.key==="Enter"&&J({action:"alias",account:k.num,alias:E},`alias-${k.num}`).then(()=>P(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${k.num}`}),m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||E.trim()===(k.alias??""),onClick:()=>J({action:"alias",account:k.num,alias:E},`alias-${k.num}`).then(()=>P(!0)),title:"A short name to show instead of the email",children:"save"})]}),m.jsxs("div",{className:"ap-manage-row",children:[m.jsx("span",{className:"ap-manage-label",children:"slot"}),m.jsx("span",{className:"ap-field",children:m.jsx("select",{"aria-label":`Slot for account ${k.num}`,value:String(k.num),disabled:l!=null,onChange:L=>J({action:"move",account:k.num,slot:Number(L.target.value)},`move-${k.num}`).then(()=>P(!0)),children:H3(n.accounts??[]).map(L=>m.jsx("option",{value:L,children:L},L))})}),m.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),m.jsxs("div",{className:"ap-manage-row",children:[m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:"Copy this account to another agents-deck. The share carries a live login and expires in 10 minutes.",onClick:async()=>{R(!1);const L=await J({action:"share",account:k.num},`share-${k.num}`);L!=null&&L.ok&&q({num:k.num,blob:L.blob,expiresAt:L.expiresAt})},children:"share…"}),m.jsx("button",{type:"button",className:`ap-manage-btn danger${j===k.num?" armed":""}`,disabled:l!=null,title:j===k.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(j!==k.num){M(k.num),window.setTimeout(()=>M(L=>L===k.num?null:L),4e3);return}M(null),J({action:"remove",account:k.num},`rm-${k.num}`).then(()=>{_(null),P(!0)})},children:j===k.num?"confirm remove":"remove"})]}),(O==null?void 0:O.num)===k.num&&(()=>{const L=W3(O.expiresAt,g),oe=L.tone==="gone";return m.jsxs("div",{className:`ap-share${oe?" expired":""}`,children:[m.jsx("code",{className:"ap-share-blob",children:O.blob}),m.jsxs("div",{className:"ap-share-foot",children:[m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(oe){R(!1);const $=await J({action:"share",account:k.num},`share-${k.num}`);$!=null&&$.ok&&q({num:k.num,blob:$.blob,expiresAt:$.expiresAt});return}await V3(O.blob)&&(R(!0),window.setTimeout(()=>R(!1),1800))},children:oe?"make a new share":F?"copied":"copy"}),m.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",m.jsx("span",{className:`ap-share-expiry ${L.tone}`,children:L.text})]})]})]})})()]})]},k.num)),(s==null?void 0:s.ok)&&m.jsxs("div",{className:"ap-auto",children:[m.jsxs("div",{className:"ap-auto-head",children:[m.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),m.jsxs("span",{className:"ap-auto-ctl",children:[H!=null&&m.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(H),"%"]}),m.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:m.jsx("select",{"aria-label":"Switch threshold",value:Z,disabled:l!=null,onChange:k=>B({action:"setting",key:"autoswitch.threshold",value:k.target.value},"threshold").then(()=>P(!0)),children:D3.map(k=>m.jsxs("option",{value:k,children:[k,"%"]},k))})}),m.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>B({action:"enable",enabled:!s.enabled},"enable").then(()=>P(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[m.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.external&&m.jsxs("p",{className:"ap-auto-note",children:[m.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",m.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",s.enabled?" — this toggle takes over when you stop it.":"."]}),s.lastTick&&m.jsx("div",{className:"ap-auto-foot",children:m.jsxs("span",{className:"ap-auto-result",children:["checked ",ux(s.lastTick.at,g)]})})]}),p&&m.jsx("div",{className:"ap-failure",children:p}),m.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):m.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"claude-swap isn't installed."}),m.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&m.jsx("code",{className:"ap-cmd",children:n.hint}),m.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",m.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"No accounts added yet."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",m.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"Couldn't read the account store."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),S&&m.jsx(L3,{onClose:()=>b(!1),onChanged:()=>P(!0)})]})}const K3=3e4;function Y3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function X3(e){const n=e.thresholdMs??K3;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function Q3(e){return e.ctrlKey||e.metaKey||e.altKey}function cx(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function Ui(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function dx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function kl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}function Z3(e){return new Date(Date.now()-(e-1)*864e5).toISOString().slice(0,10).replace(/-/g,"")}const J3=[7,14,30,90];function eO(e){const[n,r]=I.useState(null),[s,o]=I.useState(!1),l=(u=!1)=>{o(!0);const f=`/api/ccusage?since=${Z3(e)}${u?"&refresh=1":""}`;fetch(f).then(p=>p.json()).then(r).catch(()=>r({ok:!1,error:"request failed"})).finally(()=>o(!1))};return I.useEffect(()=>{l(!1)},[e]),{data:n,loading:s,reload:()=>l(!0)}}function tO({onClose:e}){var b,E;const[n,r]=I.useState(30),[s,o]=I.useState(null),{data:l,loading:u,reload:c}=eO(n);I.useEffect(()=>{const N=j=>{j.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const f=l!=null&&l.ok?l.days??[]:[],p=I.useMemo(()=>f.reduce((N,j)=>Math.max(N,j.totalCost),0),[f]),{totalCost:h,totalTok:g,inOut:y,cacheRead:w,modelCosts:C}=I.useMemo(()=>{let N=0,j=0,M=0,O=0;const q=new Map;for(const F of f){N+=F.totalCost,j+=F.totalTokens,M+=F.inputTokens+F.outputTokens,O+=F.cacheReadTokens;for(const R of F.modelBreakdowns)q.set(R.modelName,(q.get(R.modelName)??0)+R.cost)}return{totalCost:N,totalTok:j,inOut:M,cacheRead:O,modelCosts:q}},[f]),_=I.useMemo(()=>Array.from(C.entries()).sort((N,j)=>j[1]-N[1]),[C]),S=s?f.find(N=>N.period===s)??null:null;return m.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:m.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[m.jsxs("header",{className:"uh-head",children:[m.jsxs("div",{className:"uh-titlewrap",children:[m.jsx("div",{className:"uh-title",children:"Usage history"}),m.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),m.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:J3.map(N=>m.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{r(N),o(null)},children:[N,"d"]},N))}),m.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),m.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&f.length===0?m.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?m.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):f.length===0?m.jsx("div",{className:"uh-status",children:"no usage in this range"}):m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"uh-totals",children:[m.jsx(El,{label:"total cost",val:Be(h),accent:!0}),m.jsx(El,{label:"tokens",val:Ui(g)}),m.jsx(El,{label:"input+output",val:Ui(y)}),m.jsx(El,{label:"cache reads",val:Ui(w)})]}),m.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:f.map(N=>{const j=p>0?N.totalCost/p*100:0,M=N.period===s;return m.jsxs("button",{className:`uh-bar-col${M?" sel":""}`,onClick:()=>o(M?null:N.period),title:`${N.period} · ${Be(N.totalCost)}`,style:{flexBasis:`${100/f.length}%`},children:[m.jsx("div",{className:"uh-bar",style:{height:`${Math.max(j,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((O,q)=>q.cost-O.cost).map(O=>{const q=N.totalCost>0?O.cost/N.totalCost*100:0;return m.jsx("div",{className:"uh-bar-seg",style:{height:`${q}%`,background:kl(O.modelName)}},O.modelName)})}),m.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),m.jsx("div",{className:"uh-legend",children:_.map(([N,j])=>m.jsxs("span",{className:"uh-legend-item",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:kl(N)}}),dx(N)," ",m.jsx("span",{className:"uh-legend-cost",children:Be(j)})]},N))}),S&&m.jsxs("div",{className:"uh-detail",children:[m.jsxs("div",{className:"uh-detail-head",children:[m.jsx("span",{className:"uh-detail-date",children:S.period}),m.jsx("span",{className:"uh-detail-cost",children:Be(S.totalCost)}),(E=(b=S.metadata)==null?void 0:b.agents)!=null&&E.length?m.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),m.jsxs("div",{className:"uh-detail-mini",children:[m.jsx(Nl,{label:"input",val:Ui(S.inputTokens)}),m.jsx(Nl,{label:"output",val:Ui(S.outputTokens)}),m.jsx(Nl,{label:"cache write",val:Ui(S.cacheCreationTokens)}),m.jsx(Nl,{label:"cache read",val:Ui(S.cacheReadTokens)})]}),m.jsx("div",{className:"uh-detail-models",children:S.modelBreakdowns.slice().sort((N,j)=>j.cost-N.cost).map(N=>{const j=S.totalCost>0?N.cost/S.totalCost*100:0;return m.jsxs("div",{className:"uh-model-row",children:[m.jsxs("span",{className:"uh-model-name",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:kl(N.modelName)}}),dx(N.modelName)]}),m.jsx("span",{className:"uh-model-bar",children:m.jsx("span",{className:"uh-model-bar-fill",style:{width:`${j}%`,background:kl(N.modelName)}})}),m.jsx("span",{className:"uh-model-cost",children:Be(N.cost)})]},N.modelName)})})]})]})]})})}function El({label:e,val:n,accent:r}){return m.jsxs("div",{className:"uh-stat",children:[m.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),m.jsx("span",{className:"uh-stat-label",children:e})]})}function Nl({label:e,val:n}){return m.jsxs("div",{className:"uh-ministat",children:[m.jsx("span",{className:"uh-ministat-val",children:n}),m.jsx("span",{className:"uh-ministat-label",children:e})]})}function gv(e){throw new 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 ad,fx;function nO(){if(fx)return ad;fx=1;function e(){this.__data__=[],this.size=0}return ad=e,ad}var ld,hx;function Ws(){if(hx)return ld;hx=1;function e(n,r){return n===r||n!==n&&r!==r}return ld=e,ld}var ud,px;function Ql(){if(px)return ud;px=1;var e=Ws();function n(r,s){for(var o=r.length;o--;)if(e(r[o][0],s))return o;return-1}return ud=n,ud}var cd,mx;function rO(){if(mx)return cd;mx=1;var e=Ql(),n=Array.prototype,r=n.splice;function s(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return cd=s,cd}var dd,gx;function iO(){if(gx)return dd;gx=1;var e=Ql();function n(r){var s=this.__data__,o=e(s,r);return o<0?void 0:s[o][1]}return dd=n,dd}var fd,vx;function sO(){if(vx)return fd;vx=1;var e=Ql();function n(r){return e(this.__data__,r)>-1}return fd=n,fd}var hd,yx;function oO(){if(yx)return hd;yx=1;var e=Ql();function n(r,s){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,s])):o[l][1]=s,this}return hd=n,hd}var pd,wx;function Zl(){if(wx)return pd;wx=1;var e=nO(),n=rO(),r=iO(),s=sO(),o=oO();function l(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,pd=l,pd}var md,xx;function aO(){if(xx)return md;xx=1;var e=Zl();function n(){this.__data__=new e,this.size=0}return md=n,md}var gd,_x;function lO(){if(_x)return gd;_x=1;function e(n){var r=this.__data__,s=r.delete(n);return this.size=r.size,s}return gd=e,gd}var vd,Sx;function uO(){if(Sx)return vd;Sx=1;function e(n){return this.__data__.get(n)}return vd=e,vd}var yd,bx;function cO(){if(bx)return yd;bx=1;function e(n){return this.__data__.has(n)}return yd=e,yd}var wd,kx;function kN(){if(kx)return wd;kx=1;var e=typeof dl=="object"&&dl&&dl.Object===Object&&dl;return wd=e,wd}var xd,Ex;function Jn(){if(Ex)return xd;Ex=1;var e=kN(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return xd=r,xd}var _d,Nx;function Gs(){if(Nx)return _d;Nx=1;var e=Jn(),n=e.Symbol;return _d=n,_d}var Sd,Cx;function dO(){if(Cx)return Sd;Cx=1;var e=Gs(),n=Object.prototype,r=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),f=u[o];try{u[o]=void 0;var p=!0}catch{}var h=s.call(u);return p&&(c?u[o]=f:delete u[o]),h}return Sd=l,Sd}var bd,jx;function fO(){if(jx)return bd;jx=1;var e=Object.prototype,n=e.toString;function r(s){return n.call(s)}return bd=r,bd}var kd,Rx;function Ji(){if(Rx)return kd;Rx=1;var e=Gs(),n=dO(),r=fO(),s="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:s:l&&l in Object(c)?n(c):r(c)}return kd=u,kd}var Ed,Tx;function On(){if(Tx)return Ed;Tx=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return Ed=e,Ed}var Nd,Ax;function aa(){if(Ax)return Nd;Ax=1;var e=Ji(),n=On(),r="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var f=e(c);return f==s||f==o||f==r||f==l}return Nd=u,Nd}var Cd,Ix;function hO(){if(Ix)return Cd;Ix=1;var e=Jn(),n=e["__core-js_shared__"];return Cd=n,Cd}var jd,Mx;function pO(){if(Mx)return jd;Mx=1;var e=hO(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function r(s){return!!n&&n in s}return jd=r,jd}var Rd,Px;function EN(){if(Px)return Rd;Px=1;var e=Function.prototype,n=e.toString;function r(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Rd=r,Rd}var Td,Ox;function mO(){if(Ox)return Td;Ox=1;var e=aa(),n=pO(),r=On(),s=EN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,f=u.toString,p=c.hasOwnProperty,h=RegExp("^"+f.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g(y){if(!r(y)||n(y))return!1;var w=e(y)?h:l;return w.test(s(y))}return Td=g,Td}var Ad,qx;function gO(){if(qx)return Ad;qx=1;function e(n,r){return n==null?void 0:n[r]}return Ad=e,Ad}var Id,Lx;function es(){if(Lx)return Id;Lx=1;var e=mO(),n=gO();function r(s,o){var l=n(s,o);return e(l)?l:void 0}return Id=r,Id}var Md,$x;function vv(){if($x)return Md;$x=1;var e=es(),n=Jn(),r=e(n,"Map");return Md=r,Md}var Pd,Dx;function Jl(){if(Dx)return Pd;Dx=1;var e=es(),n=e(Object,"create");return Pd=n,Pd}var Od,Fx;function vO(){if(Fx)return Od;Fx=1;var e=Jl();function n(){this.__data__=e?e(null):{},this.size=0}return Od=n,Od}var qd,zx;function yO(){if(zx)return qd;zx=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return qd=e,qd}var Ld,Bx;function wO(){if(Bx)return Ld;Bx=1;var e=Jl(),n="__lodash_hash_undefined__",r=Object.prototype,s=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return s.call(u,l)?u[l]:void 0}return Ld=o,Ld}var $d,Ux;function xO(){if(Ux)return $d;Ux=1;var e=Jl(),n=Object.prototype,r=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return $d=s,$d}var Dd,Hx;function _O(){if(Hx)return Dd;Hx=1;var e=Jl(),n="__lodash_hash_undefined__";function r(s,o){var l=this.__data__;return this.size+=this.has(s)?0:1,l[s]=e&&o===void 0?n:o,this}return Dd=r,Dd}var Fd,Vx;function SO(){if(Vx)return Fd;Vx=1;var e=vO(),n=yO(),r=wO(),s=xO(),o=_O();function l(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Fd=l,Fd}var zd,Wx;function bO(){if(Wx)return zd;Wx=1;var e=SO(),n=Zl(),r=vv();function s(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return zd=s,zd}var Bd,Gx;function kO(){if(Gx)return Bd;Gx=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Bd=e,Bd}var Ud,Kx;function eu(){if(Kx)return Ud;Kx=1;var e=kO();function n(r,s){var o=r.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Ud=n,Ud}var Hd,Yx;function EO(){if(Yx)return Hd;Yx=1;var e=eu();function n(r){var s=e(this,r).delete(r);return this.size-=s?1:0,s}return Hd=n,Hd}var Vd,Xx;function NO(){if(Xx)return Vd;Xx=1;var e=eu();function n(r){return e(this,r).get(r)}return Vd=n,Vd}var Wd,Qx;function CO(){if(Qx)return Wd;Qx=1;var e=eu();function n(r){return e(this,r).has(r)}return Wd=n,Wd}var Gd,Zx;function jO(){if(Zx)return Gd;Zx=1;var e=eu();function n(r,s){var o=e(this,r),l=o.size;return o.set(r,s),this.size+=o.size==l?0:1,this}return Gd=n,Gd}var Kd,Jx;function yv(){if(Jx)return Kd;Jx=1;var e=bO(),n=EO(),r=NO(),s=CO(),o=jO();function l(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Kd=l,Kd}var Yd,e1;function RO(){if(e1)return Yd;e1=1;var e=Zl(),n=vv(),r=yv(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var f=c.__data__;if(!n||f.length<s-1)return f.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(f)}return c.set(l,u),this.size=c.size,this}return Yd=o,Yd}var Xd,t1;function tu(){if(t1)return Xd;t1=1;var e=Zl(),n=aO(),r=lO(),s=uO(),o=cO(),l=RO();function u(c){var f=this.__data__=new e(c);this.size=f.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,Xd=u,Xd}var Qd,n1;function wv(){if(n1)return Qd;n1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o&&r(n[s],s,n)!==!1;);return n}return Qd=e,Qd}var Zd,r1;function NN(){if(r1)return Zd;r1=1;var e=es(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return Zd=n,Zd}var Jd,i1;function nu(){if(i1)return Jd;i1=1;var e=NN();function n(r,s,o){s=="__proto__"&&e?e(r,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[s]=o}return Jd=n,Jd}var ef,s1;function ru(){if(s1)return ef;s1=1;var e=nu(),n=Ws(),r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c){var f=l[u];(!(s.call(l,u)&&n(f,c))||c===void 0&&!(u in l))&&e(l,u,c)}return ef=o,ef}var tf,o1;function la(){if(o1)return tf;o1=1;var e=ru(),n=nu();function r(s,o,l,u){var c=!l;l||(l={});for(var f=-1,p=o.length;++f<p;){var h=o[f],g=u?u(l[h],s[h],h,l,s):void 0;g===void 0&&(g=s[h]),c?n(l,h,g):e(l,h,g)}return l}return tf=r,tf}var nf,a1;function TO(){if(a1)return nf;a1=1;function e(n,r){for(var s=-1,o=Array(n);++s<n;)o[s]=r(s);return o}return nf=e,nf}var rf,l1;function fr(){if(l1)return rf;l1=1;function e(n){return n!=null&&typeof n=="object"}return rf=e,rf}var sf,u1;function AO(){if(u1)return sf;u1=1;var e=Ji(),n=fr(),r="[object Arguments]";function s(o){return n(o)&&e(o)==r}return sf=s,sf}var of,c1;function ua(){if(c1)return of;c1=1;var e=AO(),n=fr(),r=Object.prototype,s=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&s.call(u,"callee")&&!o.call(u,"callee")};return of=l,of}var af,d1;function St(){if(d1)return af;d1=1;var e=Array.isArray;return af=e,af}var Uo={exports:{}},lf,f1;function IO(){if(f1)return lf;f1=1;function e(){return!1}return lf=e,lf}Uo.exports;var h1;function Ks(){return h1||(h1=1,(function(e,n){var r=Jn(),s=IO(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,f=c?c.isBuffer:void 0,p=f||s;e.exports=p})(Uo,Uo.exports)),Uo.exports}var uf,p1;function iu(){if(p1)return uf;p1=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(s,o){var l=typeof s;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(s))&&s>-1&&s%1==0&&s<o}return uf=r,uf}var cf,m1;function xv(){if(m1)return cf;m1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return cf=n,cf}var df,g1;function MO(){if(g1)return df;g1=1;var e=Ji(),n=xv(),r=fr(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",f="[object Function]",p="[object Map]",h="[object Number]",g="[object Object]",y="[object RegExp]",w="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",E="[object Float32Array]",N="[object Float64Array]",j="[object Int8Array]",M="[object Int16Array]",O="[object Int32Array]",q="[object Uint8Array]",F="[object Uint8ClampedArray]",R="[object Uint16Array]",P="[object Uint32Array]",B={};B[E]=B[N]=B[j]=B[M]=B[O]=B[q]=B[F]=B[R]=B[P]=!0,B[s]=B[o]=B[S]=B[l]=B[b]=B[u]=B[c]=B[f]=B[p]=B[h]=B[g]=B[y]=B[w]=B[C]=B[_]=!1;function J(Z){return r(Z)&&n(Z.length)&&!!B[e(Z)]}return df=J,df}var ff,v1;function su(){if(v1)return ff;v1=1;function e(n){return function(r){return n(r)}}return ff=e,ff}var Ho={exports:{}};Ho.exports;var y1;function _v(){return y1||(y1=1,(function(e,n){var r=kN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&r.process,c=(function(){try{var f=o&&o.require&&o.require("util").types;return f||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Ho,Ho.exports)),Ho.exports}var hf,w1;function ca(){if(w1)return hf;w1=1;var e=MO(),n=su(),r=_v(),s=r&&r.isTypedArray,o=s?n(s):e;return hf=o,hf}var pf,x1;function CN(){if(x1)return pf;x1=1;var e=TO(),n=ua(),r=St(),s=Ks(),o=iu(),l=ca(),u=Object.prototype,c=u.hasOwnProperty;function f(p,h){var g=r(p),y=!g&&n(p),w=!g&&!y&&s(p),C=!g&&!y&&!w&&l(p),_=g||y||w||C,S=_?e(p.length,String):[],b=S.length;for(var E in p)(h||c.call(p,E))&&!(_&&(E=="length"||w&&(E=="offset"||E=="parent")||C&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||o(E,b)))&&S.push(E);return S}return pf=f,pf}var mf,_1;function ou(){if(_1)return mf;_1=1;var e=Object.prototype;function n(r){var s=r&&r.constructor,o=typeof s=="function"&&s.prototype||e;return r===o}return mf=n,mf}var gf,S1;function jN(){if(S1)return gf;S1=1;function e(n,r){return function(s){return n(r(s))}}return gf=e,gf}var vf,b1;function PO(){if(b1)return vf;b1=1;var e=jN(),n=e(Object.keys,Object);return vf=n,vf}var yf,k1;function Sv(){if(k1)return yf;k1=1;var e=ou(),n=PO(),r=Object.prototype,s=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))s.call(l,c)&&c!="constructor"&&u.push(c);return u}return yf=o,yf}var wf,E1;function qr(){if(E1)return wf;E1=1;var e=aa(),n=xv();function r(s){return s!=null&&n(s.length)&&!e(s)}return wf=r,wf}var xf,N1;function yi(){if(N1)return xf;N1=1;var e=CN(),n=Sv(),r=qr();function s(o){return r(o)?e(o):n(o)}return xf=s,xf}var _f,C1;function OO(){if(C1)return _f;C1=1;var e=la(),n=yi();function r(s,o){return s&&e(o,n(o),s)}return _f=r,_f}var Sf,j1;function qO(){if(j1)return Sf;j1=1;function e(n){var r=[];if(n!=null)for(var s in Object(n))r.push(s);return r}return Sf=e,Sf}var bf,R1;function LO(){if(R1)return bf;R1=1;var e=On(),n=ou(),r=qO(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),f=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||f.push(p);return f}return bf=l,bf}var kf,T1;function ts(){if(T1)return kf;T1=1;var e=CN(),n=LO(),r=qr();function s(o){return r(o)?e(o,!0):n(o)}return kf=s,kf}var Ef,A1;function $O(){if(A1)return Ef;A1=1;var e=la(),n=ts();function r(s,o){return s&&e(o,n(o),s)}return Ef=r,Ef}var Vo={exports:{}};Vo.exports;var I1;function RN(){return I1||(I1=1,(function(e,n){var r=Jn(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function f(p,h){if(h)return p.slice();var g=p.length,y=c?c(g):new p.constructor(g);return p.copy(y),y}e.exports=f})(Vo,Vo.exports)),Vo.exports}var Nf,M1;function TN(){if(M1)return Nf;M1=1;function e(n,r){var s=-1,o=n.length;for(r||(r=Array(o));++s<o;)r[s]=n[s];return r}return Nf=e,Nf}var Cf,P1;function AN(){if(P1)return Cf;P1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];r(c,s,n)&&(u[l++]=c)}return u}return Cf=e,Cf}var jf,O1;function IN(){if(O1)return jf;O1=1;function e(){return[]}return jf=e,jf}var Rf,q1;function bv(){if(q1)return Rf;q1=1;var e=AN(),n=IN(),r=Object.prototype,s=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return s.call(u,c)}))}:n;return Rf=l,Rf}var Tf,L1;function DO(){if(L1)return Tf;L1=1;var e=la(),n=bv();function r(s,o){return e(s,n(s),o)}return Tf=r,Tf}var Af,$1;function kv(){if($1)return Af;$1=1;function e(n,r){for(var s=-1,o=r.length,l=n.length;++s<o;)n[l+s]=r[s];return n}return Af=e,Af}var If,D1;function au(){if(D1)return If;D1=1;var e=jN(),n=e(Object.getPrototypeOf,Object);return If=n,If}var Mf,F1;function MN(){if(F1)return Mf;F1=1;var e=kv(),n=au(),r=bv(),s=IN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:s;return Mf=l,Mf}var Pf,z1;function FO(){if(z1)return Pf;z1=1;var e=la(),n=MN();function r(s,o){return e(s,n(s),o)}return Pf=r,Pf}var Of,B1;function PN(){if(B1)return Of;B1=1;var e=kv(),n=St();function r(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return Of=r,Of}var qf,U1;function ON(){if(U1)return qf;U1=1;var e=PN(),n=bv(),r=yi();function s(o){return e(o,r,n)}return qf=s,qf}var Lf,H1;function zO(){if(H1)return Lf;H1=1;var e=PN(),n=MN(),r=ts();function s(o){return e(o,r,n)}return Lf=s,Lf}var $f,V1;function BO(){if(V1)return $f;V1=1;var e=es(),n=Jn(),r=e(n,"DataView");return $f=r,$f}var Df,W1;function UO(){if(W1)return Df;W1=1;var e=es(),n=Jn(),r=e(n,"Promise");return Df=r,Df}var Ff,G1;function qN(){if(G1)return Ff;G1=1;var e=es(),n=Jn(),r=e(n,"Set");return Ff=r,Ff}var zf,K1;function HO(){if(K1)return zf;K1=1;var e=es(),n=Jn(),r=e(n,"WeakMap");return zf=r,zf}var Bf,Y1;function Ys(){if(Y1)return Bf;Y1=1;var e=BO(),n=vv(),r=UO(),s=qN(),o=HO(),l=Ji(),u=EN(),c="[object Map]",f="[object Object]",p="[object Promise]",h="[object Set]",g="[object WeakMap]",y="[object DataView]",w=u(e),C=u(n),_=u(r),S=u(s),b=u(o),E=l;return(e&&E(new e(new ArrayBuffer(1)))!=y||n&&E(new n)!=c||r&&E(r.resolve())!=p||s&&E(new s)!=h||o&&E(new o)!=g)&&(E=function(N){var j=l(N),M=j==f?N.constructor:void 0,O=M?u(M):"";if(O)switch(O){case w:return y;case C:return c;case _:return p;case S:return h;case b:return g}return j}),Bf=E,Bf}var Uf,X1;function VO(){if(X1)return Uf;X1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s){var o=s.length,l=new s.constructor(o);return o&&typeof s[0]=="string"&&n.call(s,"index")&&(l.index=s.index,l.input=s.input),l}return Uf=r,Uf}var Hf,Q1;function LN(){if(Q1)return Hf;Q1=1;var e=Jn(),n=e.Uint8Array;return Hf=n,Hf}var Vf,Z1;function Ev(){if(Z1)return Vf;Z1=1;var e=LN();function n(r){var s=new r.constructor(r.byteLength);return new e(s).set(new e(r)),s}return Vf=n,Vf}var Wf,J1;function WO(){if(J1)return Wf;J1=1;var e=Ev();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Wf=n,Wf}var Gf,e_;function GO(){if(e_)return Gf;e_=1;var e=/\w*$/;function n(r){var s=new r.constructor(r.source,e.exec(r));return s.lastIndex=r.lastIndex,s}return Gf=n,Gf}var Kf,t_;function KO(){if(t_)return Kf;t_=1;var e=Gs(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function s(o){return r?Object(r.call(o)):{}}return Kf=s,Kf}var Yf,n_;function $N(){if(n_)return Yf;n_=1;var e=Ev();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Yf=n,Yf}var Xf,r_;function YO(){if(r_)return Xf;r_=1;var e=Ev(),n=WO(),r=GO(),s=KO(),o=$N(),l="[object Boolean]",u="[object Date]",c="[object Map]",f="[object Number]",p="[object RegExp]",h="[object Set]",g="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",E="[object Int16Array]",N="[object Int32Array]",j="[object Uint8Array]",M="[object Uint8ClampedArray]",O="[object Uint16Array]",q="[object Uint32Array]";function F(R,P,B){var J=R.constructor;switch(P){case w:return e(R);case l:case u:return new J(+R);case C:return n(R,B);case _:case S:case b:case E:case N:case j:case M:case O:case q:return o(R,B);case c:return new J;case f:case g:return new J(R);case p:return r(R);case h:return new J;case y:return s(R)}}return Xf=F,Xf}var Qf,i_;function DN(){if(i_)return Qf;i_=1;var e=On(),n=Object.create,r=(function(){function s(){}return function(o){if(!e(o))return{};if(n)return n(o);s.prototype=o;var l=new s;return s.prototype=void 0,l}})();return Qf=r,Qf}var Zf,s_;function FN(){if(s_)return Zf;s_=1;var e=DN(),n=au(),r=ou();function s(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return Zf=s,Zf}var Jf,o_;function XO(){if(o_)return Jf;o_=1;var e=Ys(),n=fr(),r="[object Map]";function s(o){return n(o)&&e(o)==r}return Jf=s,Jf}var eh,a_;function QO(){if(a_)return eh;a_=1;var e=XO(),n=su(),r=_v(),s=r&&r.isMap,o=s?n(s):e;return eh=o,eh}var th,l_;function ZO(){if(l_)return th;l_=1;var e=Ys(),n=fr(),r="[object Set]";function s(o){return n(o)&&e(o)==r}return th=s,th}var nh,u_;function JO(){if(u_)return nh;u_=1;var e=ZO(),n=su(),r=_v(),s=r&&r.isSet,o=s?n(s):e;return nh=o,nh}var rh,c_;function zN(){if(c_)return rh;c_=1;var e=tu(),n=wv(),r=ru(),s=OO(),o=$O(),l=RN(),u=TN(),c=DO(),f=FO(),p=ON(),h=zO(),g=Ys(),y=VO(),w=YO(),C=FN(),_=St(),S=Ks(),b=QO(),E=On(),N=JO(),j=yi(),M=ts(),O=1,q=2,F=4,R="[object Arguments]",P="[object Array]",B="[object Boolean]",J="[object Date]",Z="[object Error]",A="[object Function]",H="[object GeneratorFunction]",U="[object Map]",ne="[object Number]",Q="[object Object]",D="[object RegExp]",G="[object Set]",k="[object String]",L="[object Symbol]",oe="[object WeakMap]",$="[object ArrayBuffer]",Y="[object DataView]",ee="[object Float32Array]",se="[object Float64Array]",ae="[object Int8Array]",pe="[object Int16Array]",ge="[object Int32Array]",Ae="[object Uint8Array]",Oe="[object Uint8ClampedArray]",Me="[object Uint16Array]",Pe="[object Uint32Array]",ke={};ke[R]=ke[P]=ke[$]=ke[Y]=ke[B]=ke[J]=ke[ee]=ke[se]=ke[ae]=ke[pe]=ke[ge]=ke[U]=ke[ne]=ke[Q]=ke[D]=ke[G]=ke[k]=ke[L]=ke[Ae]=ke[Oe]=ke[Me]=ke[Pe]=!0,ke[Z]=ke[A]=ke[oe]=!1;function We(ve,ye,Ge,ut,it,Ke){var $e,Qe=ye&O,bt=ye&q,ct=ye&F;if(Ge&&($e=it?Ge(ve,ut,it,Ke):Ge(ve)),$e!==void 0)return $e;if(!E(ve))return ve;var pt=_(ve);if(pt){if($e=y(ve),!Qe)return u(ve,$e)}else{var mt=g(ve),kt=mt==A||mt==H;if(S(ve))return l(ve,Qe);if(mt==Q||mt==R||kt&&!it){if($e=bt||kt?{}:C(ve),!Qe)return bt?f(ve,o($e,ve)):c(ve,s($e,ve))}else{if(!ke[mt])return it?ve:{};$e=w(ve,mt,Qe)}}Ke||(Ke=new e);var He=Ke.get(ve);if(He)return He;Ke.set(ve,$e),N(ve)?ve.forEach(function(gt){$e.add(We(gt,ye,Ge,gt,ve,Ke))}):b(ve)&&ve.forEach(function(gt,yt){$e.set(yt,We(gt,ye,Ge,yt,ve,Ke))});var Je=ct?bt?h:p:bt?M:j,dt=pt?void 0:Je(ve);return n(dt||ve,function(gt,yt){dt&&(yt=gt,gt=ve[yt]),r($e,yt,We(gt,ye,Ge,yt,ve,Ke))}),$e}return rh=We,rh}var ih,d_;function eq(){if(d_)return ih;d_=1;var e=zN(),n=4;function r(s){return e(s,n)}return ih=r,ih}var sh,f_;function Nv(){if(f_)return sh;f_=1;function e(n){return function(){return n}}return sh=e,sh}var oh,h_;function tq(){if(h_)return oh;h_=1;function e(n){return function(r,s,o){for(var l=-1,u=Object(r),c=o(r),f=c.length;f--;){var p=c[n?f:++l];if(s(u[p],p,u)===!1)break}return r}}return oh=e,oh}var ah,p_;function Cv(){if(p_)return ah;p_=1;var e=tq(),n=e();return ah=n,ah}var lh,m_;function jv(){if(m_)return lh;m_=1;var e=Cv(),n=yi();function r(s,o){return s&&e(s,o,n)}return lh=r,lh}var uh,g_;function nq(){if(g_)return uh;g_=1;var e=qr();function n(r,s){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=s?u:-1,f=Object(o);(s?c--:++c<u)&&l(f[c],c,f)!==!1;);return o}}return uh=n,uh}var ch,v_;function lu(){if(v_)return ch;v_=1;var e=jv(),n=nq(),r=n(e);return ch=r,ch}var dh,y_;function ns(){if(y_)return dh;y_=1;function e(n){return n}return dh=e,dh}var fh,w_;function BN(){if(w_)return fh;w_=1;var e=ns();function n(r){return typeof r=="function"?r:e}return fh=n,fh}var hh,x_;function UN(){if(x_)return hh;x_=1;var e=wv(),n=lu(),r=BN(),s=St();function o(l,u){var c=s(l)?e:n;return c(l,r(u))}return hh=o,hh}var ph,__;function HN(){return __||(__=1,ph=UN()),ph}var mh,S_;function rq(){if(S_)return mh;S_=1;var e=lu();function n(r,s){var o=[];return e(r,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return mh=n,mh}var gh,b_;function iq(){if(b_)return gh;b_=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return gh=n,gh}var vh,k_;function sq(){if(k_)return vh;k_=1;function e(n){return this.__data__.has(n)}return vh=e,vh}var yh,E_;function VN(){if(E_)return yh;E_=1;var e=yv(),n=iq(),r=sq();function s(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return s.prototype.add=s.prototype.push=n,s.prototype.has=r,yh=s,yh}var wh,N_;function oq(){if(N_)return wh;N_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o;)if(r(n[s],s,n))return!0;return!1}return wh=e,wh}var xh,C_;function WN(){if(C_)return xh;C_=1;function e(n,r){return n.has(r)}return xh=e,xh}var _h,j_;function GN(){if(j_)return _h;j_=1;var e=VN(),n=oq(),r=WN(),s=1,o=2;function l(u,c,f,p,h,g){var y=f&s,w=u.length,C=c.length;if(w!=C&&!(y&&C>w))return!1;var _=g.get(u),S=g.get(c);if(_&&S)return _==c&&S==u;var b=-1,E=!0,N=f&o?new e:void 0;for(g.set(u,c),g.set(c,u);++b<w;){var j=u[b],M=c[b];if(p)var O=y?p(M,j,b,c,u,g):p(j,M,b,u,c,g);if(O!==void 0){if(O)continue;E=!1;break}if(N){if(!n(c,function(q,F){if(!r(N,F)&&(j===q||h(j,q,f,p,g)))return N.push(F)})){E=!1;break}}else if(!(j===M||h(j,M,f,p,g))){E=!1;break}}return g.delete(u),g.delete(c),E}return _h=l,_h}var Sh,R_;function aq(){if(R_)return Sh;R_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o,l){s[++r]=[l,o]}),s}return Sh=e,Sh}var bh,T_;function Rv(){if(T_)return bh;T_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o){s[++r]=o}),s}return bh=e,bh}var kh,A_;function lq(){if(A_)return kh;A_=1;var e=Gs(),n=LN(),r=Ws(),s=GN(),o=aq(),l=Rv(),u=1,c=2,f="[object Boolean]",p="[object Date]",h="[object Error]",g="[object Map]",y="[object Number]",w="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",E="[object DataView]",N=e?e.prototype:void 0,j=N?N.valueOf:void 0;function M(O,q,F,R,P,B,J){switch(F){case E:if(O.byteLength!=q.byteLength||O.byteOffset!=q.byteOffset)return!1;O=O.buffer,q=q.buffer;case b:return!(O.byteLength!=q.byteLength||!B(new n(O),new n(q)));case f:case p:case y:return r(+O,+q);case h:return O.name==q.name&&O.message==q.message;case w:case _:return O==q+"";case g:var Z=o;case C:var A=R&u;if(Z||(Z=l),O.size!=q.size&&!A)return!1;var H=J.get(O);if(H)return H==q;R|=c,J.set(O,q);var U=s(Z(O),Z(q),R,P,B,J);return J.delete(O),U;case S:if(j)return j.call(O)==j.call(q)}return!1}return kh=M,kh}var Eh,I_;function uq(){if(I_)return Eh;I_=1;var e=ON(),n=1,r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c,f,p,h){var g=c&n,y=e(l),w=y.length,C=e(u),_=C.length;if(w!=_&&!g)return!1;for(var S=w;S--;){var b=y[S];if(!(g?b in u:s.call(u,b)))return!1}var E=h.get(l),N=h.get(u);if(E&&N)return E==u&&N==l;var j=!0;h.set(l,u),h.set(u,l);for(var M=g;++S<w;){b=y[S];var O=l[b],q=u[b];if(f)var F=g?f(q,O,b,u,l,h):f(O,q,b,l,u,h);if(!(F===void 0?O===q||p(O,q,c,f,h):F)){j=!1;break}M||(M=b=="constructor")}if(j&&!M){var R=l.constructor,P=u.constructor;R!=P&&"constructor"in l&&"constructor"in u&&!(typeof R=="function"&&R instanceof R&&typeof P=="function"&&P instanceof P)&&(j=!1)}return h.delete(l),h.delete(u),j}return Eh=o,Eh}var Nh,M_;function cq(){if(M_)return Nh;M_=1;var e=tu(),n=GN(),r=lq(),s=uq(),o=Ys(),l=St(),u=Ks(),c=ca(),f=1,p="[object Arguments]",h="[object Array]",g="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function C(_,S,b,E,N,j){var M=l(_),O=l(S),q=M?h:o(_),F=O?h:o(S);q=q==p?g:q,F=F==p?g:F;var R=q==g,P=F==g,B=q==F;if(B&&u(_)){if(!u(S))return!1;M=!0,R=!1}if(B&&!R)return j||(j=new e),M||c(_)?n(_,S,b,E,N,j):r(_,S,q,b,E,N,j);if(!(b&f)){var J=R&&w.call(_,"__wrapped__"),Z=P&&w.call(S,"__wrapped__");if(J||Z){var A=J?_.value():_,H=Z?S.value():S;return j||(j=new e),N(A,H,b,E,j)}}return B?(j||(j=new e),s(_,S,b,E,N,j)):!1}return Nh=C,Nh}var Ch,P_;function KN(){if(P_)return Ch;P_=1;var e=cq(),n=fr();function r(s,o,l,u,c){return s===o?!0:s==null||o==null||!n(s)&&!n(o)?s!==s&&o!==o:e(s,o,l,u,r,c)}return Ch=r,Ch}var jh,O_;function dq(){if(O_)return jh;O_=1;var e=tu(),n=KN(),r=1,s=2;function o(l,u,c,f){var p=c.length,h=p,g=!f;if(l==null)return!h;for(l=Object(l);p--;){var y=c[p];if(g&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<h;){y=c[p];var w=y[0],C=l[w],_=y[1];if(g&&y[2]){if(C===void 0&&!(w in l))return!1}else{var S=new e;if(f)var b=f(C,_,w,l,u,S);if(!(b===void 0?n(_,C,r|s,f,S):b))return!1}}return!0}return jh=o,jh}var Rh,q_;function YN(){if(q_)return Rh;q_=1;var e=On();function n(r){return r===r&&!e(r)}return Rh=n,Rh}var Th,L_;function fq(){if(L_)return Th;L_=1;var e=YN(),n=yi();function r(s){for(var o=n(s),l=o.length;l--;){var u=o[l],c=s[u];o[l]=[u,c,e(c)]}return o}return Th=r,Th}var Ah,$_;function XN(){if($_)return Ah;$_=1;function e(n,r){return function(s){return s==null?!1:s[n]===r&&(r!==void 0||n in Object(s))}}return Ah=e,Ah}var Ih,D_;function hq(){if(D_)return Ih;D_=1;var e=dq(),n=fq(),r=XN();function s(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Ih=s,Ih}var Mh,F_;function Xs(){if(F_)return Mh;F_=1;var e=Ji(),n=fr(),r="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==r}return Mh=s,Mh}var Ph,z_;function Tv(){if(z_)return Ph;z_=1;var e=St(),n=Xs(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:s.test(l)||!r.test(l)||u!=null&&l in Object(u)}return Ph=o,Ph}var Oh,B_;function pq(){if(B_)return Oh;B_=1;var e=yv(),n="Expected a function";function r(s,o){if(typeof s!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],f=l.cache;if(f.has(c))return f.get(c);var p=s.apply(this,u);return l.cache=f.set(c,p)||f,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,Oh=r,Oh}var qh,U_;function mq(){if(U_)return qh;U_=1;var e=pq(),n=500;function r(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return qh=r,qh}var Lh,H_;function gq(){if(H_)return Lh;H_=1;var e=mq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,f,p){l.push(f?p.replace(r,"$1"):c||u)}),l});return Lh=s,Lh}var $h,V_;function uu(){if(V_)return $h;V_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=r(n[s],s,n);return l}return $h=e,$h}var Dh,W_;function vq(){if(W_)return Dh;W_=1;var e=Gs(),n=uu(),r=St(),s=Xs(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(s(c))return l?l.call(c):"";var f=c+"";return f=="0"&&1/c==-1/0?"-0":f}return Dh=u,Dh}var Fh,G_;function QN(){if(G_)return Fh;G_=1;var e=vq();function n(r){return r==null?"":e(r)}return Fh=n,Fh}var zh,K_;function cu(){if(K_)return zh;K_=1;var e=St(),n=Tv(),r=gq(),s=QN();function o(l,u){return e(l)?l:n(l,u)?[l]:r(s(l))}return zh=o,zh}var Bh,Y_;function da(){if(Y_)return Bh;Y_=1;var e=Xs();function n(r){if(typeof r=="string"||e(r))return r;var s=r+"";return s=="0"&&1/r==-1/0?"-0":s}return Bh=n,Bh}var Uh,X_;function du(){if(X_)return Uh;X_=1;var e=cu(),n=da();function r(s,o){o=e(o,s);for(var l=0,u=o.length;s!=null&&l<u;)s=s[n(o[l++])];return l&&l==u?s:void 0}return Uh=r,Uh}var Hh,Q_;function yq(){if(Q_)return Hh;Q_=1;var e=du();function n(r,s,o){var l=r==null?void 0:e(r,s);return l===void 0?o:l}return Hh=n,Hh}var Vh,Z_;function wq(){if(Z_)return Vh;Z_=1;function e(n,r){return n!=null&&r in Object(n)}return Vh=e,Vh}var Wh,J_;function ZN(){if(J_)return Wh;J_=1;var e=cu(),n=ua(),r=St(),s=iu(),o=xv(),l=da();function u(c,f,p){f=e(f,c);for(var h=-1,g=f.length,y=!1;++h<g;){var w=l(f[h]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++h!=g?y:(g=c==null?0:c.length,!!g&&o(g)&&s(w,g)&&(r(c)||n(c)))}return Wh=u,Wh}var Gh,eS;function JN(){if(eS)return Gh;eS=1;var e=wq(),n=ZN();function r(s,o){return s!=null&&n(s,o,e)}return Gh=r,Gh}var Kh,tS;function xq(){if(tS)return Kh;tS=1;var e=KN(),n=yq(),r=JN(),s=Tv(),o=YN(),l=XN(),u=da(),c=1,f=2;function p(h,g){return s(h)&&o(g)?l(u(h),g):function(y){var w=n(y,h);return w===void 0&&w===g?r(y,h):e(g,w,c|f)}}return Kh=p,Kh}var Yh,nS;function eC(){if(nS)return Yh;nS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Yh=e,Yh}var Xh,rS;function _q(){if(rS)return Xh;rS=1;var e=du();function n(r){return function(s){return e(s,r)}}return Xh=n,Xh}var Qh,iS;function Sq(){if(iS)return Qh;iS=1;var e=eC(),n=_q(),r=Tv(),s=da();function o(l){return r(l)?e(s(l)):n(l)}return Qh=o,Qh}var Zh,sS;function Lr(){if(sS)return Zh;sS=1;var e=hq(),n=xq(),r=ns(),s=St(),o=Sq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return Zh=l,Zh}var Jh,oS;function tC(){if(oS)return Jh;oS=1;var e=AN(),n=rq(),r=Lr(),s=St();function o(l,u){var c=s(l)?e:n;return c(l,r(u,3))}return Jh=o,Jh}var ep,aS;function bq(){if(aS)return ep;aS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s,o){return s!=null&&n.call(s,o)}return ep=r,ep}var tp,lS;function nC(){if(lS)return tp;lS=1;var e=bq(),n=ZN();function r(s,o){return s!=null&&n(s,o,e)}return tp=r,tp}var np,uS;function kq(){if(uS)return np;uS=1;var e=Sv(),n=Ys(),r=ua(),s=St(),o=qr(),l=Ks(),u=ou(),c=ca(),f="[object Map]",p="[object Set]",h=Object.prototype,g=h.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(s(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var C=n(w);if(C==f||C==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(g.call(w,_))return!1;return!0}return np=y,np}var rp,cS;function rC(){if(cS)return rp;cS=1;function e(n){return n===void 0}return rp=e,rp}var ip,dS;function iC(){if(dS)return ip;dS=1;var e=lu(),n=qr();function r(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,f,p){u[++l]=o(c,f,p)}),u}return ip=r,ip}var sp,fS;function sC(){if(fS)return sp;fS=1;var e=uu(),n=Lr(),r=iC(),s=St();function o(l,u){var c=s(l)?e:r;return c(l,n(u,3))}return sp=o,sp}var op,hS;function Eq(){if(hS)return op;hS=1;function e(n,r,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=r(s,n[l],l,n);return s}return op=e,op}var ap,pS;function Nq(){if(pS)return ap;pS=1;function e(n,r,s,o,l){return l(n,function(u,c,f){s=o?(o=!1,u):r(s,u,c,f)}),s}return ap=e,ap}var lp,mS;function oC(){if(mS)return lp;mS=1;var e=Eq(),n=lu(),r=Lr(),s=Nq(),o=St();function l(u,c,f){var p=o(u)?e:s,h=arguments.length<3;return p(u,r(c,4),f,h,n)}return lp=l,lp}var up,gS;function Cq(){if(gS)return up;gS=1;var e=Ji(),n=St(),r=fr(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==s}return up=o,up}var cp,vS;function jq(){if(vS)return cp;vS=1;var e=eC(),n=e("length");return cp=n,cp}var dp,yS;function Rq(){if(yS)return dp;yS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function f(p){return c.test(p)}return dp=f,dp}var fp,wS;function Tq(){if(wS)return fp;wS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",f="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+f+")",h="[^"+e+"]",g="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",C=p+"?",_="["+l+"]?",S="(?:"+w+"(?:"+[h,g,y].join("|")+")"+_+C+")*",b=_+C+S,E="(?:"+[h+c+"?",c,g,y,u].join("|")+")",N=RegExp(f+"(?="+f+")|"+E+b,"g");function j(M){for(var O=N.lastIndex=0;N.test(M);)++O;return O}return fp=j,fp}var hp,xS;function Aq(){if(xS)return hp;xS=1;var e=jq(),n=Rq(),r=Tq();function s(o){return n(o)?r(o):e(o)}return hp=s,hp}var pp,_S;function Iq(){if(_S)return pp;_S=1;var e=Sv(),n=Ys(),r=qr(),s=Cq(),o=Aq(),l="[object Map]",u="[object Set]";function c(f){if(f==null)return 0;if(r(f))return s(f)?o(f):f.length;var p=n(f);return p==l||p==u?f.size:e(f).length}return pp=c,pp}var mp,SS;function Mq(){if(SS)return mp;SS=1;var e=wv(),n=DN(),r=jv(),s=Lr(),o=au(),l=St(),u=Ks(),c=aa(),f=On(),p=ca();function h(g,y,w){var C=l(g),_=C||u(g)||p(g);if(y=s(y,4),w==null){var S=g&&g.constructor;_?w=C?new S:[]:f(g)?w=c(S)?n(o(g)):{}:w={}}return(_?e:r)(g,function(b,E,N){return y(w,b,E,N)}),w}return mp=h,mp}var gp,bS;function Pq(){if(bS)return gp;bS=1;var e=Gs(),n=ua(),r=St(),s=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(s&&l&&l[s])}return gp=o,gp}var vp,kS;function Av(){if(kS)return vp;kS=1;var e=kv(),n=Pq();function r(s,o,l,u,c){var f=-1,p=s.length;for(l||(l=n),c||(c=[]);++f<p;){var h=s[f];o>0&&l(h)?o>1?r(h,o-1,l,u,c):e(c,h):u||(c[c.length]=h)}return c}return vp=r,vp}var yp,ES;function Oq(){if(ES)return yp;ES=1;function e(n,r,s){switch(s.length){case 0:return n.call(r);case 1:return n.call(r,s[0]);case 2:return n.call(r,s[0],s[1]);case 3:return n.call(r,s[0],s[1],s[2])}return n.apply(r,s)}return yp=e,yp}var wp,NS;function aC(){if(NS)return wp;NS=1;var e=Oq(),n=Math.max;function r(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,f=n(u.length-o,0),p=Array(f);++c<f;)p[c]=u[o+c];c=-1;for(var h=Array(o+1);++c<o;)h[c]=u[c];return h[o]=l(p),e(s,this,h)}}return wp=r,wp}var xp,CS;function qq(){if(CS)return xp;CS=1;var e=Nv(),n=NN(),r=ns(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return xp=s,xp}var _p,jS;function Lq(){if(jS)return _p;jS=1;var e=800,n=16,r=Date.now;function s(o){var l=0,u=0;return function(){var c=r(),f=n-(c-u);if(u=c,f>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return _p=s,_p}var Sp,RS;function lC(){if(RS)return Sp;RS=1;var e=qq(),n=Lq(),r=n(e);return Sp=r,Sp}var bp,TS;function fu(){if(TS)return bp;TS=1;var e=ns(),n=aC(),r=lC();function s(o,l){return r(n(o,l,e),o+"")}return bp=s,bp}var kp,AS;function uC(){if(AS)return kp;AS=1;function e(n,r,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return kp=e,kp}var Ep,IS;function $q(){if(IS)return Ep;IS=1;function e(n){return n!==n}return Ep=e,Ep}var Np,MS;function Dq(){if(MS)return Np;MS=1;function e(n,r,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Np=e,Np}var Cp,PS;function Fq(){if(PS)return Cp;PS=1;var e=uC(),n=$q(),r=Dq();function s(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Cp=s,Cp}var jp,OS;function zq(){if(OS)return jp;OS=1;var e=Fq();function n(r,s){var o=r==null?0:r.length;return!!o&&e(r,s,0)>-1}return jp=n,jp}var Rp,qS;function Bq(){if(qS)return Rp;qS=1;function e(n,r,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(r,n[o]))return!0;return!1}return Rp=e,Rp}var Tp,LS;function Uq(){if(LS)return Tp;LS=1;function e(){}return Tp=e,Tp}var Ap,$S;function Hq(){if($S)return Ap;$S=1;var e=qN(),n=Uq(),r=Rv(),s=1/0,o=e&&1/r(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return Ap=o,Ap}var Ip,DS;function Vq(){if(DS)return Ip;DS=1;var e=VN(),n=zq(),r=Bq(),s=WN(),o=Hq(),l=Rv(),u=200;function c(f,p,h){var g=-1,y=n,w=f.length,C=!0,_=[],S=_;if(h)C=!1,y=r;else if(w>=u){var b=p?null:o(f);if(b)return l(b);C=!1,y=s,S=new e}else S=p?[]:_;e:for(;++g<w;){var E=f[g],N=p?p(E):E;if(E=h||E!==0?E:0,C&&N===N){for(var j=S.length;j--;)if(S[j]===N)continue e;p&&S.push(N),_.push(E)}else y(S,N,h)||(S!==_&&S.push(N),_.push(E))}return _}return Ip=c,Ip}var Mp,FS;function cC(){if(FS)return Mp;FS=1;var e=qr(),n=fr();function r(s){return n(s)&&e(s)}return Mp=r,Mp}var Pp,zS;function Wq(){if(zS)return Pp;zS=1;var e=Av(),n=fu(),r=Vq(),s=cC(),o=n(function(l){return r(e(l,1,s,!0))});return Pp=o,Pp}var Op,BS;function Gq(){if(BS)return Op;BS=1;var e=uu();function n(r,s){return e(s,function(o){return r[o]})}return Op=n,Op}var qp,US;function dC(){if(US)return qp;US=1;var e=Gq(),n=yi();function r(s){return s==null?[]:e(s,n(s))}return qp=r,qp}var Lp,HS;function qn(){if(HS)return Lp;HS=1;var e;if(typeof gv=="function")try{e={clone:eq(),constant:Nv(),each:HN(),filter:tC(),has:nC(),isArray:St(),isEmpty:kq(),isFunction:aa(),isUndefined:rC(),keys:yi(),map:sC(),reduce:oC(),size:Iq(),transform:Mq(),union:Wq(),values:dC()}}catch{}return e||(e=window._),Lp=e,Lp}var $p,VS;function Iv(){if(VS)return $p;VS=1;var e=qn();$p=o;var n="\0",r="\0",s="";function o(h){this._isDirected=e.has(h,"directed")?h.directed:!0,this._isMultigraph=e.has(h,"multigraph")?h.multigraph:!1,this._isCompound=e.has(h,"compound")?h.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[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(h){return this._label=h,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(h){return e.isFunction(h)||(h=e.constant(h)),this._defaultNodeLabelFn=h,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var h=this;return e.filter(this.nodes(),function(g){return e.isEmpty(h._in[g])})},o.prototype.sinks=function(){var h=this;return e.filter(this.nodes(),function(g){return e.isEmpty(h._out[g])})},o.prototype.setNodes=function(h,g){var y=arguments,w=this;return e.each(h,function(C){y.length>1?w.setNode(C,g):w.setNode(C)}),this},o.prototype.setNode=function(h,g){return e.has(this._nodes,h)?(arguments.length>1&&(this._nodes[h]=g),this):(this._nodes[h]=arguments.length>1?g:this._defaultNodeLabelFn(h),this._isCompound&&(this._parent[h]=r,this._children[h]={},this._children[r][h]=!0),this._in[h]={},this._preds[h]={},this._out[h]={},this._sucs[h]={},++this._nodeCount,this)},o.prototype.node=function(h){return this._nodes[h]},o.prototype.hasNode=function(h){return e.has(this._nodes,h)},o.prototype.removeNode=function(h){var g=this;if(e.has(this._nodes,h)){var y=function(w){g.removeEdge(g._edgeObjs[w])};delete this._nodes[h],this._isCompound&&(this._removeFromParentsChildList(h),delete this._parent[h],e.each(this.children(h),function(w){g.setParent(w)}),delete this._children[h]),e.each(e.keys(this._in[h]),y),delete this._in[h],delete this._preds[h],e.each(e.keys(this._out[h]),y),delete this._out[h],delete this._sucs[h],--this._nodeCount}return this},o.prototype.setParent=function(h,g){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(g))g=r;else{g+="";for(var y=g;!e.isUndefined(y);y=this.parent(y))if(y===h)throw new Error("Setting "+g+" as parent of "+h+" would create a cycle");this.setNode(g)}return this.setNode(h),this._removeFromParentsChildList(h),this._parent[h]=g,this._children[g][h]=!0,this},o.prototype._removeFromParentsChildList=function(h){delete this._children[this._parent[h]][h]},o.prototype.parent=function(h){if(this._isCompound){var g=this._parent[h];if(g!==r)return g}},o.prototype.children=function(h){if(e.isUndefined(h)&&(h=r),this._isCompound){var g=this._children[h];if(g)return e.keys(g)}else{if(h===r)return this.nodes();if(this.hasNode(h))return[]}},o.prototype.predecessors=function(h){var g=this._preds[h];if(g)return e.keys(g)},o.prototype.successors=function(h){var g=this._sucs[h];if(g)return e.keys(g)},o.prototype.neighbors=function(h){var g=this.predecessors(h);if(g)return e.union(g,this.successors(h))},o.prototype.isLeaf=function(h){var g;return this.isDirected()?g=this.successors(h):g=this.neighbors(h),g.length===0},o.prototype.filterNodes=function(h){var g=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});g.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){h(S)&&g.setNode(S,_)}),e.each(this._edgeObjs,function(_){g.hasNode(_.v)&&g.hasNode(_.w)&&g.setEdge(_,y.edge(_))});var w={};function C(_){var S=y.parent(_);return S===void 0||g.hasNode(S)?(w[_]=S,S):S in w?w[S]:C(S)}return this._isCompound&&e.each(g.nodes(),function(_){g.setParent(_,C(_))}),g},o.prototype.setDefaultEdgeLabel=function(h){return e.isFunction(h)||(h=e.constant(h)),this._defaultEdgeLabelFn=h,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(h,g){var y=this,w=arguments;return e.reduce(h,function(C,_){return w.length>1?y.setEdge(C,_,g):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var h,g,y,w,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(h=_.v,g=_.w,y=_.name,arguments.length===2&&(w=arguments[1],C=!0)):(h=_,g=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],C=!0)),h=""+h,g=""+g,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,h,g,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(h),this.setNode(g),this._edgeLabels[S]=C?w:this._defaultEdgeLabelFn(h,g,y);var b=f(this._isDirected,h,g,y);return h=b.v,g=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[g],h),l(this._sucs[h],g),this._in[g][S]=b,this._out[h][S]=b,this._edgeCount++,this},o.prototype.edge=function(h,g,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,h,g,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(h,g,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,h,g,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(h,g,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,h,g,y),C=this._edgeObjs[w];return C&&(h=C.v,g=C.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[g],h),u(this._sucs[h],g),delete this._in[g][w],delete this._out[h][w],this._edgeCount--),this},o.prototype.inEdges=function(h,g){var y=this._in[h];if(y){var w=e.values(y);return g?e.filter(w,function(C){return C.v===g}):w}},o.prototype.outEdges=function(h,g){var y=this._out[h];if(y){var w=e.values(y);return g?e.filter(w,function(C){return C.w===g}):w}},o.prototype.nodeEdges=function(h,g){var y=this.inEdges(h,g);if(y)return y.concat(this.outEdges(h,g))};function l(h,g){h[g]?h[g]++:h[g]=1}function u(h,g){--h[g]||delete h[g]}function c(h,g,y,w){var C=""+g,_=""+y;if(!h&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(w)?n:w)}function f(h,g,y,w){var C=""+g,_=""+y;if(!h&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return w&&(b.name=w),b}function p(h,g){return c(h,g.v,g.w,g.name)}return $p}var Dp,WS;function Kq(){return WS||(WS=1,Dp="2.1.8"),Dp}var Fp,GS;function Yq(){return GS||(GS=1,Fp={Graph:Iv(),version:Kq()}),Fp}var zp,KS;function Xq(){if(KS)return zp;KS=1;var e=qn(),n=Iv();zp={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:s(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function s(u){return e.map(u.nodes(),function(c){var f=u.node(c),p=u.parent(c),h={v:c};return e.isUndefined(f)||(h.value=f),e.isUndefined(p)||(h.parent=p),h})}function o(u){return e.map(u.edges(),function(c){var f=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(f)||(p.value=f),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(f){c.setNode(f.v,f.value),f.parent&&c.setParent(f.v,f.parent)}),e.each(u.edges,function(f){c.setEdge({v:f.v,w:f.w,name:f.name},f.value)}),c}return zp}var Bp,YS;function Qq(){if(YS)return Bp;YS=1;var e=qn();Bp=n;function n(r){var s={},o=[],l;function u(c){e.has(s,c)||(s[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return Bp}var Up,XS;function fC(){if(XS)return Up;XS=1;var e=qn();Up=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var s=this._keyIndices[r];if(s!==void 0)return this._arr[s].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,s){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:s}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,s){var o=this._keyIndices[r];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(r){var s=this._arr,o=2*r,l=o+1,u=r;o<s.length&&(u=s[o].priority<s[u].priority?o:u,l<s.length&&(u=s[l].priority<s[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var s=this._arr,o=s[r].priority,l;r!==0&&(l=r>>1,!(s[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,s){var o=this._arr,l=this._keyIndices,u=o[r],c=o[s];o[r]=c,o[s]=u,l[c.key]=r,l[u.key]=s},Up}var Hp,QS;function hC(){if(QS)return Hp;QS=1;var e=qn(),n=fC();Hp=s;var r=e.constant(1);function s(l,u,c,f){return o(l,String(u),c||r,f||function(p){return l.outEdges(p)})}function o(l,u,c,f){var p={},h=new n,g,y,w=function(C){var _=C.v!==g?C.v:C.w,S=p[_],b=c(C),E=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);E<S.distance&&(S.distance=E,S.predecessor=g,h.decrease(_,E))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;p[C]={distance:_},h.add(C,_)});h.size()>0&&(g=h.removeMin(),y=p[g],y.distance!==Number.POSITIVE_INFINITY);)f(g).forEach(w);return p}return Hp}var Vp,ZS;function Zq(){if(ZS)return Vp;ZS=1;var e=hC(),n=qn();Vp=r;function r(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Vp}var Wp,JS;function pC(){if(JS)return Wp;JS=1;var e=qn();Wp=n;function n(r){var s=0,o=[],l={},u=[];function c(f){var p=l[f]={onStack:!0,lowlink:s,index:s++};if(o.push(f),r.successors(f).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var h=[],g;do g=o.pop(),l[g].onStack=!1,h.push(g);while(f!==g);u.push(h)}}return r.nodes().forEach(function(f){e.has(l,f)||c(f)}),u}return Wp}var Gp,eb;function Jq(){if(eb)return Gp;eb=1;var e=qn(),n=pC();Gp=r;function r(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return Gp}var Kp,tb;function eL(){if(tb)return Kp;tb=1;var e=qn();Kp=r;var n=e.constant(1);function r(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},f=o.nodes();return f.forEach(function(p){c[p]={},c[p][p]={distance:0},f.forEach(function(h){p!==h&&(c[p][h]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(h){var g=h.v===p?h.w:h.v,y=l(h);c[p][g]={distance:y,predecessor:p}})}),f.forEach(function(p){var h=c[p];f.forEach(function(g){var y=c[g];f.forEach(function(w){var C=y[p],_=h[w],S=y[w],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return Kp}var Yp,nb;function mC(){if(nb)return Yp;nb=1;var e=qn();Yp=n,n.CycleException=r;function n(s){var o={},l={},u=[];function c(f){if(e.has(l,f))throw new r;e.has(o,f)||(l[f]=!0,o[f]=!0,e.each(s.predecessors(f),c),delete l[f],u.push(f))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Yp}var Xp,rb;function tL(){if(rb)return Xp;rb=1;var e=mC();Xp=n;function n(r){try{e(r)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return Xp}var Qp,ib;function gC(){if(ib)return Qp;ib=1;var e=qn();Qp=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],f={};return e.each(o,function(p){if(!s.hasNode(p))throw new Error("Graph does not have node: "+p);r(s,p,l==="post",f,u,c)}),c}function r(s,o,l,u,c,f){e.has(u,o)||(u[o]=!0,l||f.push(o),e.each(c(o),function(p){r(s,p,l,u,c,f)}),l&&f.push(o))}return Qp}var Zp,sb;function nL(){if(sb)return Zp;sb=1;var e=gC();Zp=n;function n(r,s){return e(r,s,"post")}return Zp}var Jp,ob;function rL(){if(ob)return Jp;ob=1;var e=gC();Jp=n;function n(r,s){return e(r,s,"pre")}return Jp}var em,ab;function iL(){if(ab)return em;ab=1;var e=qn(),n=Iv(),r=fC();em=s;function s(o,l){var u=new n,c={},f=new r,p;function h(y){var w=y.v===p?y.w:y.v,C=f.priority(w);if(C!==void 0){var _=l(y);_<C&&(c[w]=p,f.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){f.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),f.decrease(o.nodes()[0],0);for(var g=!1;f.size()>0;){if(p=f.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(g)throw new Error("Input graph is not connected: "+o);g=!0}o.nodeEdges(p).forEach(h)}return u}return em}var tm,lb;function sL(){return lb||(lb=1,tm={components:Qq(),dijkstra:hC(),dijkstraAll:Zq(),findCycles:Jq(),floydWarshall:eL(),isAcyclic:tL(),postorder:nL(),preorder:rL(),prim:iL(),tarjan:pC(),topsort:mC()}),tm}var nm,ub;function oL(){if(ub)return nm;ub=1;var e=Yq();return nm={Graph:e.Graph,json:Xq(),alg:sL(),version:e.version},nm}var rm,cb;function Qn(){if(cb)return rm;cb=1;var e;if(typeof gv=="function")try{e=oL()}catch{}return e||(e=window.graphlib),rm=e,rm}var im,db;function aL(){if(db)return im;db=1;var e=zN(),n=1,r=4;function s(o){return e(o,n|r)}return im=s,im}var sm,fb;function hu(){if(fb)return sm;fb=1;var e=Ws(),n=qr(),r=iu(),s=On();function o(l,u,c){if(!s(c))return!1;var f=typeof u;return(f=="number"?n(c)&&r(u,c.length):f=="string"&&u in c)?e(c[u],l):!1}return sm=o,sm}var om,hb;function lL(){if(hb)return om;hb=1;var e=fu(),n=Ws(),r=hu(),s=ts(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,f){c=Object(c);var p=-1,h=f.length,g=h>2?f[2]:void 0;for(g&&r(f[0],f[1],g)&&(h=1);++p<h;)for(var y=f[p],w=s(y),C=-1,_=w.length;++C<_;){var S=w[C],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return om=u,om}var am,pb;function uL(){if(pb)return am;pb=1;var e=Lr(),n=qr(),r=yi();function s(o){return function(l,u,c){var f=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(g){return p(f[g],g,f)}}var h=o(l,u,c);return h>-1?f[p?l[h]:h]:void 0}}return am=s,am}var lm,mb;function cL(){if(mb)return lm;mb=1;var e=/\s/;function n(r){for(var s=r.length;s--&&e.test(r.charAt(s)););return s}return lm=n,lm}var um,gb;function dL(){if(gb)return um;gb=1;var e=cL(),n=/^\s+/;function r(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return um=r,um}var cm,vb;function fL(){if(vb)return cm;vb=1;var e=dL(),n=On(),r=Xs(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function f(p){if(typeof p=="number")return p;if(r(p))return s;if(n(p)){var h=typeof p.valueOf=="function"?p.valueOf():p;p=n(h)?h+"":h}if(typeof p!="string")return p===0?p:+p;p=e(p);var g=l.test(p);return g||u.test(p)?c(p.slice(2),g?2:8):o.test(p)?s:+p}return cm=f,cm}var dm,yb;function vC(){if(yb)return dm;yb=1;var e=fL(),n=1/0,r=17976931348623157e292;function s(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return dm=s,dm}var fm,wb;function hL(){if(wb)return fm;wb=1;var e=vC();function n(r){var s=e(r),o=s%1;return s===s?o?s-o:s:0}return fm=n,fm}var hm,xb;function pL(){if(xb)return hm;xb=1;var e=uC(),n=Lr(),r=hL(),s=Math.max;function o(l,u,c){var f=l==null?0:l.length;if(!f)return-1;var p=c==null?0:r(c);return p<0&&(p=s(f+p,0)),e(l,n(u,3),p)}return hm=o,hm}var pm,_b;function mL(){if(_b)return pm;_b=1;var e=uL(),n=pL(),r=e(n);return pm=r,pm}var mm,Sb;function yC(){if(Sb)return mm;Sb=1;var e=Av();function n(r){var s=r==null?0:r.length;return s?e(r,1):[]}return mm=n,mm}var gm,bb;function gL(){if(bb)return gm;bb=1;var e=Cv(),n=BN(),r=ts();function s(o,l){return o==null?o:e(o,n(l),r)}return gm=s,gm}var vm,kb;function vL(){if(kb)return vm;kb=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return vm=e,vm}var ym,Eb;function yL(){if(Eb)return ym;Eb=1;var e=nu(),n=jv(),r=Lr();function s(o,l){var u={};return l=r(l,3),n(o,function(c,f,p){e(u,f,l(c,f,p))}),u}return ym=s,ym}var wm,Nb;function Mv(){if(Nb)return wm;Nb=1;var e=Xs();function n(r,s,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],f=s(c);if(f!=null&&(p===void 0?f===f&&!e(f):o(f,p)))var p=f,h=c}return h}return wm=n,wm}var xm,Cb;function wL(){if(Cb)return xm;Cb=1;function e(n,r){return n>r}return xm=e,xm}var _m,jb;function xL(){if(jb)return _m;jb=1;var e=Mv(),n=wL(),r=ns();function s(o){return o&&o.length?e(o,r,n):void 0}return _m=s,_m}var Sm,Rb;function wC(){if(Rb)return Sm;Rb=1;var e=nu(),n=Ws();function r(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Sm=r,Sm}var bm,Tb;function _L(){if(Tb)return bm;Tb=1;var e=Ji(),n=au(),r=fr(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,f=u.call(Object);function p(h){if(!r(h)||e(h)!=s)return!1;var g=n(h);if(g===null)return!0;var y=c.call(g,"constructor")&&g.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==f}return bm=p,bm}var km,Ab;function xC(){if(Ab)return km;Ab=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return km=e,km}var Em,Ib;function SL(){if(Ib)return Em;Ib=1;var e=la(),n=ts();function r(s){return e(s,n(s))}return Em=r,Em}var Nm,Mb;function bL(){if(Mb)return Nm;Mb=1;var e=wC(),n=RN(),r=$N(),s=TN(),o=FN(),l=ua(),u=St(),c=cC(),f=Ks(),p=aa(),h=On(),g=_L(),y=ca(),w=xC(),C=SL();function _(S,b,E,N,j,M,O){var q=w(S,E),F=w(b,E),R=O.get(F);if(R){e(S,E,R);return}var P=M?M(q,F,E+"",S,b,O):void 0,B=P===void 0;if(B){var J=u(F),Z=!J&&f(F),A=!J&&!Z&&y(F);P=F,J||Z||A?u(q)?P=q:c(q)?P=s(q):Z?(B=!1,P=n(F,!0)):A?(B=!1,P=r(F,!0)):P=[]:g(F)||l(F)?(P=q,l(q)?P=C(q):(!h(q)||p(q))&&(P=o(F))):B=!1}B&&(O.set(F,P),j(P,F,N,M,O),O.delete(F)),e(S,E,P)}return Nm=_,Nm}var Cm,Pb;function kL(){if(Pb)return Cm;Pb=1;var e=tu(),n=wC(),r=Cv(),s=bL(),o=On(),l=ts(),u=xC();function c(f,p,h,g,y){f!==p&&r(p,function(w,C){if(y||(y=new e),o(w))s(f,p,C,h,c,g,y);else{var _=g?g(u(f,C),w,C+"",f,p,y):void 0;_===void 0&&(_=w),n(f,C,_)}},l)}return Cm=c,Cm}var jm,Ob;function EL(){if(Ob)return jm;Ob=1;var e=fu(),n=hu();function r(s){return e(function(o,l){var u=-1,c=l.length,f=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(f=s.length>3&&typeof f=="function"?(c--,f):void 0,p&&n(l[0],l[1],p)&&(f=c<3?void 0:f,c=1),o=Object(o);++u<c;){var h=l[u];h&&s(o,h,u,f)}return o})}return jm=r,jm}var Rm,qb;function NL(){if(qb)return Rm;qb=1;var e=kL(),n=EL(),r=n(function(s,o,l){e(s,o,l)});return Rm=r,Rm}var Tm,Lb;function _C(){if(Lb)return Tm;Lb=1;function e(n,r){return n<r}return Tm=e,Tm}var Am,$b;function CL(){if($b)return Am;$b=1;var e=Mv(),n=_C(),r=ns();function s(o){return o&&o.length?e(o,r,n):void 0}return Am=s,Am}var Im,Db;function jL(){if(Db)return Im;Db=1;var e=Mv(),n=Lr(),r=_C();function s(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Im=s,Im}var Mm,Fb;function RL(){if(Fb)return Mm;Fb=1;var e=Jn(),n=function(){return e.Date.now()};return Mm=n,Mm}var Pm,zb;function TL(){if(zb)return Pm;zb=1;var e=ru(),n=cu(),r=iu(),s=On(),o=da();function l(u,c,f,p){if(!s(u))return u;c=n(c,u);for(var h=-1,g=c.length,y=g-1,w=u;w!=null&&++h<g;){var C=o(c[h]),_=f;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(h!=y){var S=w[C];_=p?p(S,C,w):void 0,_===void 0&&(_=s(S)?S:r(c[h+1])?[]:{})}e(w,C,_),w=w[C]}return u}return Pm=l,Pm}var Om,Bb;function AL(){if(Bb)return Om;Bb=1;var e=du(),n=TL(),r=cu();function s(o,l,u){for(var c=-1,f=l.length,p={};++c<f;){var h=l[c],g=e(o,h);u(g,h)&&n(p,r(h,o),g)}return p}return Om=s,Om}var qm,Ub;function IL(){if(Ub)return qm;Ub=1;var e=AL(),n=JN();function r(s,o){return e(s,o,function(l,u){return n(s,u)})}return qm=r,qm}var Lm,Hb;function ML(){if(Hb)return Lm;Hb=1;var e=yC(),n=aC(),r=lC();function s(o){return r(n(o,void 0,e),o+"")}return Lm=s,Lm}var $m,Vb;function PL(){if(Vb)return $m;Vb=1;var e=IL(),n=ML(),r=n(function(s,o){return s==null?{}:e(s,o)});return $m=r,$m}var Dm,Wb;function OL(){if(Wb)return Dm;Wb=1;var e=Math.ceil,n=Math.max;function r(s,o,l,u){for(var c=-1,f=n(e((o-s)/(l||1)),0),p=Array(f);f--;)p[u?f:++c]=s,s+=l;return p}return Dm=r,Dm}var Fm,Gb;function qL(){if(Gb)return Fm;Gb=1;var e=OL(),n=hu(),r=vC();function s(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return Fm=s,Fm}var zm,Kb;function LL(){if(Kb)return zm;Kb=1;var e=qL(),n=e();return zm=n,zm}var Bm,Yb;function $L(){if(Yb)return Bm;Yb=1;function e(n,r){var s=n.length;for(n.sort(r);s--;)n[s]=n[s].value;return n}return Bm=e,Bm}var Um,Xb;function DL(){if(Xb)return Um;Xb=1;var e=Xs();function n(r,s){if(r!==s){var o=r!==void 0,l=r===null,u=r===r,c=e(r),f=s!==void 0,p=s===null,h=s===s,g=e(s);if(!p&&!g&&!c&&r>s||c&&f&&h&&!p&&!g||l&&f&&h||!o&&h||!u)return 1;if(!l&&!c&&!g&&r<s||g&&o&&u&&!l&&!c||p&&o&&u||!f&&u||!h)return-1}return 0}return Um=n,Um}var Hm,Qb;function FL(){if(Qb)return Hm;Qb=1;var e=DL();function n(r,s,o){for(var l=-1,u=r.criteria,c=s.criteria,f=u.length,p=o.length;++l<f;){var h=e(u[l],c[l]);if(h){if(l>=p)return h;var g=o[l];return h*(g=="desc"?-1:1)}}return r.index-s.index}return Hm=n,Hm}var Vm,Zb;function zL(){if(Zb)return Vm;Zb=1;var e=uu(),n=du(),r=Lr(),s=iC(),o=$L(),l=su(),u=FL(),c=ns(),f=St();function p(h,g,y){g.length?g=e(g,function(_){return f(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):g=[c];var w=-1;g=e(g,l(r));var C=s(h,function(_,S,b){var E=e(g,function(N){return N(_)});return{criteria:E,index:++w,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Vm=p,Vm}var Wm,Jb;function BL(){if(Jb)return Wm;Jb=1;var e=Av(),n=zL(),r=fu(),s=hu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&s(l,u[0],u[1])?u=[]:c>2&&s(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Wm=o,Wm}var Gm,ek;function UL(){if(ek)return Gm;ek=1;var e=QN(),n=0;function r(s){var o=++n;return e(s)+o}return Gm=r,Gm}var Km,tk;function HL(){if(tk)return Km;tk=1;function e(n,r,s){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var f=o<u?r[o]:void 0;s(c,n[o],f)}return c}return Km=e,Km}var Ym,nk;function VL(){if(nk)return Ym;nk=1;var e=ru(),n=HL();function r(s,o){return n(s||[],o||[],e)}return Ym=r,Ym}var Xm,rk;function ot(){if(rk)return Xm;rk=1;var e;if(typeof gv=="function")try{e={cloneDeep:aL(),constant:Nv(),defaults:lL(),each:HN(),filter:tC(),find:mL(),flatten:yC(),forEach:UN(),forIn:gL(),has:nC(),isUndefined:rC(),last:vL(),map:sC(),mapValues:yL(),max:xL(),merge:NL(),min:CL(),minBy:jL(),now:RL(),pick:PL(),range:LL(),reduce:oC(),sortBy:BL(),uniqueId:UL(),values:dC(),zipObject:VL()}}catch{}return e||(e=window._),Xm=e,Xm}var Qm,ik;function WL(){if(ik)return Qm;ik=1,Qm=e;function e(){var s={};s._next=s._prev=s,this._sentinel=s}e.prototype.dequeue=function(){var s=this._sentinel,o=s._prev;if(o!==s)return n(o),o},e.prototype.enqueue=function(s){var o=this._sentinel;s._prev&&s._next&&n(s),s._next=o._next,o._next._prev=s,o._next=s,s._prev=o},e.prototype.toString=function(){for(var s=[],o=this._sentinel,l=o._prev;l!==o;)s.push(JSON.stringify(l,r)),l=l._prev;return"["+s.join(", ")+"]"};function n(s){s._prev._next=s._next,s._next._prev=s._prev,delete s._next,delete s._prev}function r(s,o){if(s!=="_next"&&s!=="_prev")return o}return Qm}var Zm,sk;function GL(){if(sk)return Zm;sk=1;var e=ot(),n=Qn().Graph,r=WL();Zm=o;var s=e.constant(1);function o(p,h){if(p.nodeCount()<=1)return[];var g=c(p,h||s),y=l(g.graph,g.buckets,g.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,h,g){for(var y=[],w=h[h.length-1],C=h[0],_;p.nodeCount();){for(;_=C.dequeue();)u(p,h,g,_);for(;_=w.dequeue();)u(p,h,g,_);if(p.nodeCount()){for(var S=h.length-2;S>0;--S)if(_=h[S].dequeue(),_){y=y.concat(u(p,h,g,_,!0));break}}}return y}function u(p,h,g,y,w){var C=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var S=p.edge(_),b=p.node(_.v);w&&C.push({v:_.v,w:_.w}),b.out-=S,f(h,g,b)}),e.forEach(p.outEdges(y.v),function(_){var S=p.edge(_),b=_.w,E=p.node(b);E.in-=S,f(h,g,E)}),p.removeNode(y.v),C}function c(p,h){var g=new n,y=0,w=0;e.forEach(p.nodes(),function(S){g.setNode(S,{v:S,in:0,out:0})}),e.forEach(p.edges(),function(S){var b=g.edge(S.v,S.w)||0,E=h(S),N=b+E;g.setEdge(S.v,S.w,N),w=Math.max(w,g.node(S.v).out+=E),y=Math.max(y,g.node(S.w).in+=E)});var C=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(g.nodes(),function(S){f(C,_,g.node(S))}),{graph:g,buckets:C,zeroIdx:_}}function f(p,h,g){g.out?g.in?p[g.out-g.in+h].enqueue(g):p[p.length-1].enqueue(g):p[0].enqueue(g)}return Zm}var Jm,ok;function KL(){if(ok)return Jm;ok=1;var e=ot(),n=GL();Jm={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(f){var p=l.edge(f);l.removeEdge(f),p.forwardName=f.name,p.reversed=!0,l.setEdge(f.w,f.v,p,e.uniqueId("rev"))});function c(f){return function(p){return f.edge(p).weight}}}function s(l){var u=[],c={},f={};function p(h){e.has(f,h)||(f[h]=!0,c[h]=!0,e.forEach(l.outEdges(h),function(g){e.has(c,g.w)?u.push(g):p(g.w)}),delete c[h])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var f=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,f)}})}return Jm}var eg,ak;function fn(){if(ak)return eg;ak=1;var e=ot(),n=Qn().Graph;eg={addDummyNode:r,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:f,normalizeRanks:p,removeEmptyRanks:h,addBorderNode:g,maxRank:y,partition:w,time:C,notime:_};function r(S,b,E,N){var j;do j=e.uniqueId(N);while(S.hasNode(j));return E.dummy=b,S.setNode(j,E),j}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(E){b.setNode(E,S.node(E))}),e.forEach(S.edges(),function(E){var N=b.edge(E.v,E.w)||{weight:0,minlen:1},j=S.edge(E);b.setEdge(E.v,E.w,{weight:N.weight+j.weight,minlen:Math.max(N.minlen,j.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(E){S.children(E).length||b.setNode(E,S.node(E))}),e.forEach(S.edges(),function(E){b.setEdge(E,S.edge(E))}),b}function l(S){var b=e.map(S.nodes(),function(E){var N={};return e.forEach(S.outEdges(E),function(j){N[j.w]=(N[j.w]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(E){var N={};return e.forEach(S.inEdges(E),function(j){N[j.v]=(N[j.v]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function c(S,b){var E=S.x,N=S.y,j=b.x-E,M=b.y-N,O=S.width/2,q=S.height/2;if(!j&&!M)throw new Error("Not possible to find intersection inside of the rectangle");var F,R;return Math.abs(M)*O>Math.abs(j)*q?(M<0&&(q=-q),F=q*j/M,R=q):(j<0&&(O=-O),F=O,R=O*M/j),{x:E+F,y:N+R}}function f(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(E){var N=S.node(E),j=N.rank;e.isUndefined(j)||(b[j][N.order]=E)}),b}function p(S){var b=e.min(e.map(S.nodes(),function(E){return S.node(E).rank}));e.forEach(S.nodes(),function(E){var N=S.node(E);e.has(N,"rank")&&(N.rank-=b)})}function h(S){var b=e.min(e.map(S.nodes(),function(M){return S.node(M).rank})),E=[];e.forEach(S.nodes(),function(M){var O=S.node(M).rank-b;E[O]||(E[O]=[]),E[O].push(M)});var N=0,j=S.graph().nodeRankFactor;e.forEach(E,function(M,O){e.isUndefined(M)&&O%j!==0?--N:N&&e.forEach(M,function(q){S.node(q).rank+=N})})}function g(S,b,E,N){var j={width:0,height:0};return arguments.length>=4&&(j.rank=E,j.order=N),r(S,"border",j,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var E=S.node(b).rank;if(!e.isUndefined(E))return E}))}function w(S,b){var E={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?E.lhs.push(N):E.rhs.push(N)}),E}function C(S,b){var E=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-E)+"ms")}}function _(S,b){return b()}return eg}var tg,lk;function YL(){if(lk)return tg;lk=1;var e=ot(),n=fn();tg={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,f=l.node(c).rank,p=u.w,h=l.node(p).rank,g=u.name,y=l.edge(u),w=y.labelRank;if(h!==f+1){l.removeEdge(u);var C,_,S;for(S=0,++f;f<h;++S,++f)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:f},C=n.addDummyNode(l,"edge",_,"_d"),f===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},g),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,p,{weight:y.weight},g)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),f=c.edgeLabel,p;for(l.setEdge(c.edgeObj,f);c.dummy;)p=l.successors(u)[0],l.removeNode(u),f.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(f.x=c.x,f.y=c.y,f.width=c.width,f.height=c.height),u=p,c=l.node(u)})}return tg}var ng,uk;function Ul(){if(uk)return ng;uk=1;var e=ot();ng={longestPath:n,slack:r};function n(s){var o={};function l(u){var c=s.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var f=e.min(e.map(s.outEdges(u),function(p){return l(p.w)-s.edge(p).minlen}));return(f===Number.POSITIVE_INFINITY||f===void 0||f===null)&&(f=0),c.rank=f}e.forEach(s.sources(),l)}function r(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return ng}var rg,ck;function SC(){if(ck)return rg;ck=1;var e=ot(),n=Qn().Graph,r=Ul().slack;rg=s;function s(c){var f=new n({directed:!1}),p=c.nodes()[0],h=c.nodeCount();f.setNode(p,{});for(var g,y;o(f,c)<h;)g=l(f,c),y=f.hasNode(g.v)?r(c,g):-r(c,g),u(f,c,y);return f}function o(c,f){function p(h){e.forEach(f.nodeEdges(h),function(g){var y=g.v,w=h===y?g.w:y;!c.hasNode(w)&&!r(f,g)&&(c.setNode(w,{}),c.setEdge(h,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,f){return e.minBy(f.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(f,p)})}function u(c,f,p){e.forEach(c.nodes(),function(h){f.node(h).rank+=p})}return rg}var ig,dk;function XL(){if(dk)return ig;dk=1;var e=ot(),n=SC(),r=Ul().slack,s=Ul().longestPath,o=Qn().alg.preorder,l=Qn().alg.postorder,u=fn().simplify;ig=c,c.initLowLimValues=g,c.initCutValues=f,c.calcCutValue=h,c.leaveEdge=w,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var j=n(N);g(j),f(j,N);for(var M,O;M=w(j);)O=C(j,N,M),_(j,N,M,O)}function f(N,j){var M=l(N,N.nodes());M=M.slice(0,M.length-1),e.forEach(M,function(O){p(N,j,O)})}function p(N,j,M){var O=N.node(M),q=O.parent;N.edge(M,q).cutvalue=h(N,j,M)}function h(N,j,M){var O=N.node(M),q=O.parent,F=!0,R=j.edge(M,q),P=0;return R||(F=!1,R=j.edge(q,M)),P=R.weight,e.forEach(j.nodeEdges(M),function(B){var J=B.v===M,Z=J?B.w:B.v;if(Z!==q){var A=J===F,H=j.edge(B).weight;if(P+=A?H:-H,b(N,M,Z)){var U=N.edge(M,Z).cutvalue;P+=A?-U:U}}}),P}function g(N,j){arguments.length<2&&(j=N.nodes()[0]),y(N,{},1,j)}function y(N,j,M,O,q){var F=M,R=N.node(O);return j[O]=!0,e.forEach(N.neighbors(O),function(P){e.has(j,P)||(M=y(N,j,M,P,O))}),R.low=F,R.lim=M++,q?R.parent=q:delete R.parent,M}function w(N){return e.find(N.edges(),function(j){return N.edge(j).cutvalue<0})}function C(N,j,M){var O=M.v,q=M.w;j.hasEdge(O,q)||(O=M.w,q=M.v);var F=N.node(O),R=N.node(q),P=F,B=!1;F.lim>R.lim&&(P=R,B=!0);var J=e.filter(j.edges(),function(Z){return B===E(N,N.node(Z.v),P)&&B!==E(N,N.node(Z.w),P)});return e.minBy(J,function(Z){return r(j,Z)})}function _(N,j,M,O){var q=M.v,F=M.w;N.removeEdge(q,F),N.setEdge(O.v,O.w,{}),g(N),f(N,j),S(N,j)}function S(N,j){var M=e.find(N.nodes(),function(q){return!j.node(q).parent}),O=o(N,M);O=O.slice(1),e.forEach(O,function(q){var F=N.node(q).parent,R=j.edge(q,F),P=!1;R||(R=j.edge(F,q),P=!0),j.node(q).rank=j.node(F).rank+(P?R.minlen:-R.minlen)})}function b(N,j,M){return N.hasEdge(j,M)}function E(N,j,M){return M.low<=j.lim&&j.lim<=M.lim}return ig}var sg,fk;function QL(){if(fk)return sg;fk=1;var e=Ul(),n=e.longestPath,r=SC(),s=XL();sg=o;function o(f){switch(f.graph().ranker){case"network-simplex":c(f);break;case"tight-tree":u(f);break;case"longest-path":l(f);break;default:c(f)}}var l=n;function u(f){n(f),r(f)}function c(f){s(f)}return sg}var og,hk;function ZL(){if(hk)return og;hk=1;var e=ot();og=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),f=c.edgeObj,p=r(o,l,f.v,f.w),h=p.path,g=p.lca,y=0,w=h[y],C=!0;u!==f.w;){if(c=o.node(u),C){for(;(w=h[y])!==g&&o.node(w).maxRank<c.rank;)y++;w===g&&(C=!1)}if(!C){for(;y<h.length-1&&o.node(w=h[y+1]).minRank<=c.rank;)y++;w=h[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var f=[],p=[],h=Math.min(l[u].low,l[c].low),g=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),f.push(y);while(y&&(l[y].low>h||g>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:f.concat(p.reverse()),lca:w}}function s(o){var l={},u=0;function c(f){var p=u;e.forEach(o.children(f),c),l[f]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return og}var ag,pk;function JL(){if(pk)return ag;pk=1;var e=ot(),n=fn();ag={run:r,cleanup:u};function r(c){var f=n.addDummyNode(c,"root",{},"_root"),p=o(c),h=e.max(e.values(p))-1,g=2*h+1;c.graph().nestingRoot=f,e.forEach(c.edges(),function(w){c.edge(w).minlen*=g});var y=l(c)+1;e.forEach(c.children(),function(w){s(c,f,g,y,h,p,w)}),c.graph().nodeRankFactor=g}function s(c,f,p,h,g,y,w){var C=c.children(w);if(!C.length){w!==f&&c.setEdge(f,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(w);c.setParent(_,w),b.borderTop=_,c.setParent(S,w),b.borderBottom=S,e.forEach(C,function(E){s(c,f,p,h,g,y,E);var N=c.node(E),j=N.borderTop?N.borderTop:E,M=N.borderBottom?N.borderBottom:E,O=N.borderTop?h:2*h,q=j!==M?1:g-y[w]+1;c.setEdge(_,j,{weight:O,minlen:q,nestingEdge:!0}),c.setEdge(M,S,{weight:O,minlen:q,nestingEdge:!0})}),c.parent(w)||c.setEdge(f,_,{weight:0,minlen:g+y[w]})}function o(c){var f={};function p(h,g){var y=c.children(h);y&&y.length&&e.forEach(y,function(w){p(w,g+1)}),f[h]=g}return e.forEach(c.children(),function(h){p(h,1)}),f}function l(c){return e.reduce(c.edges(),function(f,p){return f+c.edge(p).weight},0)}function u(c){var f=c.graph();c.removeNode(f.nestingRoot),delete f.nestingRoot,e.forEach(c.edges(),function(p){var h=c.edge(p);h.nestingEdge&&c.removeEdge(p)})}return ag}var lg,mk;function e$(){if(mk)return lg;mk=1;var e=ot(),n=fn();lg=r;function r(o){function l(u){var c=o.children(u),f=o.node(u);if(c.length&&e.forEach(c,l),e.has(f,"minRank")){f.borderLeft=[],f.borderRight=[];for(var p=f.minRank,h=f.maxRank+1;p<h;++p)s(o,"borderLeft","_bl",u,f,p),s(o,"borderRight","_br",u,f,p)}}e.forEach(o.children(),l)}function s(o,l,u,c,f,p){var h={width:0,height:0,rank:p,borderType:l},g=f[l][p-1],y=n.addDummyNode(o,"border",h,u);f[l][p]=y,o.setParent(y,c),g&&o.setEdge(g,y,{weight:1})}return lg}var ug,gk;function t$(){if(gk)return ug;gk=1;var e=ot();ug={adjust:n,undo:r};function n(p){var h=p.graph().rankdir.toLowerCase();(h==="lr"||h==="rl")&&s(p)}function r(p){var h=p.graph().rankdir.toLowerCase();(h==="bt"||h==="rl")&&l(p),(h==="lr"||h==="rl")&&(c(p),s(p))}function s(p){e.forEach(p.nodes(),function(h){o(p.node(h))}),e.forEach(p.edges(),function(h){o(p.edge(h))})}function o(p){var h=p.width;p.width=p.height,p.height=h}function l(p){e.forEach(p.nodes(),function(h){u(p.node(h))}),e.forEach(p.edges(),function(h){var g=p.edge(h);e.forEach(g.points,u),e.has(g,"y")&&u(g)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(h){f(p.node(h))}),e.forEach(p.edges(),function(h){var g=p.edge(h);e.forEach(g.points,f),e.has(g,"x")&&f(g)})}function f(p){var h=p.x;p.x=p.y,p.y=h}return ug}var cg,vk;function n$(){if(vk)return cg;vk=1;var e=ot();cg=n;function n(r){var s={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(s,p)){s[p]=!0;var h=r.node(p);u[h.rank].push(p),e.forEach(r.successors(p),c)}}var f=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(f,c),u}return cg}var dg,yk;function r$(){if(yk)return dg;yk=1;var e=ot();dg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=r(s,o[u-1],o[u]);return l}function r(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(w){return{pos:u[w.w],weight:s.edge(w).weight}}),"pos")}),!0),f=1;f<l.length;)f<<=1;var p=2*f-1;f-=1;var h=e.map(new Array(p),function(){return 0}),g=0;return e.forEach(c.forEach(function(y){var w=y.pos+f;h[w]+=y.weight;for(var C=0;w>0;)w%2&&(C+=h[w+1]),w=w-1>>1,h[w]+=y.weight;g+=y.weight*C})),g}return dg}var fg,wk;function i$(){if(wk)return fg;wk=1;var e=ot();fg=n;function n(r,s){return e.map(s,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,f){var p=r.edge(f),h=r.node(f.v);return{sum:c.sum+p.weight*h.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return fg}var hg,xk;function s$(){if(xk)return hg;xk=1;var e=ot();hg=n;function n(o,l){var u={};e.forEach(o,function(f,p){var h=u[f.v]={indegree:0,in:[],out:[],vs:[f.v],i:p};e.isUndefined(f.barycenter)||(h.barycenter=f.barycenter,h.weight=f.weight)}),e.forEach(l.edges(),function(f){var p=u[f.v],h=u[f.w];!e.isUndefined(p)&&!e.isUndefined(h)&&(h.indegree++,p.out.push(u[f.w]))});var c=e.filter(u,function(f){return!f.indegree});return r(c)}function r(o){var l=[];function u(p){return function(h){h.merged||(e.isUndefined(h.barycenter)||e.isUndefined(p.barycenter)||h.barycenter>=p.barycenter)&&s(p,h)}}function c(p){return function(h){h.in.push(p),--h.indegree===0&&o.push(h)}}for(;o.length;){var f=o.pop();l.push(f),e.forEach(f.in.reverse(),u(f)),e.forEach(f.out,c(f))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["vs","i","barycenter","weight"])})}function s(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return hg}var pg,_k;function o$(){if(_k)return pg;_k=1;var e=ot(),n=fn();pg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),f=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),h=[],g=0,y=0,w=0;f.sort(o(!!u)),w=s(h,p,w),e.forEach(f,function(_){w+=_.vs.length,h.push(_.vs),g+=_.barycenter*_.weight,y+=_.weight,w=s(h,p,w)});var C={vs:e.flatten(h,!0)};return y&&(C.barycenter=g/y,C.weight=y),C}function s(l,u,c){for(var f;u.length&&(f=e.last(u)).i<=c;)u.pop(),l.push(f.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return pg}var mg,Sk;function a$(){if(Sk)return mg;Sk=1;var e=ot(),n=i$(),r=s$(),s=o$();mg=o;function o(c,f,p,h){var g=c.children(f),y=c.node(f),w=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};w&&(g=e.filter(g,function(M){return M!==w&&M!==C}));var S=n(c,g);e.forEach(S,function(M){if(c.children(M.v).length){var O=o(c,M.v,p,h);_[M.v]=O,e.has(O,"barycenter")&&u(M,O)}});var b=r(S,p);l(b,_);var E=s(b,h);if(w&&(E.vs=e.flatten([w,E.vs,C],!0),c.predecessors(w).length)){var N=c.node(c.predecessors(w)[0]),j=c.node(c.predecessors(C)[0]);e.has(E,"barycenter")||(E.barycenter=0,E.weight=0),E.barycenter=(E.barycenter*E.weight+N.order+j.order)/(E.weight+2),E.weight+=2}return E}function l(c,f){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(h){return f[h]?f[h].vs:h}),!0)})}function u(c,f){e.isUndefined(c.barycenter)?(c.barycenter=f.barycenter,c.weight=f.weight):(c.barycenter=(c.barycenter*c.weight+f.barycenter*f.weight)/(c.weight+f.weight),c.weight+=f.weight)}return mg}var gg,bk;function l$(){if(bk)return gg;bk=1;var e=ot(),n=Qn().Graph;gg=r;function r(o,l,u){var c=s(o),f=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var h=o.node(p),g=o.parent(p);(h.rank===l||h.minRank<=l&&l<=h.maxRank)&&(f.setNode(p),f.setParent(p,g||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,C=f.edge(w,p),_=e.isUndefined(C)?0:C.weight;f.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(h,"minRank")&&f.setNode(p,{borderLeft:h.borderLeft[l],borderRight:h.borderRight[l]}))}),f}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return gg}var vg,kk;function u$(){if(kk)return vg;kk=1;var e=ot();vg=n;function n(r,s,o){var l={},u;e.forEach(o,function(c){for(var f=r.parent(c),p,h;f;){if(p=r.parent(f),p?(h=l[p],l[p]=f):(h=u,u=f),h&&h!==f){s.setEdge(h,f);return}f=p}})}return vg}var yg,Ek;function c$(){if(Ek)return yg;Ek=1;var e=ot(),n=n$(),r=r$(),s=a$(),o=l$(),l=u$(),u=Qn().Graph,c=fn();yg=f;function f(y){var w=c.maxRank(y),C=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),S=n(y);g(y,S);for(var b=Number.POSITIVE_INFINITY,E,N=0,j=0;j<4;++N,++j){h(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var M=r(y,S);M<b&&(j=0,E=e.cloneDeep(S),b=M)}g(y,E)}function p(y,w,C){return e.map(w,function(_){return o(y,_,C)})}function h(y,w){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,w);e.forEach(b.vs,function(E,N){_.node(E).order=N}),l(_,C,b.vs)})}function g(y,w){e.forEach(w,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return yg}var wg,Nk;function d$(){if(Nk)return wg;Nk=1;var e=ot(),n=Qn().Graph,r=fn();wg={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:f,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:g,balance:w};function s(b,E){var N={};function j(M,O){var q=0,F=0,R=M.length,P=e.last(O);return e.forEach(O,function(B,J){var Z=l(b,B),A=Z?b.node(Z).order:R;(Z||B===P)&&(e.forEach(O.slice(F,J+1),function(H){e.forEach(b.predecessors(H),function(U){var ne=b.node(U),Q=ne.order;(Q<q||A<Q)&&!(ne.dummy&&b.node(H).dummy)&&u(N,U,H)})}),F=J+1,q=A)}),O}return e.reduce(E,j),N}function o(b,E){var N={};function j(O,q,F,R,P){var B;e.forEach(e.range(q,F),function(J){B=O[J],b.node(B).dummy&&e.forEach(b.predecessors(B),function(Z){var A=b.node(Z);A.dummy&&(A.order<R||A.order>P)&&u(N,Z,B)})})}function M(O,q){var F=-1,R,P=0;return e.forEach(q,function(B,J){if(b.node(B).dummy==="border"){var Z=b.predecessors(B);Z.length&&(R=b.node(Z[0]).order,j(q,P,J,F,R),P=J,F=R)}j(q,P,q.length,R,O.length)}),q}return e.reduce(E,M),N}function l(b,E){if(b.node(E).dummy)return e.find(b.predecessors(E),function(N){return b.node(N).dummy})}function u(b,E,N){if(E>N){var j=E;E=N,N=j}var M=b[E];M||(b[E]=M={}),M[N]=!0}function c(b,E,N){if(E>N){var j=E;E=N,N=j}return e.has(b[E],N)}function f(b,E,N,j){var M={},O={},q={};return e.forEach(E,function(F){e.forEach(F,function(R,P){M[R]=R,O[R]=R,q[R]=P})}),e.forEach(E,function(F){var R=-1;e.forEach(F,function(P){var B=j(P);if(B.length){B=e.sortBy(B,function(U){return q[U]});for(var J=(B.length-1)/2,Z=Math.floor(J),A=Math.ceil(J);Z<=A;++Z){var H=B[Z];O[P]===P&&R<q[H]&&!c(N,P,H)&&(O[H]=P,O[P]=M[P]=M[H],R=q[H])}}})}),{root:M,align:O}}function p(b,E,N,j,M){var O={},q=h(b,E,N,M),F=M?"borderLeft":"borderRight";function R(J,Z){for(var A=q.nodes(),H=A.pop(),U={};H;)U[H]?J(H):(U[H]=!0,A.push(H),A=A.concat(Z(H))),H=A.pop()}function P(J){O[J]=q.inEdges(J).reduce(function(Z,A){return Math.max(Z,O[A.v]+q.edge(A))},0)}function B(J){var Z=q.outEdges(J).reduce(function(H,U){return Math.min(H,O[U.w]-q.edge(U))},Number.POSITIVE_INFINITY),A=b.node(J);Z!==Number.POSITIVE_INFINITY&&A.borderType!==F&&(O[J]=Math.max(O[J],Z))}return R(P,q.predecessors.bind(q)),R(B,q.successors.bind(q)),e.forEach(j,function(J){O[J]=O[N[J]]}),O}function h(b,E,N,j){var M=new n,O=b.graph(),q=_(O.nodesep,O.edgesep,j);return e.forEach(E,function(F){var R;e.forEach(F,function(P){var B=N[P];if(M.setNode(B),R){var J=N[R],Z=M.edge(J,B);M.setEdge(J,B,Math.max(q(b,P,R),Z||0))}R=P})}),M}function g(b,E){return e.minBy(e.values(E),function(N){var j=Number.NEGATIVE_INFINITY,M=Number.POSITIVE_INFINITY;return e.forIn(N,function(O,q){var F=S(b,q)/2;j=Math.max(O+F,j),M=Math.min(O-F,M)}),j-M})}function y(b,E){var N=e.values(E),j=e.min(N),M=e.max(N);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(q){var F=O+q,R=b[F],P;if(R!==E){var B=e.values(R);P=q==="l"?j-e.min(B):M-e.max(B),P&&(b[F]=e.mapValues(R,function(J){return J+P}))}})})}function w(b,E){return e.mapValues(b.ul,function(N,j){if(E)return b[E.toLowerCase()][j];var M=e.sortBy(e.map(b,j));return(M[1]+M[2])/2})}function C(b){var E=r.buildLayerMatrix(b),N=e.merge(s(b,E),o(b,E)),j={},M;e.forEach(["u","d"],function(q){M=q==="u"?E:e.values(E).reverse(),e.forEach(["l","r"],function(F){F==="r"&&(M=e.map(M,function(J){return e.values(J).reverse()}));var R=(q==="u"?b.predecessors:b.successors).bind(b),P=f(b,M,N,R),B=p(b,M,P.root,P.align,F==="r");F==="r"&&(B=e.mapValues(B,function(J){return-J})),j[q+F]=B})});var O=g(b,j);return y(j,O),w(j,b.graph().align)}function _(b,E,N){return function(j,M,O){var q=j.node(M),F=j.node(O),R=0,P;if(R+=q.width/2,e.has(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":P=-q.width/2;break;case"r":P=q.width/2;break}if(P&&(R+=N?P:-P),P=0,R+=(q.dummy?E:b)/2,R+=(F.dummy?E:b)/2,R+=F.width/2,e.has(F,"labelpos"))switch(F.labelpos.toLowerCase()){case"l":P=F.width/2;break;case"r":P=-F.width/2;break}return P&&(R+=N?P:-P),P=0,R}}function S(b,E){return b.node(E).width}return wg}var xg,Ck;function f$(){if(Ck)return xg;Ck=1;var e=ot(),n=fn(),r=d$().positionX;xg=s;function s(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,f=0;e.forEach(u,function(p){var h=e.max(e.map(p,function(g){return l.node(g).height}));e.forEach(p,function(g){l.node(g).y=f+h/2}),f+=h+c})}return xg}var _g,jk;function h$(){if(jk)return _g;jk=1;var e=ot(),n=KL(),r=YL(),s=QL(),o=fn().normalizeRanks,l=ZL(),u=fn().removeEmptyRanks,c=JL(),f=e$(),p=t$(),h=c$(),g=f$(),y=fn(),w=Qn().Graph;_g=C;function C($,Y){var ee=Y&&Y.debugTiming?y.time:y.notime;ee("layout",function(){var se=ee(" buildLayoutGraph",function(){return R($)});ee(" runLayout",function(){_(se,ee)}),ee(" updateInputGraph",function(){S($,se)})})}function _($,Y){Y(" makeSpaceForEdgeLabels",function(){P($)}),Y(" removeSelfEdges",function(){D($)}),Y(" acyclic",function(){n.run($)}),Y(" nestingGraph.run",function(){c.run($)}),Y(" rank",function(){s(y.asNonCompoundGraph($))}),Y(" injectEdgeLabelProxies",function(){B($)}),Y(" removeEmptyRanks",function(){u($)}),Y(" nestingGraph.cleanup",function(){c.cleanup($)}),Y(" normalizeRanks",function(){o($)}),Y(" assignRankMinMax",function(){J($)}),Y(" removeEdgeLabelProxies",function(){Z($)}),Y(" normalize.run",function(){r.run($)}),Y(" parentDummyChains",function(){l($)}),Y(" addBorderSegments",function(){f($)}),Y(" order",function(){h($)}),Y(" insertSelfEdges",function(){G($)}),Y(" adjustCoordinateSystem",function(){p.adjust($)}),Y(" position",function(){g($)}),Y(" positionSelfEdges",function(){k($)}),Y(" removeBorderNodes",function(){Q($)}),Y(" normalize.undo",function(){r.undo($)}),Y(" fixupEdgeLabelCoords",function(){U($)}),Y(" undoCoordinateSystem",function(){p.undo($)}),Y(" translateGraph",function(){A($)}),Y(" assignNodeIntersects",function(){H($)}),Y(" reversePoints",function(){ne($)}),Y(" acyclic.undo",function(){n.undo($)})}function S($,Y){e.forEach($.nodes(),function(ee){var se=$.node(ee),ae=Y.node(ee);se&&(se.x=ae.x,se.y=ae.y,Y.children(ee).length&&(se.width=ae.width,se.height=ae.height))}),e.forEach($.edges(),function(ee){var se=$.edge(ee),ae=Y.edge(ee);se.points=ae.points,e.has(ae,"x")&&(se.x=ae.x,se.y=ae.y)}),$.graph().width=Y.graph().width,$.graph().height=Y.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],E={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],j=["width","height"],M={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],q={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},F=["labelpos"];function R($){var Y=new w({multigraph:!0,compound:!0}),ee=oe($.graph());return Y.setGraph(e.merge({},E,L(ee,b),e.pick(ee,N))),e.forEach($.nodes(),function(se){var ae=oe($.node(se));Y.setNode(se,e.defaults(L(ae,j),M)),Y.setParent(se,$.parent(se))}),e.forEach($.edges(),function(se){var ae=oe($.edge(se));Y.setEdge(se,e.merge({},q,L(ae,O),e.pick(ae,F)))}),Y}function P($){var Y=$.graph();Y.ranksep/=2,e.forEach($.edges(),function(ee){var se=$.edge(ee);se.minlen*=2,se.labelpos.toLowerCase()!=="c"&&(Y.rankdir==="TB"||Y.rankdir==="BT"?se.width+=se.labeloffset:se.height+=se.labeloffset)})}function B($){e.forEach($.edges(),function(Y){var ee=$.edge(Y);if(ee.width&&ee.height){var se=$.node(Y.v),ae=$.node(Y.w),pe={rank:(ae.rank-se.rank)/2+se.rank,e:Y};y.addDummyNode($,"edge-proxy",pe,"_ep")}})}function J($){var Y=0;e.forEach($.nodes(),function(ee){var se=$.node(ee);se.borderTop&&(se.minRank=$.node(se.borderTop).rank,se.maxRank=$.node(se.borderBottom).rank,Y=e.max(Y,se.maxRank))}),$.graph().maxRank=Y}function Z($){e.forEach($.nodes(),function(Y){var ee=$.node(Y);ee.dummy==="edge-proxy"&&($.edge(ee.e).labelRank=ee.rank,$.removeNode(Y))})}function A($){var Y=Number.POSITIVE_INFINITY,ee=0,se=Number.POSITIVE_INFINITY,ae=0,pe=$.graph(),ge=pe.marginx||0,Ae=pe.marginy||0;function Oe(Me){var Pe=Me.x,ke=Me.y,We=Me.width,ve=Me.height;Y=Math.min(Y,Pe-We/2),ee=Math.max(ee,Pe+We/2),se=Math.min(se,ke-ve/2),ae=Math.max(ae,ke+ve/2)}e.forEach($.nodes(),function(Me){Oe($.node(Me))}),e.forEach($.edges(),function(Me){var Pe=$.edge(Me);e.has(Pe,"x")&&Oe(Pe)}),Y-=ge,se-=Ae,e.forEach($.nodes(),function(Me){var Pe=$.node(Me);Pe.x-=Y,Pe.y-=se}),e.forEach($.edges(),function(Me){var Pe=$.edge(Me);e.forEach(Pe.points,function(ke){ke.x-=Y,ke.y-=se}),e.has(Pe,"x")&&(Pe.x-=Y),e.has(Pe,"y")&&(Pe.y-=se)}),pe.width=ee-Y+ge,pe.height=ae-se+Ae}function H($){e.forEach($.edges(),function(Y){var ee=$.edge(Y),se=$.node(Y.v),ae=$.node(Y.w),pe,ge;ee.points?(pe=ee.points[0],ge=ee.points[ee.points.length-1]):(ee.points=[],pe=ae,ge=se),ee.points.unshift(y.intersectRect(se,pe)),ee.points.push(y.intersectRect(ae,ge))})}function U($){e.forEach($.edges(),function(Y){var ee=$.edge(Y);if(e.has(ee,"x"))switch((ee.labelpos==="l"||ee.labelpos==="r")&&(ee.width-=ee.labeloffset),ee.labelpos){case"l":ee.x-=ee.width/2+ee.labeloffset;break;case"r":ee.x+=ee.width/2+ee.labeloffset;break}})}function ne($){e.forEach($.edges(),function(Y){var ee=$.edge(Y);ee.reversed&&ee.points.reverse()})}function Q($){e.forEach($.nodes(),function(Y){if($.children(Y).length){var ee=$.node(Y),se=$.node(ee.borderTop),ae=$.node(ee.borderBottom),pe=$.node(e.last(ee.borderLeft)),ge=$.node(e.last(ee.borderRight));ee.width=Math.abs(ge.x-pe.x),ee.height=Math.abs(ae.y-se.y),ee.x=pe.x+ee.width/2,ee.y=se.y+ee.height/2}}),e.forEach($.nodes(),function(Y){$.node(Y).dummy==="border"&&$.removeNode(Y)})}function D($){e.forEach($.edges(),function(Y){if(Y.v===Y.w){var ee=$.node(Y.v);ee.selfEdges||(ee.selfEdges=[]),ee.selfEdges.push({e:Y,label:$.edge(Y)}),$.removeEdge(Y)}})}function G($){var Y=y.buildLayerMatrix($);e.forEach(Y,function(ee){var se=0;e.forEach(ee,function(ae,pe){var ge=$.node(ae);ge.order=pe+se,e.forEach(ge.selfEdges,function(Ae){y.addDummyNode($,"selfedge",{width:Ae.label.width,height:Ae.label.height,rank:ge.rank,order:pe+ ++se,e:Ae.e,label:Ae.label},"_se")}),delete ge.selfEdges})})}function k($){e.forEach($.nodes(),function(Y){var ee=$.node(Y);if(ee.dummy==="selfedge"){var se=$.node(ee.e.v),ae=se.x+se.width/2,pe=se.y,ge=ee.x-ae,Ae=se.height/2;$.setEdge(ee.e,ee.label),$.removeNode(Y),ee.label.points=[{x:ae+2*ge/3,y:pe-Ae},{x:ae+5*ge/6,y:pe-Ae},{x:ae+ge,y:pe},{x:ae+5*ge/6,y:pe+Ae},{x:ae+2*ge/3,y:pe+Ae}],ee.label.x=ee.x,ee.label.y=ee.y}})}function L($,Y){return e.mapValues(e.pick($,Y),Number)}function oe($){var Y={};return e.forEach($,function(ee,se){Y[se.toLowerCase()]=ee}),Y}return _g}var Sg,Rk;function p$(){if(Rk)return Sg;Rk=1;var e=ot(),n=fn(),r=Qn().Graph;Sg={debugOrdering:s};function s(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,f){var p="layer"+f;u.setNode(p,{rank:"same"}),e.reduce(c,function(h,g){return u.setEdge(h,g,{style:"invis"}),g})}),u}return Sg}var bg,Tk;function m$(){return Tk||(Tk=1,bg="0.8.5"),bg}var kg,Ak;function g$(){return Ak||(Ak=1,kg={graphlib:Qn(),layout:h$(),debug:p$(),util:{time:fn().time,notime:fn().notime},version:m$()}),kg}var v$=g$();const Ik=Yg(v$),vi=240,Xi=130,zs=74,pu=72,Mk=zs+pu;function y$(e){let n=vi;for(const r of e.values())n=Math.max(n,r.width);return n}const bC=420,w$=2;function mu(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function Pk(e,n){return((n==null?void 0:n.get(e))??0)>0?bC:0}function Ok(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function x$(e,n,r,s,o,l){const u=new Ik.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),f=new Set(c);for(const S of c){const b=s.get(S);u.setNode(S,{width:((b==null?void 0:b.width)??vi)+Pk(S,l),height:Math.max((b==null?void 0:b.height)??Xi,Ok(S,l))})}for(const S of n)f.has(S.source)&&f.has(S.target)&&u.setEdge(S.source,S.target);Ik.layout(u);const p=new Map;let h=1/0,g=1/0,y=-1/0,w=-1/0;for(const S of c){const b=u.node(S);if(!b)continue;const E=s.get(S),N=(E==null?void 0:E.width)??vi,j=(E==null?void 0:E.height)??Xi,M=N+Pk(S,l),O=Math.max(j,Ok(S,l)),q=b.x-M/2,F=b.y-O/2;p.set(S,{x:q,y:F}),q<h&&(h=q),F<g&&(g=F),q+N>y&&(y=q+N),F+j>w&&(w=F+j)}if(Number.isFinite(h)&&Number.isFinite(g))for(const[S,b]of p)p.set(S,{x:b.x-h,y:b.y-g});let C=Number.isFinite(y)?y-h:0,_=Number.isFinite(w)?w-g:0;for(const S of e){const b=o.get(S);if(!b)continue;const E=s.get(S);C=Math.max(C,b.x+((E==null?void 0:E.width)??vi)),_=Math.max(_,b.y+((E==null?void 0:E.height)??Xi))}return{positions:p,width:C,height:_}}function _$(e,n,r={}){const s=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const E=mu(b),N=c.get(E);N?N.push(b.id):c.set(E,[b.id])}const p=Array.from(c.keys()).sort().map(b=>({sid:b,...x$(c.get(b),n,s,l,o,u)})),h=y$(l),g=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const E=[[]];let N=0;for(const j of p)E.length<b&&N>0&&N+j.height>g&&(E.push([]),N=0),E[E.length-1].push(j),N+=j.height+Mk;return E},w=b=>b.reduce((E,N)=>Math.max(E,N.width),0)+bC;let C=y(r.availableWidth?w$:1);C.length>1&&C.reduce((E,N)=>E+w(N),0)+h*(C.length-1)>(r.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){let E=0;for(const{positions:N,height:j}of b){for(const[M,O]of N)_.set(M,{x:O.x+S,y:O.y+E});E+=j+Mk}S+=w(b)+h}return e.map(b=>{const E=o.get(b.id);if(E)return{...b,position:E};const N=_.get(b.id);return N?{...b,position:N}:b})}function S$(e,n,r,s){const l=zs+pu,u=60,c=y=>{const w=s.get(y);return{w:(w==null?void 0:w.width)??vi,h:(w==null?void 0:w.height)??Xi}},f=new Map(e.map(y=>[y.id,mu(y)])),p=[],h=e.map(y=>({id:y.id,pos:r.get(y.id)??n.get(y.id)})).filter(y=>y.pos!=null).sort((y,w)=>y.pos.y-w.pos.y||y.pos.x-w.pos.x||y.id.localeCompare(w.id)),g=[];for(const{id:y,pos:w}of h){const{w:C,h:_}=c(y),S=f.get(y)??"_default";if(r.has(y)){p.push({x:w.x,y:w.y,w:C,h:_,sid:S});continue}let b=w.y;for(let E=0;E<p.length+1;E++){const N=p.find(j=>{const M=j.sid===S?24:u,O=j.sid===S?24:l;return w.x<j.x+j.w+M&&j.x<w.x+C+M&&b<j.y+j.h+O&&j.y<b+_+O});if(!N)break;b=N.y+N.h+(N.sid===S?24:l)}b!==w.y&&(n.set(y,{x:w.x,y:b}),g.push(y)),p.push({x:w.x,y:b,w:C,h:_,sid:S})}return g}function b$(e,n,r,s,o){const l=y=>{const w=s.get(y);return{w:(w==null?void 0:w.width)??vi,h:(w==null?void 0:w.height)??Xi}},u=y=>r.get(y)??n.get(y),c=new Map,f=[];for(const y of e){const w=u(y.id);if(!w)continue;const{w:C,h:_}=l(y.id);if(o.has(y.id)&&!r.has(y.id)){const S=mu(y);(c.get(S)??c.set(S,[]).get(S)).push(y)}else f.push({x:w.x,y:w.y,w:C,h:_})}if(c.size===0)return[];const p=zs+pu,h=(y,w,C,_)=>f.some(S=>y<S.x+S.w+zs&&S.x<y+C+zs&&w<S.y+S.h+p&&S.y<w+_+p),g=[];for(const y of[...c.keys()].sort()){const w=c.get(y);let C=1/0,_=1/0,S=-1/0,b=-1/0;for(const F of w){const R=u(F.id),{w:P,h:B}=l(F.id);C=Math.min(C,R.x),_=Math.min(_,R.y),S=Math.max(S,R.x+P),b=Math.max(b,R.y+B)}const E=S-C,N=b-_,j=[...new Set(f.map(F=>Math.round(F.x)))].sort((F,R)=>F-R),M=j.length?j:[C],O=[0,...f.map(F=>F.y+F.h+p)].sort((F,R)=>F-R);let q=null;e:for(const F of M)for(const R of O){if(R>=_)break;if(!h(F,R,E,N)){q={x:F,y:R};break e}}if(q){const F=q.x-C,R=q.y-_;for(const P of w){const B=u(P.id);n.set(P.id,{x:B.x+F,y:B.y+R})}g.push(y)}for(const F of w){const R=u(F.id),{w:P,h:B}=l(F.id);f.push({x:R.x,y:R.y,w:P,h:B})}}return g}function k$(e,n,r,s,o,l=!1){const f=zs+pu+1,p=8,h=1.75,g=200,y=.7,w=.01,C=R=>{const P=s.get(R);return{w:(P==null?void 0:P.width)??vi,h:(P==null?void 0:P.height)??Xi}},_=R=>r.get(R)??n.get(R),S=new Map;for(const R of e){if(!_(R.id))continue;const P=mu(R),B=S.get(P);B?B.push(R):S.set(P,[R])}const b=[],E=new Set,N=new Set,j=o.size===0;for(const R of[...S.keys()].sort()){const P=S.get(R);let B=1/0,J=1/0,Z=-1/0,A=-1/0,H=!1;for(const D of P){const G=_(D.id),{w:k,h:L}=C(D.id);B=Math.min(B,G.x),J=Math.min(J,G.y),Z=Math.max(Z,G.x+k),A=Math.max(A,G.y+L),r.has(D.id)&&(H=!0)}const U=Z-B,ne=A-J;N.add(R);const Q=o.get(R);Q&&(U>Q.w+p||ne>Q.h+p)&&E.add(R),o.set(R,{w:U,h:ne}),b.push({sid:R,members:P.map(D=>D.id),x:B,y:J,w:U,h:ne,anchored:H,mass:1})}for(const R of[...o.keys()])N.has(R)||o.delete(R);if(l||j)return[];let M=!1;for(let R=0;R<b.length&&!M;R++)for(let P=R+1;P<b.length;P++){const B=b[R],J=b[P];if(!(B.anchored&&J.anchored)&&Math.abs(B.x+B.w/2-(J.x+J.w/2))<(B.w+J.w)/2+61&&Math.abs(B.y+B.h/2-(J.y+J.h/2))<(B.h+J.h)/2+f){M=!0;break}}if(E.size===0&&!M)return[];if(E.size>0)for(const R of b)E.has(R.sid)&&(R.mass=8);else for(const R of b)R.mass=Math.max(1,R.w*R.h/(vi*Xi));const O=new Map(b.map(R=>[R.sid,R.x])),q=new Map(b.map(R=>[R.sid,R.y]));for(let R=0;R<g;R++){const P=new Map,B=new Map;let J=0;for(let Z=0;Z<b.length;Z++)for(let A=Z+1;A<b.length;A++){const H=b[Z],U=b[A];if(H.anchored&&U.anchored)continue;const ne=H.x+H.w/2,Q=H.y+H.h/2,D=U.x+U.w/2,G=U.y+U.h/2,k=(H.w+U.w)/2+61-Math.abs(ne-D),L=(H.h+U.h)/2+f-Math.abs(Q-G);if(k<=0||L<=0)continue;const oe=(Ke,$e)=>!Ke.anchored&&!($e<0&&Ke.x<=0),$=(Ke,$e)=>!Ke.anchored&&!($e<0&&Ke.y<=0),Y=(Ke,$e,Qe)=>{const bt=Ke===$e,ct=bt?H.sid<U.sid?-1:1:Math.sign(Ke-$e);return Qe(H,ct)||Qe(U,-ct)?ct:bt&&(Qe(H,-ct)||Qe(U,ct))?-ct:0},ee=Y(ne,D,oe),se=Y(Q,G,$),ae=ee!==0,pe=se!==0;if(!ae&&!pe)continue;const ge=ae&&(!pe||k*h<L),[Ae,Oe,Me,Pe]=ge?[ee,k,P,oe]:[se,L,B,$],ke=Pe(H,Ae),We=Pe(U,-Ae),ve=H.mass,ye=U.mass,Ge=ke?We?ye/(ve+ye):1:0,ut=We?ke?ve/(ve+ye):1:0,it=Oe*y;Me.set(H.sid,(Me.get(H.sid)??0)+Ae*it*Ge),Me.set(U.sid,(Me.get(U.sid)??0)-Ae*it*ut),J+=it}for(const Z of b)Z.anchored||(Z.x=Math.max(0,Z.x+(P.get(Z.sid)??0)),Z.y=Math.max(0,Z.y+(B.get(Z.sid)??0)));if(J<w)break}const F=[];for(const R of b){const P=R.x-O.get(R.sid),B=R.y-q.get(R.sid);if(!(Math.abs(P)<1&&Math.abs(B)<1)){for(const J of R.members){if(r.has(J))continue;const Z=n.get(J);Z&&n.set(J,{x:Z.x+P,y:Z.y+B})}F.push(R.sid)}}return F}const E$=600;function Wg(e,n){return!(e.exitAt!=null&&n-e.exitAt>E$||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function N$(e,n){const r=new Set;for(const s of e.agents.values())Wg(s,n)&&r.add(s.id);return r}function C$(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function j$(e,n,r=0){if(!e)return!1;for(const s of n)if(C$(e,s,r))return!0;return!1}function Hi(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function R$(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const T$={agent:IP,sessionGroup:UP},A$=420,Cl=18,I$=9e4,M$=200,P$=5*6e4,O$=6,q$=2*6e4,Pv="agent-dag.layout",Ov="agent-dag.viewport",kC="agent-dag.summariesDismissed",EC="agent-dag.sessionListOpen",NC="agent-dag.detailOpen",CC="agent-dag.usagePanelOpen",qk="agent-dag.accountsPanelOpen",Lk="agent-dag.versionNoticeDismissed",$k={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"};function L$(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}const Dk="agent-dag.autoRestart",Fk="agent-dag.bundleReloadedFor";function $$(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(EC)==="1"}catch{return!1}}function D$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(EC,e?"1":"0")}catch{}}function F$(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(NC)==="1"}catch{return!1}}function z$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(NC,e?"1":"0")}catch{}}function B$(){if(typeof window>"u")return!0;const e=window.localStorage.getItem(CC);try{return e===null?!0:e==="1"}catch{return!0}}function U$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CC,e?"1":"0")}catch{}}function H$(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(kC);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function zk(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(kC,JSON.stringify(r))}catch{}}function V$(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Pv);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function Eg(e,n){if(!(typeof window>"u"))try{const r={};for(const[s,o]of e)r[s]=o;for(const[s,o]of n)r[s]=o;window.localStorage.setItem(Pv,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function W$(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(Ov);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function G$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Ov,JSON.stringify(e))}catch{}}function Bk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Pv)}catch{}try{window.localStorage.removeItem(Ov)}catch{}}}function K$(e,n){const r=e.agents.get(n);if(!r)return;const s=[];for(const h of e.agents.values())h.sessionId===n&&s.push(h);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:s.map(h=>({id:h.id,kind:h.kind,label:h.label,parentId:h.parentId,state:h.state,startedAt:h.startedAt,endedAt:h.endedAt,model:h.model,cwd:h.cwd,usage:h.usage,prompts:h.prompts,tools:h.tools.map(g=>({id:g.id,name:g.name,inputPreview:g.inputPreview,startedAt:g.startedAt,endedAt:g.endedAt,ok:g.ok,errorPreview:g.errorPreview,usage:g.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),f=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");f.href=c,f.download=`agents-deck-${p}-${n.slice(0,8)}.json`,document.body.appendChild(f),f.click(),document.body.removeChild(f),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Gg={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Kg={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},Y$={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function jC(e){return e.startsWith("mcp__")?"mcp":Y$[e]??"other"}function RC(e,n){var s,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(s=e.cwd)!=null&&s.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function X$(e,n){if(!n)return null;const r=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),s=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function Q$(e,n,r,s,o,l,u,c,f,p,h,g,y,w,C,_,S,b){const E=[],N=[],j=new Set;if(l)for(const P of e.agents.values())RC(P,l)&&j.add(P.id);for(const P of e.agents.values()){if(!S.has(P.id))continue;const B=l?!j.has(P.id):!1,J=P.exitAt!=null,Z=_!=null&&!_.has(P.id),A=[B?"rf-dim":"",J?"rf-exiting":"",Z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,H=u.get(P.id);if(E.push({id:P.id,type:"agent",position:{x:0,y:0},data:{...P,now:n,dim:B,onOpenContext:b},className:A,...H?{width:H.width,height:H.height}:null}),P.parentId&&S.has(P.parentId)){const U=pv(P.sessionId),ne=P.state==="active"?`hsl(${U} 80% 72%)`:`hsl(${U} 50% 55%)`,Q=l&&!j.has(P.id)&&!j.has(P.parentId),D=J,G=C.size>0&&(C.has(P.id)||C.has(P.parentId)),k=_!=null&&!_.has(P.id)&&!_.has(P.parentId),L=P.state==="active"?2:1.5,oe=G?L+1.5:L,$=Q||D?.2:k?.12:1,Y=[D?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${P.parentId}->${P.id}`,source:P.parentId,target:P.id,animated:(P.state==="active"||G)&&!Q&&!D,type:"smoothstep",style:{stroke:ne,strokeWidth:oe,opacity:$,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:Y})}}const M=new Map;for(const P of e.agents.values())P.tools.length>0&&M.set(P.id,Math.min(4,P.tools.length));const O=E.filter(P=>!o.has(P.id)&&!g.has(P.id));if(O.length>0||y!==w.current){if(O.length>0){const P=_$(E,N,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:s,lanes:M});for(const B of P)g.has(B.id)||g.set(B.id,B.position);b$(E,g,o,u,new Set(O.map(B=>B.id)))}S$(E,g,o,u),w.current=y}const q=k$(E,g,o,u,c,!p||h);q.length>0&&f(q),cx(g,e.agents),cx(o,e.agents);const F=[];let R=!1;for(const P of E){let B=o.get(P.id)??g.get(P.id);B||(B={x:0,y:0},g.set(P.id,B),R=!0),F.push({...P,position:B})}return R&&(w.current=""),{nodes:F,edges:N}}function Z$(){return m.jsx(fv,{children:m.jsx(J$,{})})}function J$(){var ao,va,Wr,Gr;const e=sa(),n=I.useRef(Bg()),[,r]=I.useState(0),s=I.useCallback(()=>r(V=>V+1),[]),[o,l]=I.useState(()=>new Set),[u,c]=I.useState(null),[f,p]=I.useState(null),h=I.useCallback((V,K)=>{l(ue=>{if(!K)return new Set([V]);const fe=new Set(ue);return fe.has(V)?fe.delete(V):fe.add(V),fe}),c(ue=>K&&ue===V?ue:V)},[]),g=I.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=I.useState(null),[C,_]=I.useState(null),S=I.useCallback(V=>_(V),[]),b=I.useRef(H$()),[E,N]=I.useState($$);I.useEffect(()=>{D$(E)},[E]);const[j,M]=I.useState(F$);I.useEffect(()=>{z$(j)},[j]);const[O,q]=I.useState(B$);I.useEffect(()=>{U$(O)},[O]);const[F,R]=I.useState(()=>{try{const V=window.localStorage.getItem(qk);return V===null?!0:V==="1"}catch{return!0}});I.useEffect(()=>{try{window.localStorage.setItem(qk,F?"1":"0")}catch{}},[F]);const[P,B]=I.useState(null),[J,Z]=I.useState(!1),[A,H]=I.useState(0),[U,ne]=I.useState(0);I.useEffect(()=>{fetch("/api/sound-hook").then(V=>V.ok?V.json():null).then(V=>{V!=null&&V.ok&&(B(V.enabled===!0),H((V.foreign??[]).filter(K=>K.worksHere).length),ne(typeof V.parked=="number"?V.parked:0))}).catch(()=>{})},[]);const Q=I.useCallback(async()=>{Z(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!P})})).json().catch(()=>null);K!=null&&K.ok&&B(K.enabled===!0),fetch("/api/sound-hook").then(ue=>ue.ok?ue.json():null).then(ue=>{ue!=null&&ue.ok&&(H((ue.foreign??[]).filter(fe=>fe.worksHere).length),ne(typeof ue.parked=="number"?ue.parked:0))}).catch(()=>{})}catch{}finally{Z(!1)}},[P]),[D,G]=I.useState(!1),[k,L]=I.useState(null),[oe,$]=I.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(Lk)??""}catch{return""}}),[Y,ee]=I.useState(!1),se=I.useCallback((V=!1)=>{fetch(V?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&L(K)}).catch(()=>{})},[]);I.useEffect(()=>{se();const V=window.setInterval(se,5*6e4),K=()=>{document.visibilityState==="visible"&&se()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(V),document.removeEventListener("visibilitychange",K)}},[se]),I.useEffect(()=>{D&&se()},[D,se]);const ae=(k==null?void 0:k.notice)??null,pe=ae?`${ae.kind}:${ae.to}`:"",ge=ae!=null&&oe!==pe,Ae=I.useCallback(()=>{if(!ae)return;const V=oe===pe?"":pe;$(V);try{window.localStorage.setItem(Lk,V)}catch{}},[ae,pe,oe]),Oe=((ao=k==null?void 0:k.upgrade)==null?void 0:ao.state)??"idle",Me=I.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}se()},[se]);I.useEffect(()=>{if(Oe!=="running")return;const V=window.setInterval(se,3e3);return()=>window.clearInterval(V)},[Oe,se]);const Pe=I.useCallback(async()=>{var ue;const V=k==null?void 0:k.command;if(!V)return;let K=!1;try{K=await Promise.race([((ue=navigator.clipboard)==null?void 0:ue.writeText(V).then(()=>!0))??Promise.resolve(!1),new Promise(fe=>window.setTimeout(()=>fe(!1),500))])}catch{K=!1}if(!K)try{const fe=document.createElement("textarea");fe.value=V,fe.setAttribute("readonly",""),fe.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(fe),fe.select(),K=document.execCommand("copy"),fe.remove()}catch{K=!1}K&&(ee(!0),window.setTimeout(()=>ee(!1),1600))},[k==null?void 0:k.command]),ke=I.useCallback(()=>{N(V=>(V||R(!1),!V))},[]),We=I.useCallback(()=>{R(V=>(V||N(!1),!V))},[]),[ve,ye]=I.useState(!1),[Ge,ut]=I.useState(0),it=I.useRef(null),[Ke,$e]=I.useState(!1),Qe=I.useRef(null),[bt,ct]=I.useState(0),[pt,mt]=I.useState(!1),kt=I.useRef([]),[He,Je]=I.useState(Date.now()),[dt,gt]=I.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Dk)!=="0"}catch{return!0}}),yt=I.useCallback(()=>{gt(V=>{const K=!V;try{window.localStorage.setItem(Dk,K?"1":"0")}catch{}return K})},[]),[Gt,Pt]=I.useState(!1),[zt,Ln]=I.useState("restart"),[er,bn]=I.useState(null),Bt=I.useRef(!1),Jt=I.useCallback(async V=>{if(Bt.current)return;const K=(V==null?void 0:V.upgrade)===!0;Bt.current=!0,Ln(K?"npx":"restart"),Pt(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ae==null?void 0:ae.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:K})})}catch{}window.setTimeout(()=>{if(Bt.current){Bt.current=!1,Pt(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[ae==null?void 0:ae.to]),hn=I.useRef(null);I.useEffect(()=>{let V=!1;for(const ue of n.current.agents.values())if(ue.state==="active"){V=!0;break}const K=X3({enabled:dt,kind:ae==null?void 0:ae.kind,canRestart:(k==null?void 0:k.canRestart)===!0,busy:V,idleSince:hn.current,now:He});hn.current=K.idleSince,K.restart&&Jt()},[dt,ae==null?void 0:ae.kind,k==null?void 0:k.canRestart,He,Jt]),I.useEffect(()=>{let V=null;try{V=window.sessionStorage.getItem(Fk)}catch{return}if(Y3({bundle:"1.33.21",running:k==null?void 0:k.running,lastTried:V})){try{window.sessionStorage.setItem(Fk,(k==null?void 0:k.running)??"")}catch{return}window.location.reload()}},[k==null?void 0:k.running]),I.useEffect(()=>{const V=k==null?void 0:k.running;if(!V)return;let K=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending")}catch{return}if(K==null||K&&K!==V)return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Bt.current=!1,Pt(!1),bn(V);const ue=window.setTimeout(()=>bn(null),6e3);return()=>window.clearTimeout(ue)},[k==null?void 0:k.running]);const $r=I.useRef(V$()).current;I.useRef(!1);const Rt=I.useRef(new Map($r.positions.filter(([V])=>$r.pins.includes(V)))),hr=I.useRef(null),pr=I.useState(()=>W$())[0],[pn,wi]=I.useState(""),[tr,xi]=I.useState(()=>new Set),[mn,rs]=I.useState(()=>typeof window>"u"?"dark":window.localStorage.getItem("agent-dag.theme")??"dark"),[nr,Dr]=I.useState(!1),mr=I.useRef(null);I.useEffect(()=>{document.documentElement.dataset.theme=mn;try{window.localStorage.setItem("agent-dag.theme",mn)}catch{}},[mn]),I.useEffect(()=>{if(!pr)return;const V=window.setTimeout(()=>{try{e.setViewport(pr,{duration:0})}catch{}},60);return()=>window.clearTimeout(V)},[e,pr]);const Fr=I.useRef(!0),Ot=I.useRef(null);I.useEffect(()=>{const V=new EventSource("/events");return V.addEventListener("open",()=>{G(!0),Dr(!0)}),V.addEventListener("error",()=>G(!1)),V.addEventListener("replay-end",()=>{Fr.current=!1,Ot.current!=null&&(window.clearTimeout(Ot.current),Ot.current=null),s()}),V.addEventListener("hook",K=>{try{const ue=JSON.parse(K.data);if(pt){kt.current.push(ue);return}n.current=Xw(n.current,ue),ue.replay===!0||Fr.current||Date.now()-ue.receivedAt>3e4?(Ot.current!=null&&window.clearTimeout(Ot.current),Ot.current=window.setTimeout(()=>{Ot.current=null,s()},120)):(Ot.current!=null&&(window.clearTimeout(Ot.current),Ot.current=null),s())}catch{}}),()=>{V.close(),Ot.current!=null&&(window.clearTimeout(Ot.current),Ot.current=null)}},[pt,s]),I.useEffect(()=>{if(!pt&&kt.current.length!==0){for(const V of kt.current)n.current=Xw(n.current,V);kt.current.length=0,s()}},[pt,s]),I.useEffect(()=>{const V=setInterval(()=>{const K=Date.now();Je(K);let ue=wP(n.current,K,I$);vP(n.current,K,M$,P$)&&(ue=!0),yP(n.current,K,O$,q$)&&(ue=!0),ue&&s()},250);return()=>clearInterval(V)},[s]);const _i=I.useRef(null),$n=I.useRef(0),Dn=420,Kt=I.useCallback((V=500)=>{try{const we=document.querySelector(".canvas-wrap"),Ie=Array.from(document.querySelectorAll(".react-flow__node")).filter(xt=>xt.offsetWidth>0);if(!we||Ie.length===0)return;const Fe=we.getBoundingClientRect(),De=e.getViewport();if(!Number.isFinite(De.zoom)||De.zoom<=0)return;const Ye=xt=>(xt-Fe.left-De.x)/De.zoom,Ze=xt=>(xt-Fe.top-De.y)/De.zoom,yn=Ie.map(xt=>xt.getBoundingClientRect()),sr=Math.min(...yn.map(xt=>Ye(xt.left))),Kr=Math.max(...yn.map(xt=>Ye(xt.right))),Yr=Math.min(...yn.map(xt=>Ze(xt.top))),Lt=Math.max(...yn.map(xt=>Ze(xt.bottom))),_r=Kr-sr,Xr=Lt-Yr;if(!(_r>0&&Xr>0))return;const Xt=Math.max(.2,Math.min(1,(Fe.width-160)/(_r+Dn)*.86,(Fe.height-160)/Xr*.86));e.setViewport({x:80-sr*Xt,y:Math.max(80,(Fe.height-Xr*Xt)/2)-Yr*Xt,zoom:Xt},{duration:V}),$n.current=Date.now(),window.setTimeout(()=>{try{const xt={x:80-sr*Xt,y:Math.max(80,(Fe.height-Xr*Xt)/2)-Yr*Xt,zoom:Xt},us=e.getViewport();(Math.abs(us.zoom-Xt)>.01||Math.abs(us.x-xt.x)>2)&&e.setViewport(xt,{duration:0})}catch{}},V+60)}catch{}},[e]),zr=I.useRef(""),Si=I.useRef(null),bi=I.useRef(0),gr=I.useCallback(()=>{bi.current=Date.now()},[]),Br="agent-dag.autoFitDisabled",kn=I.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Br)==="1"}catch{return!1}})()),[ki,is]=I.useState(kn.current),et=I.useCallback(()=>{if(!kn.current){kn.current=!0,is(!0);try{window.localStorage.setItem(Br,"1")}catch{}}},[]),Qs=I.useCallback(()=>{kn.current=!1,is(!1);try{window.localStorage.removeItem(Br)}catch{}Kt(400)},[e,Kt]);I.useEffect(()=>{const V=setInterval(()=>{if(kn.current||Date.now()-bi.current<800)return;const K=n.current,ue=Date.now(),fe=[];for(const Ye of K.agents.values())Wg(Ye,ue)&&fe.push({id:Ye.id});if(fe.length===0)return;const xe=e.getViewport(),we=window.innerWidth-360,Ie=window.innerHeight-52;let Fe=!1,De=!1;for(const{id:Ye}of fe){const Ze=Fn.current.get(Ye),yn=Rt.current.get(Ye)??Tt.current.get(Ye);if(!Ze||!yn)continue;De=!0;const sr=yn.x*xe.zoom+xe.x,Kr=yn.y*xe.zoom+xe.y,Yr=(yn.x+Ze.width)*xe.zoom+xe.x,Lt=(yn.y+Ze.height)*xe.zoom+xe.y;if(Yr>0&&sr<we&&Lt>0&&Kr<Ie){Fe=!0;break}}De&&!Fe&&Kt(600)},1500);return()=>clearInterval(V)},[e]);const vr=I.useRef(!1),Fn=I.useRef(new Map),yr=I.useRef(0),ss=I.useCallback(V=>{const K=Fn.current;let ue=!1;for(const fe of V.nodeInternals.values()){const xe=fe.width,we=fe.height;if(xe==null||we==null)continue;const Ie=K.get(fe.id);Ie?(Math.abs(Ie.height-we)>4||Math.abs(Ie.width-xe)>4)&&(K.set(fe.id,{width:xe,height:we}),ue=!0):(K.set(fe.id,{width:xe,height:we}),ue=!0)}return ue&&(yr.current+=1),yr.current},[]),Ei=Xe(ss),[wr,en]=I.useState(0);I.useEffect(()=>{let V=0;const K=()=>{const fe=Fn.current;let xe=!1;for(const we of document.querySelectorAll(".react-flow__node[data-id]")){const Ie=we.getAttribute("data-id");if(!Ie)continue;const Fe=we.offsetWidth,De=we.offsetHeight;if(!Fe||!De)continue;const Ye=fe.get(Ie);(!Ye||Math.abs(Ye.width-Fe)>4||Math.abs(Ye.height-De)>4)&&(fe.set(Ie,{width:Fe,height:De}),xe=!0)}xe&&en(we=>we+1)};if(vr.current)return;let ue=0;return document.visibilityState==="hidden"?ue=window.setTimeout(K,32):V=requestAnimationFrame(K),()=>{cancelAnimationFrame(V),window.clearTimeout(ue)}});const Tt=I.useRef(new Map($r.positions)),Yt=I.useRef(""),Ur=I.useMemo(()=>{const V=[];for(const K of n.current.agents.values())Wg(K,He)&&V.push(K.id+(K.parentId?`>${K.parentId}`:""));return V.sort(),`${V.join("|")}#sv${Ei}.${wr}`},[n.current,n.current.lastSeq,He,Ei,wr]),Ni=I.useRef(null);I.useEffect(()=>(Ni.current!=null&&window.clearTimeout(Ni.current),Ni.current=window.setTimeout(()=>{Eg(Tt.current,Rt.current)},1500),()=>{Ni.current!=null&&window.clearTimeout(Ni.current)}),[Ur]),I.useEffect(()=>{if(zr.current===Ur)return;const V=zr.current;if(zr.current=Ur,!V||kn.current)return;Date.now()-$n.current>1200&&Kt(400),_i.current&&window.clearTimeout(_i.current),_i.current=window.setTimeout(()=>{kn.current||Kt(500)},280)},[Ur,e,Kt]);const Zs=I.useMemo(()=>{if(o.size===0)return null;const V=new Set;for(const K of o){const ue=X$(n.current,K);if(ue)for(const fe of ue)V.add(fe)}return V.size>0?V:null},[n.current,n.current.lastSeq,o]),Hr=I.useMemo(()=>N$(n.current,He),[n.current,n.current.lastSeq,He]),Ci=I.useRef(null),[rr,ji]=I.useState({w:0,h:0});I.useEffect(()=>{const V=Ci.current;if(!V||typeof ResizeObserver>"u")return;const K=new ResizeObserver(ue=>{var xe;const fe=(xe=ue[0])==null?void 0:xe.contentRect;fe&&ji(we=>Math.abs(we.w-fe.width)>40||Math.abs(we.h-fe.height)>40?{w:fe.width,h:fe.height}:we)});return K.observe(V),ji({w:V.clientWidth,h:V.clientHeight}),()=>K.disconnect()},[]);const gu=I.useRef(new Map),[fa,Js]=I.useState(!1);I.useEffect(()=>{const V=window.setTimeout(()=>Js(!0),2500);return()=>window.clearTimeout(V)},[]);const[ha,Ri]=I.useState(!1),tn=I.useRef(null),[eo,os]=I.useState(!1),Ve=I.useCallback(()=>{tn.current&&(window.clearTimeout(tn.current),tn.current=null),Ri(!1)},[]),pa=I.useCallback(V=>{V.length!==0&&queueMicrotask(()=>{Ri(!0),tn.current&&window.clearTimeout(tn.current),tn.current=window.setTimeout(()=>Ri(!1),A$+80)})},[]);I.useEffect(()=>()=>{tn.current&&window.clearTimeout(tn.current)},[]);const to=rr.w>0?rr.w*.92:0,as=rr.h>0?rr.h:0,{nodes:gn,edges:ma}=I.useMemo(()=>Q$(n.current,He,to,as,Rt.current,pn,Fn.current,gu.current,pa,fa,eo,Tt.current,Ur,Yt,o,Zs,Hr,S),[n.current,n.current.lastSeq,He,to,as,fa,eo,pn,Ur,o,Zs,Hr,S,Ge]),no=I.useMemo(()=>{const V=new Map;for(const ue of gn){const fe=ue.data;if(!(fe!=null&&fe.sessionId)||fe.exitAt!=null)continue;const xe=ue.width,we=ue.height;if(xe==null||we==null)continue;const Ie=ue.position.x,Fe=ue.position.y,De=Ie+xe,Ye=Fe+we,Ze=V.get(fe.sessionId);Ze?(Ze.minX=Math.min(Ze.minX,Ie),Ze.minY=Math.min(Ze.minY,Fe),Ze.maxX=Math.max(Ze.maxX,De),Ze.maxY=Math.max(Ze.maxY,Ye)):V.set(fe.sessionId,{minX:Ie,minY:Fe,maxX:De,maxY:Ye})}const K=[];for(const[ue,fe]of V){const xe=fe.maxX-fe.minX+Cl*2,we=fe.maxY-fe.minY+Cl*2;K.push({id:`group:${ue}`,type:"sessionGroup",position:{x:fe.minX-Cl,y:fe.minY-Cl},data:{sessionId:ue,w:xe,h:we},width:xe,height:we,style:{width:xe,height:we},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[gn,He]),ro=I.useMemo(()=>{const V=[...no,...gn],K=Qe.current;return!K||K.size===0?V:V.map(ue=>{const fe=K.get(ue.id);return fe?{...ue,position:fe}:ue})},[no,gn,bt]),ls=I.useMemo(()=>{if(!pn)return null;const V=new Set;for(const K of n.current.agents.values())RC(K,pn)&&V.add(K.id);return V},[n.current,n.current.lastSeq,pn]),vn=I.useMemo(()=>{const V=new Set;for(const K of n.current.agents.values())for(const ue of K.tools)V.add(jC(ue.name));return Object.keys(Gg).filter(K=>V.has(K))},[n.current,n.current.lastSeq]);I.useEffect(()=>{if(vn.length<=1){$e(!1);return}let V=0;const K=()=>{const ue=it.current;if(ue&&!document.hidden){const fe=ue.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ie=>Ie.getBoundingClientRect()),we=j$(fe,xe,8);$e(Ie=>Ie===we?Ie:we)}V=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(V)},[vn.length]);const nn=I.useMemo(()=>{const V=new Map;for(const ue of n.current.agents.values())for(const fe of ue.tools){if(!fe.name.startsWith("mcp__"))continue;const xe=fe.name.slice(5),we=xe.indexOf("__"),Ie=we>0?xe.slice(0,we):xe;V.set(Ie,(V.get(Ie)??0)+1)}const K=[];for(const[ue,fe]of V){let xe=5381;for(let we=0;we<ue.length;we++)xe=(xe<<5)+xe^ue.charCodeAt(we);K.push({server:ue,count:fe,hue:Math.abs(xe)%360})}return K.sort((ue,fe)=>fe.count-ue.count),K},[n.current,n.current.lastSeq]),ir=I.useCallback(V=>{xi(K=>{const ue=new Set(K);return ue.has(V)?ue.delete(V):ue.add(V),ue})},[]),wt=u?n.current.agents.get(u):null,Vr=f?Array.from(n.current.agents.values()).flatMap(V=>V.tools).find(V=>V.id===f)??null:null,En=I.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Bg(),Rt.current.clear(),Fn.current.clear(),Tt.current.clear(),Yt.current="",Bk(),g(),s()},[s,g]),io=I.useCallback(()=>{Rt.current.clear(),Tt.current.clear(),Yt.current="",Bk(),s(),window.setTimeout(()=>Kt(500),80)},[s,e,Kt]),so=I.useCallback(()=>Kt(500),[Kt]),xr=I.useCallback(V=>{if(gn.length===0)return;const K=gn.slice().sort((we,Ie)=>we.position.y-Ie.position.y||we.position.x-Ie.position.x),ue=u?K.findIndex(we=>we.id===u):-1;let fe;ue===-1?fe=V===1?0:K.length-1:fe=(ue+V+K.length)%K.length;const xe=K[fe];xe&&(h(xe.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[xe]})}catch{}$n.current=Date.now()},30))},[gn,u,h,e]);I.useEffect(()=>{const V=K=>{var fe,xe;const ue=((fe=K.target)==null?void 0:fe.tagName)==="INPUT";if(K.key==="Escape"){ue?K.target.blur():g();return}if(!ue&&!Q3(K)){if(K.key==="/"){K.preventDefault(),(xe=mr.current)==null||xe.focus();return}K.key===" "&&(K.preventDefault(),mt(we=>!we)),(K.key==="c"||K.key==="C")&&En(),(K.key==="r"||K.key==="R")&&io(),(K.key==="f"||K.key==="F")&&so(),(K.key==="l"||K.key==="L")&&ke(),(K.key==="h"||K.key==="H")&&ye(we=>!we),(K.key==="u"||K.key==="U")&&q(we=>!we),(K.key==="a"||K.key==="A")&&We(),(K.key==="j"||K.key==="J")&&xr(1),(K.key==="k"||K.key==="K")&&xr(-1),(K.key==="t"||K.key==="T")&&rs(we=>we==="dark"?"light":"dark")}};return window.addEventListener("keydown",V),()=>window.removeEventListener("keydown",V)},[En,io,so,g,xr]);const oo=n.current.agents.size,ga=new Set(Array.from(n.current.agents.values()).map(V=>V.sessionId)).size,qt=I.useMemo(()=>{let V=0,K=0,ue=0,fe=0,xe=0,we=0,Ie=0,Fe=0,De=0;for(const Ye of n.current.agents.values()){V+=Ye.usage.inputTokens,K+=Ye.usage.outputTokens,ue+=Ye.usage.cacheReadTokens,fe+=Ye.usage.cacheCreateTokens;const Ze=dn(Ye.usage,Ye.model);xe+=Ze.total,we+=Ze.input,Ie+=Ze.output,Fe+=Ze.cacheRead,De+=Ze.cacheWrite}return{inT:V,outT:K,cacheR:ue,cacheC:fe,sum:V+K,cost:{total:xe,input:we,output:Ie,cacheRead:Fe,cacheWrite:De}}},[n.current,n.current.lastSeq]);return m.jsxs("div",{className:"app",children:[m.jsxs("header",{className:"topbar",children:[m.jsxs("div",{className:"brand",children:[m.jsx("span",{className:"logo"}),"agents-deck",ae?m.jsxs("button",{type:"button",className:"v stale",onClick:Ae,title:ae.kind==="restart"?`Running v${ae.from}; v${ae.to} is installed on disk. Restart to pick it up.`:`Running v${ae.from}; v${ae.to} is on npm.`,children:["v",ae.from,m.jsx("span",{className:"v-dot","aria-hidden":!0})]}):m.jsxs("button",{type:"button",className:"v",onClick:()=>se(!0),title:k!=null&&k.checkDisabled?"Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).":`${k!=null&&k.latest?`npm has v${k.latest}`:"npm not reached yet"}${k!=null&&k.checkedAt?` · checked ${L$(He-k.checkedAt)}`:""} · click to check now`,children:["v",(k==null?void 0:k.running)??"1.33.21"]})]}),wt&&(()=>{const V=dn(wt.usage,wt.model),K=Math.max(0,((wt.endedAt??He)-wt.startedAt)/1e3),ue=wt.state==="active"?Bl(V.total,K):null,fe=o.size-1;return m.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${wt.label}`,onClick:()=>{try{const xe=gn.find(we=>we.id===wt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),$n.current=Date.now()}catch{}},children:[m.jsx("span",{className:`state-pill state-${wt.state}`,children:wt.state==="active"?"live":wt.state}),m.jsx("span",{className:"selected-label",children:wt.label}),V.total>0&&m.jsxs("span",{className:"selected-cost",children:[Be(V.total),ue?m.jsxs("span",{className:"selected-rate",children:[" · ",ue]}):null]}),fe>0&&m.jsxs("span",{className:"selected-extra",children:["+",fe]}),m.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:xe=>{xe.stopPropagation(),g()},children:"×"})]})})(),m.jsxs("div",{className:"actions",children:[m.jsxs("div",{className:"search",children:[m.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),m.jsx("input",{ref:mr,type:"text",placeholder:"Search agents, cwd, tools…",value:pn,onChange:V=>wi(V.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),pn?m.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>wi(""),children:"×"}):m.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),m.jsxs("span",{className:"status",role:"status",children:[m.jsx("span",{className:`pill ${D?"live":"dead"}`,title:D?"Receiving events":"SSE disconnected",children:D?"live":"offline"}),m.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[m.jsx("span",{className:"count",children:ga}),m.jsx("span",{className:"lbl",children:"sessions"})]}),m.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[m.jsx("span",{className:"count",children:oo}),m.jsx("span",{className:"lbl",children:"agents"})]}),m.jsxs("span",{className:"stat",title:"Total hook events received",children:[m.jsx("span",{className:"count",children:n.current.totalEvents}),m.jsx("span",{className:"lbl",children:"events"})]}),qt.sum>0&&m.jsxs("span",{className:"stat",title:`in:${qt.inT.toLocaleString()} out:${qt.outT.toLocaleString()} cache-r:${qt.cacheR.toLocaleString()} cache-c:${qt.cacheC.toLocaleString()}`,children:[m.jsx("span",{className:"count",children:R$(qt.sum)}),m.jsx("span",{className:"lbl",children:"tokens"})]}),nn.length>0&&m.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
59
+ burn: ${y}`:"");return m.jsxs("span",{className:"cost-meta",title:w,children:[m.jsx("b",{children:Be(h.total)}),y&&m.jsx("span",{className:"cost-rate",children:y})]})})()]}),m.jsx(Vs,{type:"source",position:Ce.Right,style:{background:"transparent",border:"none"}})]})}function MP({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return m.jsx("span",{className:`state-pill state-${e}`,children:n})}function PP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function OP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const w=n-y.startedAt;if(w<0||w>=6e4)continue;const C=23-Math.floor(w/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),f=132,p=14,h=f/24,g=c/(2500/1e3);return m.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${g.toFixed(1)}/s`,children:[m.jsx("svg",{className:"tool-spark",width:f,height:p,viewBox:`0 0 ${f} ${p}`,"aria-hidden":!0,children:l.map((y,w)=>{const C=y===0?1.5:Math.max(1.5,y/c*p),_=w===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return m.jsx("rect",{x:w*h+.4,y:p-C,width:Math.max(.5,h-1),height:C,rx:.8,className:b},w)})}),m.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function oa(e){const n=e.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(n){const o=n[1][0].toUpperCase()+n[1].slice(1).toLowerCase(),l=n[2].replace(/[-_]/g,".");return`${o} ${l}`}const r=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(r)return`GPT-${r[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function Zw(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function qP(e){if(e.endedAt==null)return"in-flight…";const n=e.endedAt-e.startedAt;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(2)}s`}function LP({tool:e,onClose:n}){I.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return m.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:m.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[m.jsxs("header",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:`status-dot ${r}`}),m.jsx("span",{className:"modal-tool-name",children:e.name}),m.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),m.jsxs("div",{className:"modal-actions",children:[m.jsx("span",{className:"modal-dur",children:qP(e)}),m.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),m.jsxs("section",{className:"modal-body",children:[m.jsxs("div",{className:"modal-section",children:[m.jsx("h4",{children:"Input"}),m.jsx("pre",{children:Zw(e.input??e.inputPreview)})]}),m.jsxs("div",{className:"modal-section",children:[m.jsxs("h4",{children:["Response ",r==="err"&&m.jsx("span",{className:"err-tag",children:"error"})]}),m.jsx("pre",{children:e.endedAt==null?"(waiting…)":Zw(e.response??e.errorPreview)})]})]})]})})}const Sl=18,Jw=26,$P=12;function DP(e){const n=new Map;for(const o of e.nodeInternals.values()){const l=o.data;if(!(l!=null&&l.sessionId)||l.exitAt!=null||o.width==null||o.height==null)continue;const u=o.position.x,c=o.position.y,f=u+o.width,p=c+o.height,h=n.get(l.sessionId);h?(h.minX=Math.min(h.minX,u),h.minY=Math.min(h.minY,c),h.maxX=Math.max(h.maxX,f),h.maxY=Math.max(h.maxY,p),l.kind==="root"&&(h.label=ex(l)??h.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:f,maxY:p,label:ex(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${FP(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-Sl,y:l.minY-Sl-Jw,w:l.maxX-l.minX+Sl*2,h:l.maxY-l.minY+Sl*2+Jw})}return s}function FP(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function ex(e){if(e.kind==="root")return e.label}function zP(){const{x:e,y:n,zoom:r}=uN(),s=sa(),o=Xe(DP,BP);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(f=>{const p=f.data;return(p==null?void 0:p.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return m.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=pv(u.sessionId),f={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},p={position:"absolute",left:u.x*r+e+16*r,top:(u.y-$P)*r+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top"};return m.jsxs(le.Fragment,{children:[m.jsx("div",{className:"cluster-card",style:f,"aria-hidden":!0}),m.jsx("button",{type:"button",className:"cluster-label",style:p,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function BP(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const s=e[r],o=n[r];if(s.sessionId!==o.sessionId||s.label!==o.label||s.x!==o.x||s.y!==o.y||s.w!==o.w||s.h!==o.h)return!1}return!0}function UP({data:e}){return m.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const wN=600,HP=36,Hg=16,VP=60,WP=6,tx=220,nx=96,GP=28,KP={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function YP(e){return e.startsWith("mcp__")?"mcp":KP[e]??"other"}const XP={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function rx(e){return e.startsWith("mcp__")?"🔌":XP[e]??"✨"}const QP={git:"🐙",gh:"🐙",glab:"🐙",npm:"📦",pnpm:"📦",yarn:"📦",bun:"📦",brew:"🍺",node:"🟢",deno:"🟢",python:"🐍",python3:"🐍",py:"🐍",pip:"🐍",pip3:"🐍",uv:"🐍",ruby:"💎",bundle:"💎",gem:"💎",cargo:"🦀",rustc:"🦀",rustup:"🦀",go:"🐹",docker:"🐳","docker-compose":"🐳",podman:"🐳",kubectl:"☸️",helm:"☸️",k9s:"☸️",grep:"🔎",rg:"🔎",ag:"🔎",ack:"🔎",find:"🔍",fd:"🔍",locate:"🔍",which:"🔍",ls:"📂",dir:"📂",tree:"📂",cat:"📄",head:"📄",tail:"📄",less:"📄",more:"📄",bat:"📄",cp:"📋",mv:"✂️",rm:"🗑️",rmdir:"🗑️",mkdir:"📁",touch:"📁",sed:"✏️",awk:"✏️",tr:"✏️",curl:"🌐",wget:"🌐",http:"🌐",httpie:"🌐",ssh:"🔐",scp:"🔐",rsync:"🔐",ping:"📡",make:"🔨",cmake:"🔨",ninja:"🔨",bazel:"🔨",just:"🔨",terraform:"🏗️",ansible:"📕",pulumi:"🏗️",ps:"📊",top:"📊",htop:"📊",btm:"📊",kill:"💀",pkill:"💀",systemctl:"⚙️",service:"⚙️",tar:"🗜️",zip:"🗜️",unzip:"🗜️",gzip:"🗜️","7z":"🗜️",vim:"📝",nvim:"📝",nano:"📝",emacs:"📝",code:"📝",jq:"🪺",yq:"🪺",echo:"💬",printf:"💬",ffmpeg:"🎞️",ffprobe:"🎞️",imagemagick:"🖼️",convert:"🖼️","Get-ChildItem":"📂","Get-Content":"📄","Set-Content":"💾","Out-File":"💾","Add-Content":"💾","Set-Location":"📍","Get-Location":"📍","Get-Process":"📊","Start-Process":"▶️","Stop-Process":"💀","Invoke-WebRequest":"🌐","Invoke-RestMethod":"🌐","New-Item":"📁","Remove-Item":"🗑️","Copy-Item":"📋","Move-Item":"✂️","Test-Path":"🔍","Where-Object":"🔎","ForEach-Object":"🔁","Select-Object":"🎯","Measure-Object":"📊","Get-Service":"⚙️","Restart-Service":"⚙️","ConvertTo-Json":"🪺","ConvertFrom-Json":"🪺"};function xN(e){if(!e)return null;let n=e.trim();if(!n)return null;const r=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(r)return xN(r[1]);for(;;){const l=n.match(/^([A-Z_][A-Z0-9_]*=\S*)\s+/);if(!l)break;n=n.slice(l[0].length)}n=n.replace(/^sudo(?:\s+-\S+)*\s+/,""),n=n.replace(/^(?:time|nohup|xargs)\s+/,"");const s=n.match(/^([^\s|;&<>(]+)/);if(!s)return null;let o=s[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function ZP(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const s=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<r.length)return r[s+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const JP=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),e3=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function t3(e,n){return e3.has(e)?Math.max(nx,34+n.length*7.5):nx}function n3(e,n){if(!JP.has(e))return null;const r=ZP(n);if(!r)return null;const s=xN(r);return s?{emoji:QP[s]??"⚙️",label:s,category:"shell",detail:r}:null}const r3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),ix={ts:"🟦",tsx:"🟦",d:"🟦",js:"🟨",jsx:"🟨",mjs:"🟨",cjs:"🟨",py:"🐍",pyi:"🐍",ipynb:"📓",rs:"🦀",go:"🐹",rb:"💎",erb:"💎",java:"☕",kt:"☕",scala:"☕",gradle:"☕",cs:"🔷",fs:"🔷",php:"🐘",swift:"🦅",c:"🇨",cpp:"🇨",cc:"🇨",h:"🇨",hpp:"🇨",md:"📝",mdx:"📝",rst:"📝",json:"🪺",json5:"🪺",jsonl:"🪺",yaml:"⚙️",yml:"⚙️",toml:"⚙️",ini:"⚙️",conf:"⚙️",cfg:"⚙️",xml:"📰",html:"🌐",htm:"🌐",vue:"🌐",svelte:"🌐",css:"🎨",scss:"🎨",sass:"🎨",less:"🎨",sh:"⚡",bash:"⚡",zsh:"⚡",fish:"⚡",ps1:"⚡",txt:"📄",log:"📄",out:"📄",csv:"📊",tsv:"📊",xlsx:"📊",xls:"📊",pdf:"📕",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",webp:"🖼️",svg:"🖼️",ico:"🖼️",mp4:"🎬",mov:"🎬",avi:"🎬",mkv:"🎬",webm:"🎬",mp3:"🎵",wav:"🎵",ogg:"🎵",flac:"🎵",zip:"🗜️",tar:"🗜️",gz:"🗜️",bz2:"🗜️","7z":"🗜️",xz:"🗜️",rar:"🗜️",env:"🔐",lock:"🔐",pem:"🔐",key:"🔐",crt:"🔐",sql:"🗄️",db:"🗄️",sqlite:"🗄️",parquet:"🗄️"},sx={dockerfile:"🐳",makefile:"🔨",rakefile:"💎","package.json":"📦","pnpm-lock.yaml":"📦","yarn.lock":"📦","cargo.toml":"🦀","cargo.lock":"🦀","go.mod":"🐹","go.sum":"🐹","pyproject.toml":"🐍","requirements.txt":"🐍","readme.md":"📖",readme:"📖",license:"📜",".gitignore":"🐙",".gitattributes":"🐙",".env":"🔐",".dockerignore":"🐳"};function i3(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),s=r.lastIndexOf("/");return s>=0?r.slice(s+1):r}function s3(e){const n=e.toLowerCase();if(sx[n])return sx[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const r=n.lastIndexOf(".");if(r>0&&r<n.length-1){const s=n.slice(r+1);if(ix[s])return ix[s]}return"📄"}function o3(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const s=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[1].trim():null}return typeof r.file_path=="string"?r.file_path:typeof r.notebook_path=="string"?r.notebook_path:typeof r.path=="string"?r.path:e==="Glob"&&typeof r.pattern=="string"?r.pattern:null}function a3(e,n){if(!r3.has(e))return null;const r=o3(e,n);if(!r)return null;const s=i3(r);return s?{emoji:e==="LS"?"📂":s3(s),label:s,category:"file",detail:r}:null}const _N={github:{emoji:"🐙",name:"GitHub"},git:{emoji:"🐙",name:"Git"},gitlab:{emoji:"🦊",name:"GitLab"},slack:{emoji:"💬",name:"Slack"},discord:{emoji:"💬",name:"Discord"},linear:{emoji:"📐",name:"Linear"},jira:{emoji:"🅹",name:"Jira"},atlassian:{emoji:"🅰️",name:"Atlassian"},notion:{emoji:"📓",name:"Notion"},asana:{emoji:"📋",name:"Asana"},intercom:{emoji:"💬",name:"Intercom"},figma:{emoji:"🎨",name:"Figma"},gmail:{emoji:"📧",name:"Gmail"},calendar:{emoji:"📅",name:"Calendar"},drive:{emoji:"☁️",name:"Drive"},zoom:{emoji:"📹",name:"Zoom"},spotify:{emoji:"🎵",name:"Spotify"},youtube:{emoji:"📺",name:"YouTube"},ccd_session:{emoji:"📡",name:"Session"},ccd_directory:{emoji:"📂",name:"Directory"},ccd_session_mgmt:{emoji:"📡",name:"Sessions"},mcp_registry:{emoji:"🧰",name:"Registry"},"computer-use":{emoji:"🖱️",name:"Computer"},"claude-in-chrome":{emoji:"🌐",name:"Chrome"},"claude-preview":{emoji:"👀",name:"Preview"},"scheduled-tasks":{emoji:"⏰",name:"Scheduler"},visualize:{emoji:"🎨",name:"Visualize"},"plugin-design-asana":{emoji:"📋",name:"Asana"},"plugin-design-atlassian":{emoji:"🅰️",name:"Atlassian"},"plugin-design-figma":{emoji:"🎨",name:"Figma"},"plugin-design-intercom":{emoji:"💬",name:"Intercom"},"plugin-design-linear":{emoji:"📐",name:"Linear"},"plugin-design-notion":{emoji:"📓",name:"Notion"},"plugin-design-slack":{emoji:"💬",name:"Slack"}};function SN(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),r=n.indexOf("__");return r<=0?{server:n,method:""}:{server:n.slice(0,r),method:n.slice(r+2)}}function l3(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}function u3(e,n){const r=SN(e);if(!r)return null;const{server:s,method:o}=r;if(!o)return null;const l=_N[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function c3(e,n){return n3(e,n)??a3(e,n)??u3(e)}const d3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function f3(e){const n=SN(e);if(n){const s=_N[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:l3(n.server)}}const r=d3[e];return r?{emoji:rx(e),label:r}:{emoji:rx(e),label:e}}function h3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function p3(e,n,r){if(r==null)return 1;const s=n-r;return s<0?1:Math.max(0,1-s/wN)}function m3(e,n,r,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>wN)continue;const f=s.get(c.id)??r.get(c.id);if(!f)continue;const p=c.tools.slice(-4);if(p.length===0)continue;const h=c.exitAt??null,g=o.get(c.id),y=Math.max((g==null?void 0:g.width)??tx,tx),w=(g==null?void 0:g.height)??130,C=f.x,_=f.y,S=C+y,b=_+w/2;p.forEach((E,N)=>{const j=N*HP,M=C+y+VP,O=_+WP+j,q=p3(E,l,h),F=E.inputPreview??"",R=h3(E),P=q<.999,B=f3(E.name);u.push({id:E.id,toolId:E.id,agentId:c.id,toolName:E.name,name:B.label,emoji:B.emoji,status:R,category:YP(E.name),mcpHue:B.hue,inputPreview:F,fade:q,fading:P,worldX:M,worldY:O,anchorX:S,anchorY:b,spawnDx:S-M,spawnDy:b-(O+Hg)});const J=c3(E.name,E.input);if(J){const Z=t3(E.name,B.label),A=M+Z+GP,H=O,U=M+Z,ne=O+Hg;u.push({id:`sub:${E.id}`,toolId:E.id,agentId:c.id,toolName:E.name,name:J.label,emoji:J.emoji,isSub:!0,status:R,category:J.category,inputPreview:J.detail??F,fade:q,fading:P,worldX:A,worldY:H,anchorX:U,anchorY:ne,spawnDx:U-A,spawnDy:0})}})}return u}function g3({agents:e,visibleAgentIds:n,positions:r,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:f,onOpenTool:p}){const{x:h,y:g,zoom:y}=uN(),w=m3(e,n,r,s,o,f),C=c&&c.size>0?w.filter(_=>!c.has(_.category)):w;return m.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[m.jsx("svg",{className:"tool-bursts-svg",children:C.map(_=>{const S=_.anchorX*y+h,b=_.anchorY*y+g,E=(_.worldX+6)*y+h,N=(_.worldY+Hg)*y+g,j=S+(E-S)*.55,M=l!=null&&!l.has(_.agentId),O=u!=null&&!u.has(_.agentId),q=_.fade*(M||O?.14:1);return m.jsx("path",{d:`M ${S} ${b} Q ${j} ${b}, ${E} ${N}`,className:`tool-conn status-${_.status}${_.fading?" fading":""}`,opacity:q},`l:${_.id}`)})}),C.map(_=>{const S=_.worldX*y+h,b=_.worldY*y+g,E={left:`${S}px`,top:`${b}px`,transform:`scale(${y})`,transformOrigin:"left top","--spawn-dx":`${_.spawnDx}px`,"--spawn-dy":`${_.spawnDy}px`},N=_.isSub?`${_.toolName} · ${_.name}`:_.toolName,j=_.inputPreview?`${N} · ${_.inputPreview}`:N,M=p!=null,O=_.mcpHue!=null?{"--cat-accent":`hsl(${_.mcpHue} 65% 65%)`}:{},q=l!=null&&!l.has(_.agentId),F=u!=null&&!u.has(_.agentId),R=q||F?" dim":"";return m.jsx("div",{className:"tool-burst-wrap",style:E,children:m.jsxs("div",{className:`tool-burst cat-${_.category} status-${_.status}${_.fading?" fading":""}${M?" clickable":""}${_.isSub?" sub":""}${R}`,style:O,title:j,role:M?"button":void 0,tabIndex:M?0:void 0,"aria-label":M?`Open ${_.toolName} ${_.status==="inflight"?"in flight":_.status} — click for details`:void 0,onClick:M?()=>p(_.toolId):void 0,onKeyDown:M?P=>{(P.key==="Enter"||P.key===" ")&&(P.preventDefault(),p(_.toolId))}:void 0,children:[m.jsx("span",{className:"tb-emoji",children:_.emoji}),m.jsx("span",{className:"tb-name",children:_.name}),_.status==="inflight"&&m.jsx("span",{className:"tb-spin"}),_.status==="done"&&m.jsx("span",{className:"tb-mark done",children:"✓"}),_.status==="err"&&m.jsx("span",{className:"tb-mark err",children:"×"})]})},_.id)})]})}function v3({state:e,sessionId:n,onClose:r}){const s=I.useMemo(()=>w3(e,n),[e,n]);return s?m.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:m.jsxs("div",{className:"modal session-summary",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[m.jsxs("div",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),m.jsx("span",{id:"ss-title",className:"modal-tool-name",title:s.cwd??s.sessionId,children:s.label}),m.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),m.jsxs("div",{className:"modal-actions",children:[m.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),m.jsx("button",{className:"btn",onClick:r,"aria-label":"Close",children:"×"})]})]}),m.jsxs("div",{className:"modal-body",children:[m.jsxs("section",{className:"ss-hero",children:[m.jsxs("div",{className:"ss-hero-left",children:[m.jsx("div",{className:"ss-cost-label",children:"total spend"}),m.jsx("div",{className:"ss-cost",children:Be(s.cost.total)}),s.modelChips.length>0&&m.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>m.jsx("span",{className:"model-chip",title:o,children:oa(o)},o))})]}),m.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&m.jsxs(m.Fragment,{children:[m.jsx(y3,{cost:s.cost}),m.jsxs("div",{className:"ss-cost-legend",children:[m.jsxs("span",{className:"ssl ssl-in",children:["input ",m.jsx("b",{children:Be(s.cost.input)})]}),m.jsxs("span",{className:"ssl ssl-out",children:["output ",m.jsx("b",{children:Be(s.cost.output)})]}),m.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",m.jsx("b",{children:Be(s.cost.cacheRead)})]}),m.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",m.jsx("b",{children:Be(s.cost.cacheWrite)})]})]})]})})]}),m.jsxs("section",{className:"ss-stats",children:[m.jsx(Ps,{label:"agents",value:s.agentCount}),m.jsx(Ps,{label:"subagents",value:s.subagentCount}),m.jsx(Ps,{label:"tool calls",value:s.toolCount}),m.jsx(Ps,{label:"prompts",value:s.promptCount}),m.jsx(Ps,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&m.jsx(Ps,{label:"errors",value:s.errCount,tone:"err"})]}),s.topTools.length>0&&m.jsxs("section",{className:"modal-section",children:[m.jsx("h4",{children:"Most-used tools"}),m.jsx("div",{className:"ss-top-tools",children:s.topTools.map(([o,l])=>m.jsxs("div",{className:"ss-tt",children:[m.jsx("span",{className:"ss-tt-name",children:o}),m.jsx("span",{className:"ss-tt-bar",children:m.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),m.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&m.jsxs("section",{className:"modal-section",children:[m.jsx("h4",{children:"Opening prompt"}),m.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Ps({label:e,value:n,tone:r}){return m.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[m.jsx("div",{className:"ss-stat-value",children:n}),m.jsx("div",{className:"ss-stat-label",children:e})]})}function y3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return m.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Be(s)} (${u.toFixed(0)}%)`},o)};return m.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function w3(e,n){const r=e.agents.get(n);if(!r)return null;const s=[];for(const N of e.agents.values())N.sessionId===n&&s.push(N);if(s.length===0)return null;const o={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},l=new Set,u=new Map;let c=0,f=0,p=0,h=0,g=0,y,w=1/0,C=0;for(const N of s){const j=dn(N.usage,N.model);o.input+=j.input,o.output+=j.output,o.cacheRead+=j.cacheRead,o.cacheWrite+=j.cacheWrite,o.total+=j.total,N.model&&l.add(N.model),N.kind==="subagent"&&g++,f+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),p+=N.usage.inputTokens+N.usage.outputTokens,c+=N.tools.length,w=Math.min(w,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const M of N.tools)u.set(M.name,(u.get(M.name)??0)+1),M.ok===!1&&h++}const _=Math.max(0,C-w),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,E=Array.from(u.entries()).sort((N,j)=>j[1]-N[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:g,toolCount:c,promptCount:f,tokensSum:p,errCount:h,topTools:E,firstPrompt:y}}function x3(e,n){const r=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.tools.length,l=dn(s.usage,s.model).total,u=s.endedAt??s.startedAt;for(const c of e.agents.values()){if(c.sessionId!==s.sessionId||c.kind==="root")continue;o+=c.tools.length,l+=dn(c.usage,c.model).total;const f=c.endedAt??c.startedAt;f>u&&(u=f)}r.push({sessionId:s.sessionId,label:s.label||s.cwdBasename||"session",cwdBasename:s.cwdBasename,state:s.state,modelId:s.model,toolCount:o,cost:l,startedAt:s.startedAt,lastActivity:u})}return r.sort((s,o)=>{if(s.state!==o.state){if(s.state==="active")return-1;if(o.state==="active")return 1}return o.lastActivity-s.lastActivity}),r}function _3(e,n,r){const s=(n??r)-e;if(s<1e3)return"<1s";const o=Math.floor(s/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60);return l<60?`${l}m`:`${Math.floor(l/60)}h ${l%60}m`}function S3({state:e,now:n,selectedIds:r,onSelect:s,onClose:o}){const l=I.useMemo(()=>x3(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return m.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[m.jsxs("div",{className:"sl-header",children:[m.jsxs("h3",{children:["Sessions ",m.jsx("span",{className:"sl-count",children:l.length})]}),u>0&&m.jsxs("span",{className:"sl-live-count",children:[u," live"]}),m.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),m.jsxs("div",{className:"sl-rows",children:[l.length===0&&m.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(c=>{const f=r.has(c.sessionId);return m.jsxs("button",{type:"button",className:`sl-row state-${c.state}${f?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[m.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),m.jsxs("div",{className:"sl-row-body",children:[m.jsxs("div",{className:"sl-row-head",children:[m.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&m.jsx("span",{className:"model-chip",title:c.modelId,children:oa(c.modelId)})]}),m.jsxs("div",{className:"sl-row-meta",children:[m.jsxs("span",{title:"tool calls",children:[m.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&m.jsx("span",{className:"sl-cost",title:"total spend",children:m.jsx("b",{children:Be(c.cost)})}),m.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:_3(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function ox(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function b3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function Ar(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function k3({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return m.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${Be(s)} (${u.toFixed(0)}%)`},o)};return m.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function E3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/3600),o=Math.floor(r%3600/60);if(s>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function N3(e,n,r,s){const o=Math.max(0,n-s),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const f=100-e,p=l>0?e/l:0,h=p>0?f/p:1/0,g={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(h<o&&h<86400){const y=Math.floor(h/3600),w=Math.floor(h%3600/60);g.runsOutIn=y>0?`${y}h ${w}m`:`${w}m`}return g}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Bi({pct:e,label:n,reset:r,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),p=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",h=c===0?"< 1%":`${c}%`,g=c===0?2:c,y=s?E3(s,u):null,w=s&&o?N3(c,s,o,u):null;return m.jsxs("div",{className:"qb-row",children:[m.jsxs("div",{className:"qb-meta",children:[m.jsxs("span",{className:"qb-label",children:[n,l&&m.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),m.jsx("span",{className:"qb-pct",style:{color:p},children:h})]}),m.jsxs("div",{className:"qb-track",children:[m.jsx("div",{className:"qb-fill",style:{width:`${g}%`,background:p,opacity:c===0?.4:1}}),w&&m.jsx("div",{className:"qb-pace-marker",style:{left:`${w.expectedPct}%`,background:w.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(w.expectedPct)}% by now`})]}),m.jsxs("div",{className:"qb-reset-row",children:[y?m.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?m.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,w&&m.jsx("span",{className:"qb-pace",style:{color:w.color},children:w.runsOutIn?`runs out in ${w.runsOutIn}`:w.label})]})]})}const C3=6e4;function j3(){const[e,n]=I.useState(null),[r,s]=I.useState(!1),o=I.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const p=await fetch(c?"/api/quota?refresh=1":"/api/quota");p.ok&&n(await p.json())}catch{}finally{c&&s(!1)}};return I.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),C3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function R3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const bN=6e4;function T3(){const[e,n]=I.useState(null),[r,s]=I.useState(!1),o=I.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const p=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");p.ok&&n(await p.json())}catch{}finally{c&&s(!1)}};return I.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),bN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function A3(){const[e,n]=I.useState(null),r=I.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return I.useEffect(()=>(s(),r.current=window.setInterval(s,bN),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function I3({state:e,now:n,onClose:r}){var q,F;const{quota:s,loading:o,refresh:l}=j3(),{data:u,loading:c,refresh:f}=T3(),{data:p}=A3(),[h,g]=I.useState(()=>Math.floor(Date.now()/1e3));I.useEffect(()=>{const R=window.setInterval(()=>g(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(R)},[]);const{byModel:y,totalCost:w,totalTokens:C,burnRate:_}=I.useMemo(()=>{const R=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let B=0,J=0,Z=0,A=0;for(const D of e.agents.values()){const G=D.model??"__unknown__",k=dn(D.usage,D.model),L=R.get(G);L?(L.inputTokens+=D.usage.inputTokens,L.outputTokens+=D.usage.outputTokens,L.cacheReadTokens+=D.usage.cacheReadTokens,L.cacheCreateTokens+=D.usage.cacheCreateTokens,L.cost.total+=k.total,L.cost.input+=k.input,L.cost.output+=k.output,L.cost.cacheRead+=k.cacheRead,L.cost.cacheWrite+=k.cacheWrite,L.agentCount++):R.set(G,{model:G,inputTokens:D.usage.inputTokens,outputTokens:D.usage.outputTokens,cacheReadTokens:D.usage.cacheReadTokens,cacheCreateTokens:D.usage.cacheCreateTokens,cost:{...k},agentCount:1}),P.total+=k.total,P.input+=k.input,P.output+=k.output,P.cacheRead+=k.cacheRead,P.cacheWrite+=k.cacheWrite,B+=D.usage.inputTokens,J+=D.usage.outputTokens,Z+=D.usage.cacheReadTokens,A+=D.usage.cacheCreateTokens}const H=Array.from(R.values()).sort((D,G)=>G.cost.total-D.cost.total);let U=0,ne=0;for(const D of e.agents.values()){if(D.state!=="active")continue;const G=dn(D.usage,D.model);U+=G.total,ne=Math.max(ne,((D.endedAt??n)-D.startedAt)/1e3)}const Q=ne>0?Bl(U,ne):null;return{byModel:H,totalCost:P,totalTokens:{in:B,out:J,cacheR:Z,cacheC:A},burnRate:Q}},[e,e.lastSeq,n]),S=I.useMemo(()=>{const R=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let B=dn(P.usage,P.model).total,J=P.usage.inputTokens,Z=P.usage.outputTokens;for(const A of e.agents.values())A.sessionId!==P.sessionId||A.kind==="root"||(B+=dn(A.usage,A.model).total,J+=A.usage.inputTokens,Z+=A.usage.outputTokens);R.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:B,inputTokens:J,outputTokens:Z})}return R.sort((P,B)=>B.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=w.total>0,E=C.in+C.out,N=o||c,j=ox(s==null?void 0:s.fetchedAt,h),M=ox(u==null?void 0:u.fetchedAt,h),O=()=>{l(),f()};return m.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[m.jsxs("div",{className:"up-header",children:[m.jsx("h3",{children:"Usage"}),_&&m.jsx("span",{className:"up-rate",children:_}),m.jsxs("div",{className:"up-header-right",children:[m.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:O,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Claude quota",j&&!o&&m.jsx("span",{className:"up-section-age",title:b3(s==null?void 0:s.source),children:j})]}),s!=null&&s.ok?m.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&m.jsx(Bi,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:h}),s.week7dPct!=null&&m.jsx(Bi,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:h}),s.weekSonnetPct!=null&&m.jsx(Bi,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:h}),s.weekOpusPct!=null&&m.jsx(Bi,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:h})]}):(s==null?void 0:s.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsxs("span",{className:"up-quota-hint",children:["Run ",m.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&m.jsx("span",{className:"up-plan-badge",children:u.planLabel}),M&&!c&&m.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:M})]}),u!=null&&u.ok?m.jsxs("div",{className:"up-quota-bars",children:[(q=u.windows)==null?void 0:q.map(R=>m.jsx(Bi,{label:R.label,pct:R.pct,reset:R.reset??void 0,resetAt:R.resetAt??void 0,windowSec:R.windowSec??void 0,limitReached:u.limitReached&&R.pct>=100,nowSec:h},R.id)),(F=u.extraWindows)==null?void 0:F.map(R=>m.jsx(Bi,{label:R.label,pct:R.pct,reset:R.reset??void 0,resetAt:R.resetAt??void 0,windowSec:R.windowSec??void 0,nowSec:h},R.id)),u.creditLimit&&m.jsx(Bi,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:h}),(p==null?void 0:p.ok)&&p.window7d&&p.window7d.sessionCount>0&&m.jsxs("div",{className:"up-quota-sub",children:[Ar(p.window7d.totalTokens)," tokens · ",p.window7d.sessionCount," session",p.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&m.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&m.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&m.jsxs("div",{className:"up-quota-sub up-reset-credits",title:"Redeem in the Codex CLI or ChatGPT — agents-deck only reports them",children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&m.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&m.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsx("span",{className:"up-quota-hint",children:R3(u.reason)})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-total",children:[m.jsx("span",{className:"up-total-value",children:Be(w.total)}),m.jsx("span",{className:"up-total-label",children:"total spend"})]}),m.jsx(k3,{cost:w}),E>0&&m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]}),C.cacheR>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache r"}),Ar(C.cacheR)]}),C.cacheC>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache c"}),Ar(C.cacheC)]})]}),y.filter(R=>R.cost.total>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By model"}),m.jsxs("table",{className:"up-table",children:[m.jsx("thead",{children:m.jsxs("tr",{children:[m.jsx("th",{children:"Model"}),m.jsx("th",{children:"Tokens"}),m.jsx("th",{children:"Cost"})]})}),m.jsx("tbody",{children:y.filter(R=>R.cost.total>0).map(R=>m.jsxs("tr",{children:[m.jsx("td",{className:"up-model-name",title:R.model,children:oa(R.model)}),m.jsx("td",{className:"up-num",children:Ar(R.inputTokens+R.outputTokens)}),m.jsx("td",{className:"up-num up-cost-val",children:Be(R.cost.total)})]},R.model))})]})]}),S.filter(R=>R.cost>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By session"}),m.jsx("div",{className:"up-sessions",children:S.filter(R=>R.cost>0).map(R=>m.jsxs("div",{className:"up-session-row",children:[m.jsx("span",{className:`sl-dot state-${R.state}`,"aria-hidden":!0}),m.jsx("span",{className:"up-session-label",children:R.label}),m.jsx("span",{className:"up-session-tokens",children:Ar(R.inputTokens+R.outputTokens)}),m.jsx("span",{className:"up-session-cost",children:Be(R.cost)})]},R.sessionId))})]})]}):E>0?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ar(C.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ar(C.out)]})]}),m.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):m.jsxs("div",{className:"up-empty",children:["No usage data yet.",m.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const ax=18,M3=1100,Os=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},P3=Array.from({length:ax},(e,n)=>{const r=-72+144*n/(ax-1)+(Os(n,1)-.5)*9,s=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Os(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+Os(n,3)*260),delay:Math.round(Os(n,4)*90),dur:760+Math.round(Os(n,5)*260),scale:.8+Os(n,6)*.45,hue:n%4,round:n%3===0}});function lx({anchor:e,lifetimeMs:n=M3}){var l;const[r,s]=I.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return I.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();s({x:c.left+c.width/2,y:c.top+c.height/2});const f=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(f)},[e,n,o]),o||!r?null:JA.createPortal(m.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:P3.map((u,c)=>m.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const O3=1500;async function bl(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const q3={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:"that share was made by a newer agents-deck",expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},od=(e,n)=>(e==null?void 0:e.detail)||(e!=null&&e.reason?q3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Vg=le.forwardRef((e,n)=>m.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[m.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),m.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Vg.displayName="SuccessMark";function L3({onClose:e,onChanged:n}){const[r,s]=I.useState("login"),[o,l]=I.useState(null),[u,c]=I.useState(""),[f,p]=I.useState(""),[h,g]=I.useState(!1),[y,w]=I.useState(null),[C,_]=I.useState(null),S=I.useRef(!1),b=I.useRef(null),E=I.useRef(null),N=I.useRef(null),j=I.useCallback(()=>{S.current&&bl({action:"login-cancel"}).catch(()=>{}),e()},[e]);I.useEffect(()=>{const R=P=>{P.key==="Escape"&&j()};return window.addEventListener("keydown",R),()=>window.removeEventListener("keydown",R)},[j]);const M=I.useCallback(async()=>{g(!0),w(null),S.current=!0;const R=await bl({action:"login"}).catch(()=>null);if(g(!1),!(R!=null&&R.ok)){w(od(R,"could not start the sign-in"));return}l(R)},[]);I.useEffect(()=>{if(!o||o.state==="done"||o.state==="failed")return;const R=window.setInterval(async()=>{try{const P=await fetch("/api/claude-accounts/login");P.ok&&l(await P.json())}catch{}},O3);return()=>window.clearInterval(R)},[o]),I.useEffect(()=>{var R;(o==null?void 0:o.state)==="awaiting_code"&&((R=b.current)==null||R.focus()),(o==null?void 0:o.state)==="done"&&n()},[o==null?void 0:o.state,n]),I.useEffect(()=>{var R;r==="paste"&&((R=E.current)==null||R.focus())},[r]);const O=I.useCallback(async()=>{var P;g(!0),w(null);const R=await bl({action:"login-code",code:u}).catch(()=>null);if(g(!1),!(R!=null&&R.ok)){w(od(R,"the code was not accepted")),R!=null&&R.state&&l(R),(P=b.current)==null||P.select();return}c(""),l(R)},[u,o]),q=I.useCallback(async()=>{g(!0),w(null);const R=await bl({action:"import",blob:f}).catch(()=>null);if(g(!1),!(R!=null&&R.ok)){w(od(R,"the import failed"));return}p(""),_({added:R.added===!0,num:R.num??null,email:R.email??null}),n()},[f,n]),F=(o==null?void 0:o.state)==="done"?o.account:null;return m.jsx("div",{className:"modal-backdrop",onClick:j,role:"presentation",children:m.jsxs("div",{className:"modal aa-modal",onClick:R=>R.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[m.jsxs("header",{className:"modal-head",children:[m.jsx("div",{className:"modal-title",children:m.jsxs("span",{className:"aa-tabs",role:"tablist",children:[m.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>s("login"),children:"Sign in"}),m.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),m.jsx("div",{className:"modal-actions",children:m.jsx("button",{type:"button",className:"btn icon-btn",onClick:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),m.jsx("section",{className:"modal-body aa-body",children:r==="login"?F?m.jsxs("div",{className:"aa-done",children:[m.jsx(Vg,{ref:N}),m.jsx(lx,{anchor:N}),m.jsx("h4",{children:F.added?`Account ${F.num} added`:"Credentials refreshed"}),m.jsxs("p",{className:"aa-note",children:[m.jsx("strong",{children:F.email}),F.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"1 · Approve in the browser"}),m.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),m.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"2 · Paste the code it gives you"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:b,type:"text",value:u,onChange:R=>c(R.target.value),onKeyDown:R=>{R.key==="Enter"&&u.trim()&&!h&&O()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),m.jsx("button",{type:"button",className:"btn primary",disabled:h||!u.trim()||o.state==="registering",onClick:O,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&m.jsx("p",{className:"aa-err",children:y??o.error}),m.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):(o==null?void 0:o.state)==="failed"||y&&S.current&&!h?m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"Sign-in failed"}),m.jsx("p",{className:"aa-err",children:y??(o==null?void 0:o.error)}),m.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),w(null),M()},children:"Try again"})]}):h||S.current?m.jsx("div",{className:"aa-step",children:m.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):m.jsxs("div",{className:"aa-step aa-primer",children:[m.jsx("h4",{children:"Sign in to Anthropic"}),m.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),m.jsx("div",{className:"aa-actions",children:m.jsx("button",{type:"button",className:"btn primary",onClick:M,disabled:h,children:"Open the sign-in page"})})]}):C?m.jsxs("div",{className:"aa-done",children:[m.jsx(Vg,{ref:N}),C.added&&m.jsx(lx,{anchor:N}),m.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),m.jsx("p",{className:"aa-note",children:C.added?m.jsxs(m.Fragment,{children:[C.email?m.jsx("strong",{children:C.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),m.jsxs("div",{className:"aa-actions",children:[m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),m.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"Paste an account shared from another deck"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:E,type:"text",value:f,onChange:R=>p(R.target.value),onKeyDown:R=>{R.key==="Enter"&&f.trim()&&!h&&q()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),m.jsx("button",{type:"button",className:"btn primary",disabled:h||!f.trim(),onClick:q,children:h?"importing…":"Import"})]}),y&&m.jsx("p",{className:"aa-err",children:y}),m.jsxs("p",{className:"aa-note",children:["Use ",m.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}const $3=15e3,D3=[70,80,85,90,95];function F3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function ux(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function z3(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function B3(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function U3({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),s=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?F3(e.resetAt,n):null;return m.jsxs("div",{className:"ap-lane",children:[m.jsx("span",{className:"ap-lane-label",children:e.label}),m.jsx("div",{className:"ap-lane-track",children:m.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:s,opacity:r===0?.4:1}})}),m.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[r,"%"]}),m.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function H3(e){const n=e.map(s=>s.num),r=n.length?Math.max(...n):0;return[...new Set([...n,r+1])].sort((s,o)=>s-o)}async function V3(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(s=>window.setTimeout(()=>s(!1),500))])}catch{n=!1}if(n)return!0;try{const s=document.createElement("textarea");s.value=e,s.setAttribute("readonly",""),s.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(s),s.select(),n=document.execCommand("copy"),s.remove()}catch{n=!1}return n}function W3(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function G3({onClose:e}){var Q,D,G;const[n,r]=I.useState(null),[s,o]=I.useState(null),[l,u]=I.useState(null),[c,f]=I.useState(null),[p,h]=I.useState(null),[g,y]=I.useState(()=>Math.floor(Date.now()/1e3)),w=I.useRef(null),[C,_]=I.useState(null),[S,b]=I.useState(!1),[E,N]=I.useState(""),[j,M]=I.useState(null),[O,q]=I.useState(null),[F,R]=I.useState(!1),P=I.useCallback(async(k=!1)=>{try{const[L,oe]=await Promise.all([fetch(`/api/claude-accounts${k?"?refresh=1":""}`),fetch("/api/cswap-auto")]);L.ok&&r(await L.json()),oe.ok&&o(await oe.json())}catch{}},[]),B=I.useCallback(async(k,L)=>{u(L),h(null);try{const $=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)})).json().catch(()=>null);return $!=null&&$.ok||h(($==null?void 0:$.detail)||($==null?void 0:$.reason)||"command failed"),$}catch{return h("server unreachable"),null}finally{u(null)}},[]),J=I.useCallback(async(k,L)=>{u(L),h(null);try{const $=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)})).json().catch(()=>null);return $!=null&&$.ok||h(($==null?void 0:$.detail)||($==null?void 0:$.reason)||"command failed"),$}catch{return h("server unreachable"),null}finally{u(null)}},[]);I.useEffect(()=>(P(!0),w.current=window.setInterval(()=>P(!1),$3),()=>{w.current!=null&&window.clearInterval(w.current)}),[P]),I.useEffect(()=>{const k=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(k)},[]);const Z=((Q=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:Q.value)??"90",A=(D=n==null?void 0:n.accounts)==null?void 0:D.find(k=>k.active),H=A!=null&&A.lanes.length?Math.max(...A.lanes.map(k=>k.pct)):null,U=H!=null&&H>=Number(Z)-15,ne=async k=>{f(k),h(null);try{const oe=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:k})})).json().catch(()=>null);oe!=null&&oe.ok||h((oe==null?void 0:oe.output)||(oe==null?void 0:oe.reason)||"switch failed"),await P(!0)}catch{h("server unreachable")}finally{f(null)}};return m.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[m.jsxs("div",{className:"ap-header",children:[m.jsx("h3",{children:"Accounts"}),m.jsxs("div",{className:"ap-header-right",children:[m.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>b(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),m.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>P(!0),title:"Reload from claude-swap",children:"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?m.jsxs(m.Fragment,{children:[(G=n.accounts)==null?void 0:G.map(k=>m.jsxs("div",{className:`ap-account${k.active?" active":""}${k.disabled?" disabled":""}`,children:[m.jsxs("div",{className:"ap-account-head",children:[m.jsx("span",{className:"ap-num",children:k.num}),k.alias&&m.jsx("span",{className:"ap-alias",children:k.alias}),m.jsx("span",{className:"ap-email",title:k.org??void 0,children:k.email}),m.jsx("button",{type:"button",className:`ap-more${C===k.num?" on":""}`,"aria-label":`Manage account ${k.num}`,"aria-expanded":C===k.num,title:"Share, rename, move, remove",onClick:()=>{_(C===k.num?null:k.num),N(k.alias??""),M(null),q(null),R(!1)},children:"⋯"}),k.active?m.jsx("span",{className:"ap-badge-active",children:"● active"}):m.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||k.disabled,onClick:()=>ne(k.num),title:k.disabled?"Held out of rotation":`Switch to ${k.alias??k.email}`,children:c===k.num?"…":"switch"})]}),k.lanes.length>0?k.lanes.map(L=>m.jsx(U3,{lane:L,nowSec:g},L.id)):m.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),m.jsxs("div",{className:"ap-meta",children:[k.error&&(()=>{const L=B3(k.error);return m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"ap-err",title:L.hint,children:L.text}),L.fixable&&m.jsx("button",{type:"button",className:"ap-fix",onClick:()=>b(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((s==null?void 0:s.enabled)||(s==null?void 0:s.external))&&!k.active&&m.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>B({action:"account",account:k.num,enabled:k.disabled},`rot-${k.num}`).then(()=>P(!0)),title:k.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:k.disabled?"held out":"in rotation"}),k.fetchedAt?m.jsxs("span",{className:`ap-age${k.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",ux(k.fetchedAt,g),z3(k.nextAt,g)]}):m.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===k.num&&m.jsxs("div",{className:"ap-manage",children:[m.jsxs("div",{className:"ap-manage-row",children:[m.jsx("span",{className:"ap-manage-label",children:"name"}),m.jsx("input",{className:"ap-manage-input",type:"text",value:E,onChange:L=>N(L.target.value),onKeyDown:L=>{L.key==="Enter"&&J({action:"alias",account:k.num,alias:E},`alias-${k.num}`).then(()=>P(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${k.num}`}),m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||E.trim()===(k.alias??""),onClick:()=>J({action:"alias",account:k.num,alias:E},`alias-${k.num}`).then(()=>P(!0)),title:"A short name to show instead of the email",children:"save"})]}),m.jsxs("div",{className:"ap-manage-row",children:[m.jsx("span",{className:"ap-manage-label",children:"slot"}),m.jsx("span",{className:"ap-field",children:m.jsx("select",{"aria-label":`Slot for account ${k.num}`,value:String(k.num),disabled:l!=null,onChange:L=>J({action:"move",account:k.num,slot:Number(L.target.value)},`move-${k.num}`).then(()=>P(!0)),children:H3(n.accounts??[]).map(L=>m.jsx("option",{value:L,children:L},L))})}),m.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),m.jsxs("div",{className:"ap-manage-row",children:[m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:"Copy this account to another agents-deck. The share carries a live login and expires in 10 minutes.",onClick:async()=>{R(!1);const L=await J({action:"share",account:k.num},`share-${k.num}`);L!=null&&L.ok&&q({num:k.num,blob:L.blob,expiresAt:L.expiresAt})},children:"share…"}),m.jsx("button",{type:"button",className:`ap-manage-btn danger${j===k.num?" armed":""}`,disabled:l!=null,title:j===k.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(j!==k.num){M(k.num),window.setTimeout(()=>M(L=>L===k.num?null:L),4e3);return}M(null),J({action:"remove",account:k.num},`rm-${k.num}`).then(()=>{_(null),P(!0)})},children:j===k.num?"confirm remove":"remove"})]}),(O==null?void 0:O.num)===k.num&&(()=>{const L=W3(O.expiresAt,g),oe=L.tone==="gone";return m.jsxs("div",{className:`ap-share${oe?" expired":""}`,children:[m.jsx("code",{className:"ap-share-blob",children:O.blob}),m.jsxs("div",{className:"ap-share-foot",children:[m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(oe){R(!1);const $=await J({action:"share",account:k.num},`share-${k.num}`);$!=null&&$.ok&&q({num:k.num,blob:$.blob,expiresAt:$.expiresAt});return}await V3(O.blob)&&(R(!0),window.setTimeout(()=>R(!1),1800))},children:oe?"make a new share":F?"copied":"copy"}),m.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",m.jsx("span",{className:`ap-share-expiry ${L.tone}`,children:L.text})]})]})]})})()]})]},k.num)),(s==null?void 0:s.ok)&&m.jsxs("div",{className:"ap-auto",children:[m.jsxs("div",{className:"ap-auto-head",children:[m.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),m.jsxs("span",{className:"ap-auto-ctl",children:[H!=null&&m.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(H),"%"]}),m.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:m.jsx("select",{"aria-label":"Switch threshold",value:Z,disabled:l!=null,onChange:k=>B({action:"setting",key:"autoswitch.threshold",value:k.target.value},"threshold").then(()=>P(!0)),children:D3.map(k=>m.jsxs("option",{value:k,children:[k,"%"]},k))})}),m.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>B({action:"enable",enabled:!s.enabled},"enable").then(()=>P(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[m.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.external&&m.jsxs("p",{className:"ap-auto-note",children:[m.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",m.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",s.enabled?" — this toggle takes over when you stop it.":"."]}),s.lastTick&&m.jsx("div",{className:"ap-auto-foot",children:m.jsxs("span",{className:"ap-auto-result",children:["checked ",ux(s.lastTick.at,g)]})})]}),p&&m.jsx("div",{className:"ap-failure",children:p}),m.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):m.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"claude-swap isn't installed."}),m.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&m.jsx("code",{className:"ap-cmd",children:n.hint}),m.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",m.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"No accounts added yet."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",m.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"Couldn't read the account store."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),S&&m.jsx(L3,{onClose:()=>b(!1),onChanged:()=>P(!0)})]})}const K3=3e4;function Y3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function X3(e){const n=e.thresholdMs??K3;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function Q3(e){return e.ctrlKey||e.metaKey||e.altKey}function cx(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function Ui(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function dx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function kl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}function Z3(e){return new Date(Date.now()-(e-1)*864e5).toISOString().slice(0,10).replace(/-/g,"")}const J3=[7,14,30,90];function eO(e){const[n,r]=I.useState(null),[s,o]=I.useState(!1),l=(u=!1)=>{o(!0);const f=`/api/ccusage?since=${Z3(e)}${u?"&refresh=1":""}`;fetch(f).then(p=>p.json()).then(r).catch(()=>r({ok:!1,error:"request failed"})).finally(()=>o(!1))};return I.useEffect(()=>{l(!1)},[e]),{data:n,loading:s,reload:()=>l(!0)}}function tO({onClose:e}){var b,E;const[n,r]=I.useState(30),[s,o]=I.useState(null),{data:l,loading:u,reload:c}=eO(n);I.useEffect(()=>{const N=j=>{j.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const f=l!=null&&l.ok?l.days??[]:[],p=I.useMemo(()=>f.reduce((N,j)=>Math.max(N,j.totalCost),0),[f]),{totalCost:h,totalTok:g,inOut:y,cacheRead:w,modelCosts:C}=I.useMemo(()=>{let N=0,j=0,M=0,O=0;const q=new Map;for(const F of f){N+=F.totalCost,j+=F.totalTokens,M+=F.inputTokens+F.outputTokens,O+=F.cacheReadTokens;for(const R of F.modelBreakdowns)q.set(R.modelName,(q.get(R.modelName)??0)+R.cost)}return{totalCost:N,totalTok:j,inOut:M,cacheRead:O,modelCosts:q}},[f]),_=I.useMemo(()=>Array.from(C.entries()).sort((N,j)=>j[1]-N[1]),[C]),S=s?f.find(N=>N.period===s)??null:null;return m.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:m.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[m.jsxs("header",{className:"uh-head",children:[m.jsxs("div",{className:"uh-titlewrap",children:[m.jsx("div",{className:"uh-title",children:"Usage history"}),m.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),m.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:J3.map(N=>m.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{r(N),o(null)},children:[N,"d"]},N))}),m.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),m.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&f.length===0?m.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?m.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):f.length===0?m.jsx("div",{className:"uh-status",children:"no usage in this range"}):m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"uh-totals",children:[m.jsx(El,{label:"total cost",val:Be(h),accent:!0}),m.jsx(El,{label:"tokens",val:Ui(g)}),m.jsx(El,{label:"input+output",val:Ui(y)}),m.jsx(El,{label:"cache reads",val:Ui(w)})]}),m.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:f.map(N=>{const j=p>0?N.totalCost/p*100:0,M=N.period===s;return m.jsxs("button",{className:`uh-bar-col${M?" sel":""}`,onClick:()=>o(M?null:N.period),title:`${N.period} · ${Be(N.totalCost)}`,style:{flexBasis:`${100/f.length}%`},children:[m.jsx("div",{className:"uh-bar",style:{height:`${Math.max(j,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((O,q)=>q.cost-O.cost).map(O=>{const q=N.totalCost>0?O.cost/N.totalCost*100:0;return m.jsx("div",{className:"uh-bar-seg",style:{height:`${q}%`,background:kl(O.modelName)}},O.modelName)})}),m.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),m.jsx("div",{className:"uh-legend",children:_.map(([N,j])=>m.jsxs("span",{className:"uh-legend-item",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:kl(N)}}),dx(N)," ",m.jsx("span",{className:"uh-legend-cost",children:Be(j)})]},N))}),S&&m.jsxs("div",{className:"uh-detail",children:[m.jsxs("div",{className:"uh-detail-head",children:[m.jsx("span",{className:"uh-detail-date",children:S.period}),m.jsx("span",{className:"uh-detail-cost",children:Be(S.totalCost)}),(E=(b=S.metadata)==null?void 0:b.agents)!=null&&E.length?m.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),m.jsxs("div",{className:"uh-detail-mini",children:[m.jsx(Nl,{label:"input",val:Ui(S.inputTokens)}),m.jsx(Nl,{label:"output",val:Ui(S.outputTokens)}),m.jsx(Nl,{label:"cache write",val:Ui(S.cacheCreationTokens)}),m.jsx(Nl,{label:"cache read",val:Ui(S.cacheReadTokens)})]}),m.jsx("div",{className:"uh-detail-models",children:S.modelBreakdowns.slice().sort((N,j)=>j.cost-N.cost).map(N=>{const j=S.totalCost>0?N.cost/S.totalCost*100:0;return m.jsxs("div",{className:"uh-model-row",children:[m.jsxs("span",{className:"uh-model-name",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:kl(N.modelName)}}),dx(N.modelName)]}),m.jsx("span",{className:"uh-model-bar",children:m.jsx("span",{className:"uh-model-bar-fill",style:{width:`${j}%`,background:kl(N.modelName)}})}),m.jsx("span",{className:"uh-model-cost",children:Be(N.cost)})]},N.modelName)})})]})]})]})})}function El({label:e,val:n,accent:r}){return m.jsxs("div",{className:"uh-stat",children:[m.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),m.jsx("span",{className:"uh-stat-label",children:e})]})}function Nl({label:e,val:n}){return m.jsxs("div",{className:"uh-ministat",children:[m.jsx("span",{className:"uh-ministat-val",children:n}),m.jsx("span",{className:"uh-ministat-label",children:e})]})}function gv(e){throw new 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 ad,fx;function nO(){if(fx)return ad;fx=1;function e(){this.__data__=[],this.size=0}return ad=e,ad}var ld,hx;function Ws(){if(hx)return ld;hx=1;function e(n,r){return n===r||n!==n&&r!==r}return ld=e,ld}var ud,px;function Ql(){if(px)return ud;px=1;var e=Ws();function n(r,s){for(var o=r.length;o--;)if(e(r[o][0],s))return o;return-1}return ud=n,ud}var cd,mx;function rO(){if(mx)return cd;mx=1;var e=Ql(),n=Array.prototype,r=n.splice;function s(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return cd=s,cd}var dd,gx;function iO(){if(gx)return dd;gx=1;var e=Ql();function n(r){var s=this.__data__,o=e(s,r);return o<0?void 0:s[o][1]}return dd=n,dd}var fd,vx;function sO(){if(vx)return fd;vx=1;var e=Ql();function n(r){return e(this.__data__,r)>-1}return fd=n,fd}var hd,yx;function oO(){if(yx)return hd;yx=1;var e=Ql();function n(r,s){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,s])):o[l][1]=s,this}return hd=n,hd}var pd,wx;function Zl(){if(wx)return pd;wx=1;var e=nO(),n=rO(),r=iO(),s=sO(),o=oO();function l(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,pd=l,pd}var md,xx;function aO(){if(xx)return md;xx=1;var e=Zl();function n(){this.__data__=new e,this.size=0}return md=n,md}var gd,_x;function lO(){if(_x)return gd;_x=1;function e(n){var r=this.__data__,s=r.delete(n);return this.size=r.size,s}return gd=e,gd}var vd,Sx;function uO(){if(Sx)return vd;Sx=1;function e(n){return this.__data__.get(n)}return vd=e,vd}var yd,bx;function cO(){if(bx)return yd;bx=1;function e(n){return this.__data__.has(n)}return yd=e,yd}var wd,kx;function kN(){if(kx)return wd;kx=1;var e=typeof dl=="object"&&dl&&dl.Object===Object&&dl;return wd=e,wd}var xd,Ex;function Jn(){if(Ex)return xd;Ex=1;var e=kN(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return xd=r,xd}var _d,Nx;function Gs(){if(Nx)return _d;Nx=1;var e=Jn(),n=e.Symbol;return _d=n,_d}var Sd,Cx;function dO(){if(Cx)return Sd;Cx=1;var e=Gs(),n=Object.prototype,r=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),f=u[o];try{u[o]=void 0;var p=!0}catch{}var h=s.call(u);return p&&(c?u[o]=f:delete u[o]),h}return Sd=l,Sd}var bd,jx;function fO(){if(jx)return bd;jx=1;var e=Object.prototype,n=e.toString;function r(s){return n.call(s)}return bd=r,bd}var kd,Rx;function Ji(){if(Rx)return kd;Rx=1;var e=Gs(),n=dO(),r=fO(),s="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:s:l&&l in Object(c)?n(c):r(c)}return kd=u,kd}var Ed,Tx;function On(){if(Tx)return Ed;Tx=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return Ed=e,Ed}var Nd,Ax;function aa(){if(Ax)return Nd;Ax=1;var e=Ji(),n=On(),r="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var f=e(c);return f==s||f==o||f==r||f==l}return Nd=u,Nd}var Cd,Ix;function hO(){if(Ix)return Cd;Ix=1;var e=Jn(),n=e["__core-js_shared__"];return Cd=n,Cd}var jd,Mx;function pO(){if(Mx)return jd;Mx=1;var e=hO(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function r(s){return!!n&&n in s}return jd=r,jd}var Rd,Px;function EN(){if(Px)return Rd;Px=1;var e=Function.prototype,n=e.toString;function r(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Rd=r,Rd}var Td,Ox;function mO(){if(Ox)return Td;Ox=1;var e=aa(),n=pO(),r=On(),s=EN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,f=u.toString,p=c.hasOwnProperty,h=RegExp("^"+f.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g(y){if(!r(y)||n(y))return!1;var w=e(y)?h:l;return w.test(s(y))}return Td=g,Td}var Ad,qx;function gO(){if(qx)return Ad;qx=1;function e(n,r){return n==null?void 0:n[r]}return Ad=e,Ad}var Id,Lx;function es(){if(Lx)return Id;Lx=1;var e=mO(),n=gO();function r(s,o){var l=n(s,o);return e(l)?l:void 0}return Id=r,Id}var Md,$x;function vv(){if($x)return Md;$x=1;var e=es(),n=Jn(),r=e(n,"Map");return Md=r,Md}var Pd,Dx;function Jl(){if(Dx)return Pd;Dx=1;var e=es(),n=e(Object,"create");return Pd=n,Pd}var Od,Fx;function vO(){if(Fx)return Od;Fx=1;var e=Jl();function n(){this.__data__=e?e(null):{},this.size=0}return Od=n,Od}var qd,zx;function yO(){if(zx)return qd;zx=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return qd=e,qd}var Ld,Bx;function wO(){if(Bx)return Ld;Bx=1;var e=Jl(),n="__lodash_hash_undefined__",r=Object.prototype,s=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return s.call(u,l)?u[l]:void 0}return Ld=o,Ld}var $d,Ux;function xO(){if(Ux)return $d;Ux=1;var e=Jl(),n=Object.prototype,r=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return $d=s,$d}var Dd,Hx;function _O(){if(Hx)return Dd;Hx=1;var e=Jl(),n="__lodash_hash_undefined__";function r(s,o){var l=this.__data__;return this.size+=this.has(s)?0:1,l[s]=e&&o===void 0?n:o,this}return Dd=r,Dd}var Fd,Vx;function SO(){if(Vx)return Fd;Vx=1;var e=vO(),n=yO(),r=wO(),s=xO(),o=_O();function l(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Fd=l,Fd}var zd,Wx;function bO(){if(Wx)return zd;Wx=1;var e=SO(),n=Zl(),r=vv();function s(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return zd=s,zd}var Bd,Gx;function kO(){if(Gx)return Bd;Gx=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Bd=e,Bd}var Ud,Kx;function eu(){if(Kx)return Ud;Kx=1;var e=kO();function n(r,s){var o=r.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Ud=n,Ud}var Hd,Yx;function EO(){if(Yx)return Hd;Yx=1;var e=eu();function n(r){var s=e(this,r).delete(r);return this.size-=s?1:0,s}return Hd=n,Hd}var Vd,Xx;function NO(){if(Xx)return Vd;Xx=1;var e=eu();function n(r){return e(this,r).get(r)}return Vd=n,Vd}var Wd,Qx;function CO(){if(Qx)return Wd;Qx=1;var e=eu();function n(r){return e(this,r).has(r)}return Wd=n,Wd}var Gd,Zx;function jO(){if(Zx)return Gd;Zx=1;var e=eu();function n(r,s){var o=e(this,r),l=o.size;return o.set(r,s),this.size+=o.size==l?0:1,this}return Gd=n,Gd}var Kd,Jx;function yv(){if(Jx)return Kd;Jx=1;var e=bO(),n=EO(),r=NO(),s=CO(),o=jO();function l(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Kd=l,Kd}var Yd,e1;function RO(){if(e1)return Yd;e1=1;var e=Zl(),n=vv(),r=yv(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var f=c.__data__;if(!n||f.length<s-1)return f.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(f)}return c.set(l,u),this.size=c.size,this}return Yd=o,Yd}var Xd,t1;function tu(){if(t1)return Xd;t1=1;var e=Zl(),n=aO(),r=lO(),s=uO(),o=cO(),l=RO();function u(c){var f=this.__data__=new e(c);this.size=f.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,Xd=u,Xd}var Qd,n1;function wv(){if(n1)return Qd;n1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o&&r(n[s],s,n)!==!1;);return n}return Qd=e,Qd}var Zd,r1;function NN(){if(r1)return Zd;r1=1;var e=es(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return Zd=n,Zd}var Jd,i1;function nu(){if(i1)return Jd;i1=1;var e=NN();function n(r,s,o){s=="__proto__"&&e?e(r,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[s]=o}return Jd=n,Jd}var ef,s1;function ru(){if(s1)return ef;s1=1;var e=nu(),n=Ws(),r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c){var f=l[u];(!(s.call(l,u)&&n(f,c))||c===void 0&&!(u in l))&&e(l,u,c)}return ef=o,ef}var tf,o1;function la(){if(o1)return tf;o1=1;var e=ru(),n=nu();function r(s,o,l,u){var c=!l;l||(l={});for(var f=-1,p=o.length;++f<p;){var h=o[f],g=u?u(l[h],s[h],h,l,s):void 0;g===void 0&&(g=s[h]),c?n(l,h,g):e(l,h,g)}return l}return tf=r,tf}var nf,a1;function TO(){if(a1)return nf;a1=1;function e(n,r){for(var s=-1,o=Array(n);++s<n;)o[s]=r(s);return o}return nf=e,nf}var rf,l1;function fr(){if(l1)return rf;l1=1;function e(n){return n!=null&&typeof n=="object"}return rf=e,rf}var sf,u1;function AO(){if(u1)return sf;u1=1;var e=Ji(),n=fr(),r="[object Arguments]";function s(o){return n(o)&&e(o)==r}return sf=s,sf}var of,c1;function ua(){if(c1)return of;c1=1;var e=AO(),n=fr(),r=Object.prototype,s=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&s.call(u,"callee")&&!o.call(u,"callee")};return of=l,of}var af,d1;function St(){if(d1)return af;d1=1;var e=Array.isArray;return af=e,af}var Uo={exports:{}},lf,f1;function IO(){if(f1)return lf;f1=1;function e(){return!1}return lf=e,lf}Uo.exports;var h1;function Ks(){return h1||(h1=1,(function(e,n){var r=Jn(),s=IO(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,f=c?c.isBuffer:void 0,p=f||s;e.exports=p})(Uo,Uo.exports)),Uo.exports}var uf,p1;function iu(){if(p1)return uf;p1=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(s,o){var l=typeof s;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(s))&&s>-1&&s%1==0&&s<o}return uf=r,uf}var cf,m1;function xv(){if(m1)return cf;m1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return cf=n,cf}var df,g1;function MO(){if(g1)return df;g1=1;var e=Ji(),n=xv(),r=fr(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",f="[object Function]",p="[object Map]",h="[object Number]",g="[object Object]",y="[object RegExp]",w="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",E="[object Float32Array]",N="[object Float64Array]",j="[object Int8Array]",M="[object Int16Array]",O="[object Int32Array]",q="[object Uint8Array]",F="[object Uint8ClampedArray]",R="[object Uint16Array]",P="[object Uint32Array]",B={};B[E]=B[N]=B[j]=B[M]=B[O]=B[q]=B[F]=B[R]=B[P]=!0,B[s]=B[o]=B[S]=B[l]=B[b]=B[u]=B[c]=B[f]=B[p]=B[h]=B[g]=B[y]=B[w]=B[C]=B[_]=!1;function J(Z){return r(Z)&&n(Z.length)&&!!B[e(Z)]}return df=J,df}var ff,v1;function su(){if(v1)return ff;v1=1;function e(n){return function(r){return n(r)}}return ff=e,ff}var Ho={exports:{}};Ho.exports;var y1;function _v(){return y1||(y1=1,(function(e,n){var r=kN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&r.process,c=(function(){try{var f=o&&o.require&&o.require("util").types;return f||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Ho,Ho.exports)),Ho.exports}var hf,w1;function ca(){if(w1)return hf;w1=1;var e=MO(),n=su(),r=_v(),s=r&&r.isTypedArray,o=s?n(s):e;return hf=o,hf}var pf,x1;function CN(){if(x1)return pf;x1=1;var e=TO(),n=ua(),r=St(),s=Ks(),o=iu(),l=ca(),u=Object.prototype,c=u.hasOwnProperty;function f(p,h){var g=r(p),y=!g&&n(p),w=!g&&!y&&s(p),C=!g&&!y&&!w&&l(p),_=g||y||w||C,S=_?e(p.length,String):[],b=S.length;for(var E in p)(h||c.call(p,E))&&!(_&&(E=="length"||w&&(E=="offset"||E=="parent")||C&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||o(E,b)))&&S.push(E);return S}return pf=f,pf}var mf,_1;function ou(){if(_1)return mf;_1=1;var e=Object.prototype;function n(r){var s=r&&r.constructor,o=typeof s=="function"&&s.prototype||e;return r===o}return mf=n,mf}var gf,S1;function jN(){if(S1)return gf;S1=1;function e(n,r){return function(s){return n(r(s))}}return gf=e,gf}var vf,b1;function PO(){if(b1)return vf;b1=1;var e=jN(),n=e(Object.keys,Object);return vf=n,vf}var yf,k1;function Sv(){if(k1)return yf;k1=1;var e=ou(),n=PO(),r=Object.prototype,s=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))s.call(l,c)&&c!="constructor"&&u.push(c);return u}return yf=o,yf}var wf,E1;function qr(){if(E1)return wf;E1=1;var e=aa(),n=xv();function r(s){return s!=null&&n(s.length)&&!e(s)}return wf=r,wf}var xf,N1;function yi(){if(N1)return xf;N1=1;var e=CN(),n=Sv(),r=qr();function s(o){return r(o)?e(o):n(o)}return xf=s,xf}var _f,C1;function OO(){if(C1)return _f;C1=1;var e=la(),n=yi();function r(s,o){return s&&e(o,n(o),s)}return _f=r,_f}var Sf,j1;function qO(){if(j1)return Sf;j1=1;function e(n){var r=[];if(n!=null)for(var s in Object(n))r.push(s);return r}return Sf=e,Sf}var bf,R1;function LO(){if(R1)return bf;R1=1;var e=On(),n=ou(),r=qO(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),f=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||f.push(p);return f}return bf=l,bf}var kf,T1;function ts(){if(T1)return kf;T1=1;var e=CN(),n=LO(),r=qr();function s(o){return r(o)?e(o,!0):n(o)}return kf=s,kf}var Ef,A1;function $O(){if(A1)return Ef;A1=1;var e=la(),n=ts();function r(s,o){return s&&e(o,n(o),s)}return Ef=r,Ef}var Vo={exports:{}};Vo.exports;var I1;function RN(){return I1||(I1=1,(function(e,n){var r=Jn(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function f(p,h){if(h)return p.slice();var g=p.length,y=c?c(g):new p.constructor(g);return p.copy(y),y}e.exports=f})(Vo,Vo.exports)),Vo.exports}var Nf,M1;function TN(){if(M1)return Nf;M1=1;function e(n,r){var s=-1,o=n.length;for(r||(r=Array(o));++s<o;)r[s]=n[s];return r}return Nf=e,Nf}var Cf,P1;function AN(){if(P1)return Cf;P1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];r(c,s,n)&&(u[l++]=c)}return u}return Cf=e,Cf}var jf,O1;function IN(){if(O1)return jf;O1=1;function e(){return[]}return jf=e,jf}var Rf,q1;function bv(){if(q1)return Rf;q1=1;var e=AN(),n=IN(),r=Object.prototype,s=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return s.call(u,c)}))}:n;return Rf=l,Rf}var Tf,L1;function DO(){if(L1)return Tf;L1=1;var e=la(),n=bv();function r(s,o){return e(s,n(s),o)}return Tf=r,Tf}var Af,$1;function kv(){if($1)return Af;$1=1;function e(n,r){for(var s=-1,o=r.length,l=n.length;++s<o;)n[l+s]=r[s];return n}return Af=e,Af}var If,D1;function au(){if(D1)return If;D1=1;var e=jN(),n=e(Object.getPrototypeOf,Object);return If=n,If}var Mf,F1;function MN(){if(F1)return Mf;F1=1;var e=kv(),n=au(),r=bv(),s=IN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:s;return Mf=l,Mf}var Pf,z1;function FO(){if(z1)return Pf;z1=1;var e=la(),n=MN();function r(s,o){return e(s,n(s),o)}return Pf=r,Pf}var Of,B1;function PN(){if(B1)return Of;B1=1;var e=kv(),n=St();function r(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return Of=r,Of}var qf,U1;function ON(){if(U1)return qf;U1=1;var e=PN(),n=bv(),r=yi();function s(o){return e(o,r,n)}return qf=s,qf}var Lf,H1;function zO(){if(H1)return Lf;H1=1;var e=PN(),n=MN(),r=ts();function s(o){return e(o,r,n)}return Lf=s,Lf}var $f,V1;function BO(){if(V1)return $f;V1=1;var e=es(),n=Jn(),r=e(n,"DataView");return $f=r,$f}var Df,W1;function UO(){if(W1)return Df;W1=1;var e=es(),n=Jn(),r=e(n,"Promise");return Df=r,Df}var Ff,G1;function qN(){if(G1)return Ff;G1=1;var e=es(),n=Jn(),r=e(n,"Set");return Ff=r,Ff}var zf,K1;function HO(){if(K1)return zf;K1=1;var e=es(),n=Jn(),r=e(n,"WeakMap");return zf=r,zf}var Bf,Y1;function Ys(){if(Y1)return Bf;Y1=1;var e=BO(),n=vv(),r=UO(),s=qN(),o=HO(),l=Ji(),u=EN(),c="[object Map]",f="[object Object]",p="[object Promise]",h="[object Set]",g="[object WeakMap]",y="[object DataView]",w=u(e),C=u(n),_=u(r),S=u(s),b=u(o),E=l;return(e&&E(new e(new ArrayBuffer(1)))!=y||n&&E(new n)!=c||r&&E(r.resolve())!=p||s&&E(new s)!=h||o&&E(new o)!=g)&&(E=function(N){var j=l(N),M=j==f?N.constructor:void 0,O=M?u(M):"";if(O)switch(O){case w:return y;case C:return c;case _:return p;case S:return h;case b:return g}return j}),Bf=E,Bf}var Uf,X1;function VO(){if(X1)return Uf;X1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s){var o=s.length,l=new s.constructor(o);return o&&typeof s[0]=="string"&&n.call(s,"index")&&(l.index=s.index,l.input=s.input),l}return Uf=r,Uf}var Hf,Q1;function LN(){if(Q1)return Hf;Q1=1;var e=Jn(),n=e.Uint8Array;return Hf=n,Hf}var Vf,Z1;function Ev(){if(Z1)return Vf;Z1=1;var e=LN();function n(r){var s=new r.constructor(r.byteLength);return new e(s).set(new e(r)),s}return Vf=n,Vf}var Wf,J1;function WO(){if(J1)return Wf;J1=1;var e=Ev();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Wf=n,Wf}var Gf,e_;function GO(){if(e_)return Gf;e_=1;var e=/\w*$/;function n(r){var s=new r.constructor(r.source,e.exec(r));return s.lastIndex=r.lastIndex,s}return Gf=n,Gf}var Kf,t_;function KO(){if(t_)return Kf;t_=1;var e=Gs(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function s(o){return r?Object(r.call(o)):{}}return Kf=s,Kf}var Yf,n_;function $N(){if(n_)return Yf;n_=1;var e=Ev();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Yf=n,Yf}var Xf,r_;function YO(){if(r_)return Xf;r_=1;var e=Ev(),n=WO(),r=GO(),s=KO(),o=$N(),l="[object Boolean]",u="[object Date]",c="[object Map]",f="[object Number]",p="[object RegExp]",h="[object Set]",g="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",E="[object Int16Array]",N="[object Int32Array]",j="[object Uint8Array]",M="[object Uint8ClampedArray]",O="[object Uint16Array]",q="[object Uint32Array]";function F(R,P,B){var J=R.constructor;switch(P){case w:return e(R);case l:case u:return new J(+R);case C:return n(R,B);case _:case S:case b:case E:case N:case j:case M:case O:case q:return o(R,B);case c:return new J;case f:case g:return new J(R);case p:return r(R);case h:return new J;case y:return s(R)}}return Xf=F,Xf}var Qf,i_;function DN(){if(i_)return Qf;i_=1;var e=On(),n=Object.create,r=(function(){function s(){}return function(o){if(!e(o))return{};if(n)return n(o);s.prototype=o;var l=new s;return s.prototype=void 0,l}})();return Qf=r,Qf}var Zf,s_;function FN(){if(s_)return Zf;s_=1;var e=DN(),n=au(),r=ou();function s(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return Zf=s,Zf}var Jf,o_;function XO(){if(o_)return Jf;o_=1;var e=Ys(),n=fr(),r="[object Map]";function s(o){return n(o)&&e(o)==r}return Jf=s,Jf}var eh,a_;function QO(){if(a_)return eh;a_=1;var e=XO(),n=su(),r=_v(),s=r&&r.isMap,o=s?n(s):e;return eh=o,eh}var th,l_;function ZO(){if(l_)return th;l_=1;var e=Ys(),n=fr(),r="[object Set]";function s(o){return n(o)&&e(o)==r}return th=s,th}var nh,u_;function JO(){if(u_)return nh;u_=1;var e=ZO(),n=su(),r=_v(),s=r&&r.isSet,o=s?n(s):e;return nh=o,nh}var rh,c_;function zN(){if(c_)return rh;c_=1;var e=tu(),n=wv(),r=ru(),s=OO(),o=$O(),l=RN(),u=TN(),c=DO(),f=FO(),p=ON(),h=zO(),g=Ys(),y=VO(),w=YO(),C=FN(),_=St(),S=Ks(),b=QO(),E=On(),N=JO(),j=yi(),M=ts(),O=1,q=2,F=4,R="[object Arguments]",P="[object Array]",B="[object Boolean]",J="[object Date]",Z="[object Error]",A="[object Function]",H="[object GeneratorFunction]",U="[object Map]",ne="[object Number]",Q="[object Object]",D="[object RegExp]",G="[object Set]",k="[object String]",L="[object Symbol]",oe="[object WeakMap]",$="[object ArrayBuffer]",Y="[object DataView]",ee="[object Float32Array]",se="[object Float64Array]",ae="[object Int8Array]",pe="[object Int16Array]",ge="[object Int32Array]",Ae="[object Uint8Array]",Oe="[object Uint8ClampedArray]",Me="[object Uint16Array]",Pe="[object Uint32Array]",ke={};ke[R]=ke[P]=ke[$]=ke[Y]=ke[B]=ke[J]=ke[ee]=ke[se]=ke[ae]=ke[pe]=ke[ge]=ke[U]=ke[ne]=ke[Q]=ke[D]=ke[G]=ke[k]=ke[L]=ke[Ae]=ke[Oe]=ke[Me]=ke[Pe]=!0,ke[Z]=ke[A]=ke[oe]=!1;function We(ve,ye,Ge,ut,it,Ke){var $e,Qe=ye&O,bt=ye&q,ct=ye&F;if(Ge&&($e=it?Ge(ve,ut,it,Ke):Ge(ve)),$e!==void 0)return $e;if(!E(ve))return ve;var pt=_(ve);if(pt){if($e=y(ve),!Qe)return u(ve,$e)}else{var mt=g(ve),kt=mt==A||mt==H;if(S(ve))return l(ve,Qe);if(mt==Q||mt==R||kt&&!it){if($e=bt||kt?{}:C(ve),!Qe)return bt?f(ve,o($e,ve)):c(ve,s($e,ve))}else{if(!ke[mt])return it?ve:{};$e=w(ve,mt,Qe)}}Ke||(Ke=new e);var He=Ke.get(ve);if(He)return He;Ke.set(ve,$e),N(ve)?ve.forEach(function(gt){$e.add(We(gt,ye,Ge,gt,ve,Ke))}):b(ve)&&ve.forEach(function(gt,yt){$e.set(yt,We(gt,ye,Ge,yt,ve,Ke))});var Je=ct?bt?h:p:bt?M:j,dt=pt?void 0:Je(ve);return n(dt||ve,function(gt,yt){dt&&(yt=gt,gt=ve[yt]),r($e,yt,We(gt,ye,Ge,yt,ve,Ke))}),$e}return rh=We,rh}var ih,d_;function eq(){if(d_)return ih;d_=1;var e=zN(),n=4;function r(s){return e(s,n)}return ih=r,ih}var sh,f_;function Nv(){if(f_)return sh;f_=1;function e(n){return function(){return n}}return sh=e,sh}var oh,h_;function tq(){if(h_)return oh;h_=1;function e(n){return function(r,s,o){for(var l=-1,u=Object(r),c=o(r),f=c.length;f--;){var p=c[n?f:++l];if(s(u[p],p,u)===!1)break}return r}}return oh=e,oh}var ah,p_;function Cv(){if(p_)return ah;p_=1;var e=tq(),n=e();return ah=n,ah}var lh,m_;function jv(){if(m_)return lh;m_=1;var e=Cv(),n=yi();function r(s,o){return s&&e(s,o,n)}return lh=r,lh}var uh,g_;function nq(){if(g_)return uh;g_=1;var e=qr();function n(r,s){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=s?u:-1,f=Object(o);(s?c--:++c<u)&&l(f[c],c,f)!==!1;);return o}}return uh=n,uh}var ch,v_;function lu(){if(v_)return ch;v_=1;var e=jv(),n=nq(),r=n(e);return ch=r,ch}var dh,y_;function ns(){if(y_)return dh;y_=1;function e(n){return n}return dh=e,dh}var fh,w_;function BN(){if(w_)return fh;w_=1;var e=ns();function n(r){return typeof r=="function"?r:e}return fh=n,fh}var hh,x_;function UN(){if(x_)return hh;x_=1;var e=wv(),n=lu(),r=BN(),s=St();function o(l,u){var c=s(l)?e:n;return c(l,r(u))}return hh=o,hh}var ph,__;function HN(){return __||(__=1,ph=UN()),ph}var mh,S_;function rq(){if(S_)return mh;S_=1;var e=lu();function n(r,s){var o=[];return e(r,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return mh=n,mh}var gh,b_;function iq(){if(b_)return gh;b_=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return gh=n,gh}var vh,k_;function sq(){if(k_)return vh;k_=1;function e(n){return this.__data__.has(n)}return vh=e,vh}var yh,E_;function VN(){if(E_)return yh;E_=1;var e=yv(),n=iq(),r=sq();function s(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return s.prototype.add=s.prototype.push=n,s.prototype.has=r,yh=s,yh}var wh,N_;function oq(){if(N_)return wh;N_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o;)if(r(n[s],s,n))return!0;return!1}return wh=e,wh}var xh,C_;function WN(){if(C_)return xh;C_=1;function e(n,r){return n.has(r)}return xh=e,xh}var _h,j_;function GN(){if(j_)return _h;j_=1;var e=VN(),n=oq(),r=WN(),s=1,o=2;function l(u,c,f,p,h,g){var y=f&s,w=u.length,C=c.length;if(w!=C&&!(y&&C>w))return!1;var _=g.get(u),S=g.get(c);if(_&&S)return _==c&&S==u;var b=-1,E=!0,N=f&o?new e:void 0;for(g.set(u,c),g.set(c,u);++b<w;){var j=u[b],M=c[b];if(p)var O=y?p(M,j,b,c,u,g):p(j,M,b,u,c,g);if(O!==void 0){if(O)continue;E=!1;break}if(N){if(!n(c,function(q,F){if(!r(N,F)&&(j===q||h(j,q,f,p,g)))return N.push(F)})){E=!1;break}}else if(!(j===M||h(j,M,f,p,g))){E=!1;break}}return g.delete(u),g.delete(c),E}return _h=l,_h}var Sh,R_;function aq(){if(R_)return Sh;R_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o,l){s[++r]=[l,o]}),s}return Sh=e,Sh}var bh,T_;function Rv(){if(T_)return bh;T_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o){s[++r]=o}),s}return bh=e,bh}var kh,A_;function lq(){if(A_)return kh;A_=1;var e=Gs(),n=LN(),r=Ws(),s=GN(),o=aq(),l=Rv(),u=1,c=2,f="[object Boolean]",p="[object Date]",h="[object Error]",g="[object Map]",y="[object Number]",w="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",E="[object DataView]",N=e?e.prototype:void 0,j=N?N.valueOf:void 0;function M(O,q,F,R,P,B,J){switch(F){case E:if(O.byteLength!=q.byteLength||O.byteOffset!=q.byteOffset)return!1;O=O.buffer,q=q.buffer;case b:return!(O.byteLength!=q.byteLength||!B(new n(O),new n(q)));case f:case p:case y:return r(+O,+q);case h:return O.name==q.name&&O.message==q.message;case w:case _:return O==q+"";case g:var Z=o;case C:var A=R&u;if(Z||(Z=l),O.size!=q.size&&!A)return!1;var H=J.get(O);if(H)return H==q;R|=c,J.set(O,q);var U=s(Z(O),Z(q),R,P,B,J);return J.delete(O),U;case S:if(j)return j.call(O)==j.call(q)}return!1}return kh=M,kh}var Eh,I_;function uq(){if(I_)return Eh;I_=1;var e=ON(),n=1,r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c,f,p,h){var g=c&n,y=e(l),w=y.length,C=e(u),_=C.length;if(w!=_&&!g)return!1;for(var S=w;S--;){var b=y[S];if(!(g?b in u:s.call(u,b)))return!1}var E=h.get(l),N=h.get(u);if(E&&N)return E==u&&N==l;var j=!0;h.set(l,u),h.set(u,l);for(var M=g;++S<w;){b=y[S];var O=l[b],q=u[b];if(f)var F=g?f(q,O,b,u,l,h):f(O,q,b,l,u,h);if(!(F===void 0?O===q||p(O,q,c,f,h):F)){j=!1;break}M||(M=b=="constructor")}if(j&&!M){var R=l.constructor,P=u.constructor;R!=P&&"constructor"in l&&"constructor"in u&&!(typeof R=="function"&&R instanceof R&&typeof P=="function"&&P instanceof P)&&(j=!1)}return h.delete(l),h.delete(u),j}return Eh=o,Eh}var Nh,M_;function cq(){if(M_)return Nh;M_=1;var e=tu(),n=GN(),r=lq(),s=uq(),o=Ys(),l=St(),u=Ks(),c=ca(),f=1,p="[object Arguments]",h="[object Array]",g="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function C(_,S,b,E,N,j){var M=l(_),O=l(S),q=M?h:o(_),F=O?h:o(S);q=q==p?g:q,F=F==p?g:F;var R=q==g,P=F==g,B=q==F;if(B&&u(_)){if(!u(S))return!1;M=!0,R=!1}if(B&&!R)return j||(j=new e),M||c(_)?n(_,S,b,E,N,j):r(_,S,q,b,E,N,j);if(!(b&f)){var J=R&&w.call(_,"__wrapped__"),Z=P&&w.call(S,"__wrapped__");if(J||Z){var A=J?_.value():_,H=Z?S.value():S;return j||(j=new e),N(A,H,b,E,j)}}return B?(j||(j=new e),s(_,S,b,E,N,j)):!1}return Nh=C,Nh}var Ch,P_;function KN(){if(P_)return Ch;P_=1;var e=cq(),n=fr();function r(s,o,l,u,c){return s===o?!0:s==null||o==null||!n(s)&&!n(o)?s!==s&&o!==o:e(s,o,l,u,r,c)}return Ch=r,Ch}var jh,O_;function dq(){if(O_)return jh;O_=1;var e=tu(),n=KN(),r=1,s=2;function o(l,u,c,f){var p=c.length,h=p,g=!f;if(l==null)return!h;for(l=Object(l);p--;){var y=c[p];if(g&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<h;){y=c[p];var w=y[0],C=l[w],_=y[1];if(g&&y[2]){if(C===void 0&&!(w in l))return!1}else{var S=new e;if(f)var b=f(C,_,w,l,u,S);if(!(b===void 0?n(_,C,r|s,f,S):b))return!1}}return!0}return jh=o,jh}var Rh,q_;function YN(){if(q_)return Rh;q_=1;var e=On();function n(r){return r===r&&!e(r)}return Rh=n,Rh}var Th,L_;function fq(){if(L_)return Th;L_=1;var e=YN(),n=yi();function r(s){for(var o=n(s),l=o.length;l--;){var u=o[l],c=s[u];o[l]=[u,c,e(c)]}return o}return Th=r,Th}var Ah,$_;function XN(){if($_)return Ah;$_=1;function e(n,r){return function(s){return s==null?!1:s[n]===r&&(r!==void 0||n in Object(s))}}return Ah=e,Ah}var Ih,D_;function hq(){if(D_)return Ih;D_=1;var e=dq(),n=fq(),r=XN();function s(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Ih=s,Ih}var Mh,F_;function Xs(){if(F_)return Mh;F_=1;var e=Ji(),n=fr(),r="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==r}return Mh=s,Mh}var Ph,z_;function Tv(){if(z_)return Ph;z_=1;var e=St(),n=Xs(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:s.test(l)||!r.test(l)||u!=null&&l in Object(u)}return Ph=o,Ph}var Oh,B_;function pq(){if(B_)return Oh;B_=1;var e=yv(),n="Expected a function";function r(s,o){if(typeof s!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],f=l.cache;if(f.has(c))return f.get(c);var p=s.apply(this,u);return l.cache=f.set(c,p)||f,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,Oh=r,Oh}var qh,U_;function mq(){if(U_)return qh;U_=1;var e=pq(),n=500;function r(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return qh=r,qh}var Lh,H_;function gq(){if(H_)return Lh;H_=1;var e=mq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,f,p){l.push(f?p.replace(r,"$1"):c||u)}),l});return Lh=s,Lh}var $h,V_;function uu(){if(V_)return $h;V_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=r(n[s],s,n);return l}return $h=e,$h}var Dh,W_;function vq(){if(W_)return Dh;W_=1;var e=Gs(),n=uu(),r=St(),s=Xs(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(s(c))return l?l.call(c):"";var f=c+"";return f=="0"&&1/c==-1/0?"-0":f}return Dh=u,Dh}var Fh,G_;function QN(){if(G_)return Fh;G_=1;var e=vq();function n(r){return r==null?"":e(r)}return Fh=n,Fh}var zh,K_;function cu(){if(K_)return zh;K_=1;var e=St(),n=Tv(),r=gq(),s=QN();function o(l,u){return e(l)?l:n(l,u)?[l]:r(s(l))}return zh=o,zh}var Bh,Y_;function da(){if(Y_)return Bh;Y_=1;var e=Xs();function n(r){if(typeof r=="string"||e(r))return r;var s=r+"";return s=="0"&&1/r==-1/0?"-0":s}return Bh=n,Bh}var Uh,X_;function du(){if(X_)return Uh;X_=1;var e=cu(),n=da();function r(s,o){o=e(o,s);for(var l=0,u=o.length;s!=null&&l<u;)s=s[n(o[l++])];return l&&l==u?s:void 0}return Uh=r,Uh}var Hh,Q_;function yq(){if(Q_)return Hh;Q_=1;var e=du();function n(r,s,o){var l=r==null?void 0:e(r,s);return l===void 0?o:l}return Hh=n,Hh}var Vh,Z_;function wq(){if(Z_)return Vh;Z_=1;function e(n,r){return n!=null&&r in Object(n)}return Vh=e,Vh}var Wh,J_;function ZN(){if(J_)return Wh;J_=1;var e=cu(),n=ua(),r=St(),s=iu(),o=xv(),l=da();function u(c,f,p){f=e(f,c);for(var h=-1,g=f.length,y=!1;++h<g;){var w=l(f[h]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++h!=g?y:(g=c==null?0:c.length,!!g&&o(g)&&s(w,g)&&(r(c)||n(c)))}return Wh=u,Wh}var Gh,eS;function JN(){if(eS)return Gh;eS=1;var e=wq(),n=ZN();function r(s,o){return s!=null&&n(s,o,e)}return Gh=r,Gh}var Kh,tS;function xq(){if(tS)return Kh;tS=1;var e=KN(),n=yq(),r=JN(),s=Tv(),o=YN(),l=XN(),u=da(),c=1,f=2;function p(h,g){return s(h)&&o(g)?l(u(h),g):function(y){var w=n(y,h);return w===void 0&&w===g?r(y,h):e(g,w,c|f)}}return Kh=p,Kh}var Yh,nS;function eC(){if(nS)return Yh;nS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Yh=e,Yh}var Xh,rS;function _q(){if(rS)return Xh;rS=1;var e=du();function n(r){return function(s){return e(s,r)}}return Xh=n,Xh}var Qh,iS;function Sq(){if(iS)return Qh;iS=1;var e=eC(),n=_q(),r=Tv(),s=da();function o(l){return r(l)?e(s(l)):n(l)}return Qh=o,Qh}var Zh,sS;function Lr(){if(sS)return Zh;sS=1;var e=hq(),n=xq(),r=ns(),s=St(),o=Sq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return Zh=l,Zh}var Jh,oS;function tC(){if(oS)return Jh;oS=1;var e=AN(),n=rq(),r=Lr(),s=St();function o(l,u){var c=s(l)?e:n;return c(l,r(u,3))}return Jh=o,Jh}var ep,aS;function bq(){if(aS)return ep;aS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s,o){return s!=null&&n.call(s,o)}return ep=r,ep}var tp,lS;function nC(){if(lS)return tp;lS=1;var e=bq(),n=ZN();function r(s,o){return s!=null&&n(s,o,e)}return tp=r,tp}var np,uS;function kq(){if(uS)return np;uS=1;var e=Sv(),n=Ys(),r=ua(),s=St(),o=qr(),l=Ks(),u=ou(),c=ca(),f="[object Map]",p="[object Set]",h=Object.prototype,g=h.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(s(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var C=n(w);if(C==f||C==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(g.call(w,_))return!1;return!0}return np=y,np}var rp,cS;function rC(){if(cS)return rp;cS=1;function e(n){return n===void 0}return rp=e,rp}var ip,dS;function iC(){if(dS)return ip;dS=1;var e=lu(),n=qr();function r(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,f,p){u[++l]=o(c,f,p)}),u}return ip=r,ip}var sp,fS;function sC(){if(fS)return sp;fS=1;var e=uu(),n=Lr(),r=iC(),s=St();function o(l,u){var c=s(l)?e:r;return c(l,n(u,3))}return sp=o,sp}var op,hS;function Eq(){if(hS)return op;hS=1;function e(n,r,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=r(s,n[l],l,n);return s}return op=e,op}var ap,pS;function Nq(){if(pS)return ap;pS=1;function e(n,r,s,o,l){return l(n,function(u,c,f){s=o?(o=!1,u):r(s,u,c,f)}),s}return ap=e,ap}var lp,mS;function oC(){if(mS)return lp;mS=1;var e=Eq(),n=lu(),r=Lr(),s=Nq(),o=St();function l(u,c,f){var p=o(u)?e:s,h=arguments.length<3;return p(u,r(c,4),f,h,n)}return lp=l,lp}var up,gS;function Cq(){if(gS)return up;gS=1;var e=Ji(),n=St(),r=fr(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==s}return up=o,up}var cp,vS;function jq(){if(vS)return cp;vS=1;var e=eC(),n=e("length");return cp=n,cp}var dp,yS;function Rq(){if(yS)return dp;yS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function f(p){return c.test(p)}return dp=f,dp}var fp,wS;function Tq(){if(wS)return fp;wS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",f="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+f+")",h="[^"+e+"]",g="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",C=p+"?",_="["+l+"]?",S="(?:"+w+"(?:"+[h,g,y].join("|")+")"+_+C+")*",b=_+C+S,E="(?:"+[h+c+"?",c,g,y,u].join("|")+")",N=RegExp(f+"(?="+f+")|"+E+b,"g");function j(M){for(var O=N.lastIndex=0;N.test(M);)++O;return O}return fp=j,fp}var hp,xS;function Aq(){if(xS)return hp;xS=1;var e=jq(),n=Rq(),r=Tq();function s(o){return n(o)?r(o):e(o)}return hp=s,hp}var pp,_S;function Iq(){if(_S)return pp;_S=1;var e=Sv(),n=Ys(),r=qr(),s=Cq(),o=Aq(),l="[object Map]",u="[object Set]";function c(f){if(f==null)return 0;if(r(f))return s(f)?o(f):f.length;var p=n(f);return p==l||p==u?f.size:e(f).length}return pp=c,pp}var mp,SS;function Mq(){if(SS)return mp;SS=1;var e=wv(),n=DN(),r=jv(),s=Lr(),o=au(),l=St(),u=Ks(),c=aa(),f=On(),p=ca();function h(g,y,w){var C=l(g),_=C||u(g)||p(g);if(y=s(y,4),w==null){var S=g&&g.constructor;_?w=C?new S:[]:f(g)?w=c(S)?n(o(g)):{}:w={}}return(_?e:r)(g,function(b,E,N){return y(w,b,E,N)}),w}return mp=h,mp}var gp,bS;function Pq(){if(bS)return gp;bS=1;var e=Gs(),n=ua(),r=St(),s=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(s&&l&&l[s])}return gp=o,gp}var vp,kS;function Av(){if(kS)return vp;kS=1;var e=kv(),n=Pq();function r(s,o,l,u,c){var f=-1,p=s.length;for(l||(l=n),c||(c=[]);++f<p;){var h=s[f];o>0&&l(h)?o>1?r(h,o-1,l,u,c):e(c,h):u||(c[c.length]=h)}return c}return vp=r,vp}var yp,ES;function Oq(){if(ES)return yp;ES=1;function e(n,r,s){switch(s.length){case 0:return n.call(r);case 1:return n.call(r,s[0]);case 2:return n.call(r,s[0],s[1]);case 3:return n.call(r,s[0],s[1],s[2])}return n.apply(r,s)}return yp=e,yp}var wp,NS;function aC(){if(NS)return wp;NS=1;var e=Oq(),n=Math.max;function r(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,f=n(u.length-o,0),p=Array(f);++c<f;)p[c]=u[o+c];c=-1;for(var h=Array(o+1);++c<o;)h[c]=u[c];return h[o]=l(p),e(s,this,h)}}return wp=r,wp}var xp,CS;function qq(){if(CS)return xp;CS=1;var e=Nv(),n=NN(),r=ns(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return xp=s,xp}var _p,jS;function Lq(){if(jS)return _p;jS=1;var e=800,n=16,r=Date.now;function s(o){var l=0,u=0;return function(){var c=r(),f=n-(c-u);if(u=c,f>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return _p=s,_p}var Sp,RS;function lC(){if(RS)return Sp;RS=1;var e=qq(),n=Lq(),r=n(e);return Sp=r,Sp}var bp,TS;function fu(){if(TS)return bp;TS=1;var e=ns(),n=aC(),r=lC();function s(o,l){return r(n(o,l,e),o+"")}return bp=s,bp}var kp,AS;function uC(){if(AS)return kp;AS=1;function e(n,r,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return kp=e,kp}var Ep,IS;function $q(){if(IS)return Ep;IS=1;function e(n){return n!==n}return Ep=e,Ep}var Np,MS;function Dq(){if(MS)return Np;MS=1;function e(n,r,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Np=e,Np}var Cp,PS;function Fq(){if(PS)return Cp;PS=1;var e=uC(),n=$q(),r=Dq();function s(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Cp=s,Cp}var jp,OS;function zq(){if(OS)return jp;OS=1;var e=Fq();function n(r,s){var o=r==null?0:r.length;return!!o&&e(r,s,0)>-1}return jp=n,jp}var Rp,qS;function Bq(){if(qS)return Rp;qS=1;function e(n,r,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(r,n[o]))return!0;return!1}return Rp=e,Rp}var Tp,LS;function Uq(){if(LS)return Tp;LS=1;function e(){}return Tp=e,Tp}var Ap,$S;function Hq(){if($S)return Ap;$S=1;var e=qN(),n=Uq(),r=Rv(),s=1/0,o=e&&1/r(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return Ap=o,Ap}var Ip,DS;function Vq(){if(DS)return Ip;DS=1;var e=VN(),n=zq(),r=Bq(),s=WN(),o=Hq(),l=Rv(),u=200;function c(f,p,h){var g=-1,y=n,w=f.length,C=!0,_=[],S=_;if(h)C=!1,y=r;else if(w>=u){var b=p?null:o(f);if(b)return l(b);C=!1,y=s,S=new e}else S=p?[]:_;e:for(;++g<w;){var E=f[g],N=p?p(E):E;if(E=h||E!==0?E:0,C&&N===N){for(var j=S.length;j--;)if(S[j]===N)continue e;p&&S.push(N),_.push(E)}else y(S,N,h)||(S!==_&&S.push(N),_.push(E))}return _}return Ip=c,Ip}var Mp,FS;function cC(){if(FS)return Mp;FS=1;var e=qr(),n=fr();function r(s){return n(s)&&e(s)}return Mp=r,Mp}var Pp,zS;function Wq(){if(zS)return Pp;zS=1;var e=Av(),n=fu(),r=Vq(),s=cC(),o=n(function(l){return r(e(l,1,s,!0))});return Pp=o,Pp}var Op,BS;function Gq(){if(BS)return Op;BS=1;var e=uu();function n(r,s){return e(s,function(o){return r[o]})}return Op=n,Op}var qp,US;function dC(){if(US)return qp;US=1;var e=Gq(),n=yi();function r(s){return s==null?[]:e(s,n(s))}return qp=r,qp}var Lp,HS;function qn(){if(HS)return Lp;HS=1;var e;if(typeof gv=="function")try{e={clone:eq(),constant:Nv(),each:HN(),filter:tC(),has:nC(),isArray:St(),isEmpty:kq(),isFunction:aa(),isUndefined:rC(),keys:yi(),map:sC(),reduce:oC(),size:Iq(),transform:Mq(),union:Wq(),values:dC()}}catch{}return e||(e=window._),Lp=e,Lp}var $p,VS;function Iv(){if(VS)return $p;VS=1;var e=qn();$p=o;var n="\0",r="\0",s="";function o(h){this._isDirected=e.has(h,"directed")?h.directed:!0,this._isMultigraph=e.has(h,"multigraph")?h.multigraph:!1,this._isCompound=e.has(h,"compound")?h.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[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(h){return this._label=h,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(h){return e.isFunction(h)||(h=e.constant(h)),this._defaultNodeLabelFn=h,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var h=this;return e.filter(this.nodes(),function(g){return e.isEmpty(h._in[g])})},o.prototype.sinks=function(){var h=this;return e.filter(this.nodes(),function(g){return e.isEmpty(h._out[g])})},o.prototype.setNodes=function(h,g){var y=arguments,w=this;return e.each(h,function(C){y.length>1?w.setNode(C,g):w.setNode(C)}),this},o.prototype.setNode=function(h,g){return e.has(this._nodes,h)?(arguments.length>1&&(this._nodes[h]=g),this):(this._nodes[h]=arguments.length>1?g:this._defaultNodeLabelFn(h),this._isCompound&&(this._parent[h]=r,this._children[h]={},this._children[r][h]=!0),this._in[h]={},this._preds[h]={},this._out[h]={},this._sucs[h]={},++this._nodeCount,this)},o.prototype.node=function(h){return this._nodes[h]},o.prototype.hasNode=function(h){return e.has(this._nodes,h)},o.prototype.removeNode=function(h){var g=this;if(e.has(this._nodes,h)){var y=function(w){g.removeEdge(g._edgeObjs[w])};delete this._nodes[h],this._isCompound&&(this._removeFromParentsChildList(h),delete this._parent[h],e.each(this.children(h),function(w){g.setParent(w)}),delete this._children[h]),e.each(e.keys(this._in[h]),y),delete this._in[h],delete this._preds[h],e.each(e.keys(this._out[h]),y),delete this._out[h],delete this._sucs[h],--this._nodeCount}return this},o.prototype.setParent=function(h,g){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(g))g=r;else{g+="";for(var y=g;!e.isUndefined(y);y=this.parent(y))if(y===h)throw new Error("Setting "+g+" as parent of "+h+" would create a cycle");this.setNode(g)}return this.setNode(h),this._removeFromParentsChildList(h),this._parent[h]=g,this._children[g][h]=!0,this},o.prototype._removeFromParentsChildList=function(h){delete this._children[this._parent[h]][h]},o.prototype.parent=function(h){if(this._isCompound){var g=this._parent[h];if(g!==r)return g}},o.prototype.children=function(h){if(e.isUndefined(h)&&(h=r),this._isCompound){var g=this._children[h];if(g)return e.keys(g)}else{if(h===r)return this.nodes();if(this.hasNode(h))return[]}},o.prototype.predecessors=function(h){var g=this._preds[h];if(g)return e.keys(g)},o.prototype.successors=function(h){var g=this._sucs[h];if(g)return e.keys(g)},o.prototype.neighbors=function(h){var g=this.predecessors(h);if(g)return e.union(g,this.successors(h))},o.prototype.isLeaf=function(h){var g;return this.isDirected()?g=this.successors(h):g=this.neighbors(h),g.length===0},o.prototype.filterNodes=function(h){var g=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});g.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){h(S)&&g.setNode(S,_)}),e.each(this._edgeObjs,function(_){g.hasNode(_.v)&&g.hasNode(_.w)&&g.setEdge(_,y.edge(_))});var w={};function C(_){var S=y.parent(_);return S===void 0||g.hasNode(S)?(w[_]=S,S):S in w?w[S]:C(S)}return this._isCompound&&e.each(g.nodes(),function(_){g.setParent(_,C(_))}),g},o.prototype.setDefaultEdgeLabel=function(h){return e.isFunction(h)||(h=e.constant(h)),this._defaultEdgeLabelFn=h,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(h,g){var y=this,w=arguments;return e.reduce(h,function(C,_){return w.length>1?y.setEdge(C,_,g):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var h,g,y,w,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(h=_.v,g=_.w,y=_.name,arguments.length===2&&(w=arguments[1],C=!0)):(h=_,g=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],C=!0)),h=""+h,g=""+g,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,h,g,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(h),this.setNode(g),this._edgeLabels[S]=C?w:this._defaultEdgeLabelFn(h,g,y);var b=f(this._isDirected,h,g,y);return h=b.v,g=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[g],h),l(this._sucs[h],g),this._in[g][S]=b,this._out[h][S]=b,this._edgeCount++,this},o.prototype.edge=function(h,g,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,h,g,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(h,g,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,h,g,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(h,g,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,h,g,y),C=this._edgeObjs[w];return C&&(h=C.v,g=C.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[g],h),u(this._sucs[h],g),delete this._in[g][w],delete this._out[h][w],this._edgeCount--),this},o.prototype.inEdges=function(h,g){var y=this._in[h];if(y){var w=e.values(y);return g?e.filter(w,function(C){return C.v===g}):w}},o.prototype.outEdges=function(h,g){var y=this._out[h];if(y){var w=e.values(y);return g?e.filter(w,function(C){return C.w===g}):w}},o.prototype.nodeEdges=function(h,g){var y=this.inEdges(h,g);if(y)return y.concat(this.outEdges(h,g))};function l(h,g){h[g]?h[g]++:h[g]=1}function u(h,g){--h[g]||delete h[g]}function c(h,g,y,w){var C=""+g,_=""+y;if(!h&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(w)?n:w)}function f(h,g,y,w){var C=""+g,_=""+y;if(!h&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return w&&(b.name=w),b}function p(h,g){return c(h,g.v,g.w,g.name)}return $p}var Dp,WS;function Kq(){return WS||(WS=1,Dp="2.1.8"),Dp}var Fp,GS;function Yq(){return GS||(GS=1,Fp={Graph:Iv(),version:Kq()}),Fp}var zp,KS;function Xq(){if(KS)return zp;KS=1;var e=qn(),n=Iv();zp={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:s(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function s(u){return e.map(u.nodes(),function(c){var f=u.node(c),p=u.parent(c),h={v:c};return e.isUndefined(f)||(h.value=f),e.isUndefined(p)||(h.parent=p),h})}function o(u){return e.map(u.edges(),function(c){var f=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(f)||(p.value=f),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(f){c.setNode(f.v,f.value),f.parent&&c.setParent(f.v,f.parent)}),e.each(u.edges,function(f){c.setEdge({v:f.v,w:f.w,name:f.name},f.value)}),c}return zp}var Bp,YS;function Qq(){if(YS)return Bp;YS=1;var e=qn();Bp=n;function n(r){var s={},o=[],l;function u(c){e.has(s,c)||(s[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return Bp}var Up,XS;function fC(){if(XS)return Up;XS=1;var e=qn();Up=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var s=this._keyIndices[r];if(s!==void 0)return this._arr[s].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,s){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:s}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,s){var o=this._keyIndices[r];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(r){var s=this._arr,o=2*r,l=o+1,u=r;o<s.length&&(u=s[o].priority<s[u].priority?o:u,l<s.length&&(u=s[l].priority<s[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var s=this._arr,o=s[r].priority,l;r!==0&&(l=r>>1,!(s[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,s){var o=this._arr,l=this._keyIndices,u=o[r],c=o[s];o[r]=c,o[s]=u,l[c.key]=r,l[u.key]=s},Up}var Hp,QS;function hC(){if(QS)return Hp;QS=1;var e=qn(),n=fC();Hp=s;var r=e.constant(1);function s(l,u,c,f){return o(l,String(u),c||r,f||function(p){return l.outEdges(p)})}function o(l,u,c,f){var p={},h=new n,g,y,w=function(C){var _=C.v!==g?C.v:C.w,S=p[_],b=c(C),E=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);E<S.distance&&(S.distance=E,S.predecessor=g,h.decrease(_,E))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;p[C]={distance:_},h.add(C,_)});h.size()>0&&(g=h.removeMin(),y=p[g],y.distance!==Number.POSITIVE_INFINITY);)f(g).forEach(w);return p}return Hp}var Vp,ZS;function Zq(){if(ZS)return Vp;ZS=1;var e=hC(),n=qn();Vp=r;function r(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Vp}var Wp,JS;function pC(){if(JS)return Wp;JS=1;var e=qn();Wp=n;function n(r){var s=0,o=[],l={},u=[];function c(f){var p=l[f]={onStack:!0,lowlink:s,index:s++};if(o.push(f),r.successors(f).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var h=[],g;do g=o.pop(),l[g].onStack=!1,h.push(g);while(f!==g);u.push(h)}}return r.nodes().forEach(function(f){e.has(l,f)||c(f)}),u}return Wp}var Gp,eb;function Jq(){if(eb)return Gp;eb=1;var e=qn(),n=pC();Gp=r;function r(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return Gp}var Kp,tb;function eL(){if(tb)return Kp;tb=1;var e=qn();Kp=r;var n=e.constant(1);function r(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},f=o.nodes();return f.forEach(function(p){c[p]={},c[p][p]={distance:0},f.forEach(function(h){p!==h&&(c[p][h]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(h){var g=h.v===p?h.w:h.v,y=l(h);c[p][g]={distance:y,predecessor:p}})}),f.forEach(function(p){var h=c[p];f.forEach(function(g){var y=c[g];f.forEach(function(w){var C=y[p],_=h[w],S=y[w],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return Kp}var Yp,nb;function mC(){if(nb)return Yp;nb=1;var e=qn();Yp=n,n.CycleException=r;function n(s){var o={},l={},u=[];function c(f){if(e.has(l,f))throw new r;e.has(o,f)||(l[f]=!0,o[f]=!0,e.each(s.predecessors(f),c),delete l[f],u.push(f))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Yp}var Xp,rb;function tL(){if(rb)return Xp;rb=1;var e=mC();Xp=n;function n(r){try{e(r)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return Xp}var Qp,ib;function gC(){if(ib)return Qp;ib=1;var e=qn();Qp=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],f={};return e.each(o,function(p){if(!s.hasNode(p))throw new Error("Graph does not have node: "+p);r(s,p,l==="post",f,u,c)}),c}function r(s,o,l,u,c,f){e.has(u,o)||(u[o]=!0,l||f.push(o),e.each(c(o),function(p){r(s,p,l,u,c,f)}),l&&f.push(o))}return Qp}var Zp,sb;function nL(){if(sb)return Zp;sb=1;var e=gC();Zp=n;function n(r,s){return e(r,s,"post")}return Zp}var Jp,ob;function rL(){if(ob)return Jp;ob=1;var e=gC();Jp=n;function n(r,s){return e(r,s,"pre")}return Jp}var em,ab;function iL(){if(ab)return em;ab=1;var e=qn(),n=Iv(),r=fC();em=s;function s(o,l){var u=new n,c={},f=new r,p;function h(y){var w=y.v===p?y.w:y.v,C=f.priority(w);if(C!==void 0){var _=l(y);_<C&&(c[w]=p,f.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){f.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),f.decrease(o.nodes()[0],0);for(var g=!1;f.size()>0;){if(p=f.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(g)throw new Error("Input graph is not connected: "+o);g=!0}o.nodeEdges(p).forEach(h)}return u}return em}var tm,lb;function sL(){return lb||(lb=1,tm={components:Qq(),dijkstra:hC(),dijkstraAll:Zq(),findCycles:Jq(),floydWarshall:eL(),isAcyclic:tL(),postorder:nL(),preorder:rL(),prim:iL(),tarjan:pC(),topsort:mC()}),tm}var nm,ub;function oL(){if(ub)return nm;ub=1;var e=Yq();return nm={Graph:e.Graph,json:Xq(),alg:sL(),version:e.version},nm}var rm,cb;function Qn(){if(cb)return rm;cb=1;var e;if(typeof gv=="function")try{e=oL()}catch{}return e||(e=window.graphlib),rm=e,rm}var im,db;function aL(){if(db)return im;db=1;var e=zN(),n=1,r=4;function s(o){return e(o,n|r)}return im=s,im}var sm,fb;function hu(){if(fb)return sm;fb=1;var e=Ws(),n=qr(),r=iu(),s=On();function o(l,u,c){if(!s(c))return!1;var f=typeof u;return(f=="number"?n(c)&&r(u,c.length):f=="string"&&u in c)?e(c[u],l):!1}return sm=o,sm}var om,hb;function lL(){if(hb)return om;hb=1;var e=fu(),n=Ws(),r=hu(),s=ts(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,f){c=Object(c);var p=-1,h=f.length,g=h>2?f[2]:void 0;for(g&&r(f[0],f[1],g)&&(h=1);++p<h;)for(var y=f[p],w=s(y),C=-1,_=w.length;++C<_;){var S=w[C],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return om=u,om}var am,pb;function uL(){if(pb)return am;pb=1;var e=Lr(),n=qr(),r=yi();function s(o){return function(l,u,c){var f=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(g){return p(f[g],g,f)}}var h=o(l,u,c);return h>-1?f[p?l[h]:h]:void 0}}return am=s,am}var lm,mb;function cL(){if(mb)return lm;mb=1;var e=/\s/;function n(r){for(var s=r.length;s--&&e.test(r.charAt(s)););return s}return lm=n,lm}var um,gb;function dL(){if(gb)return um;gb=1;var e=cL(),n=/^\s+/;function r(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return um=r,um}var cm,vb;function fL(){if(vb)return cm;vb=1;var e=dL(),n=On(),r=Xs(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function f(p){if(typeof p=="number")return p;if(r(p))return s;if(n(p)){var h=typeof p.valueOf=="function"?p.valueOf():p;p=n(h)?h+"":h}if(typeof p!="string")return p===0?p:+p;p=e(p);var g=l.test(p);return g||u.test(p)?c(p.slice(2),g?2:8):o.test(p)?s:+p}return cm=f,cm}var dm,yb;function vC(){if(yb)return dm;yb=1;var e=fL(),n=1/0,r=17976931348623157e292;function s(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return dm=s,dm}var fm,wb;function hL(){if(wb)return fm;wb=1;var e=vC();function n(r){var s=e(r),o=s%1;return s===s?o?s-o:s:0}return fm=n,fm}var hm,xb;function pL(){if(xb)return hm;xb=1;var e=uC(),n=Lr(),r=hL(),s=Math.max;function o(l,u,c){var f=l==null?0:l.length;if(!f)return-1;var p=c==null?0:r(c);return p<0&&(p=s(f+p,0)),e(l,n(u,3),p)}return hm=o,hm}var pm,_b;function mL(){if(_b)return pm;_b=1;var e=uL(),n=pL(),r=e(n);return pm=r,pm}var mm,Sb;function yC(){if(Sb)return mm;Sb=1;var e=Av();function n(r){var s=r==null?0:r.length;return s?e(r,1):[]}return mm=n,mm}var gm,bb;function gL(){if(bb)return gm;bb=1;var e=Cv(),n=BN(),r=ts();function s(o,l){return o==null?o:e(o,n(l),r)}return gm=s,gm}var vm,kb;function vL(){if(kb)return vm;kb=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return vm=e,vm}var ym,Eb;function yL(){if(Eb)return ym;Eb=1;var e=nu(),n=jv(),r=Lr();function s(o,l){var u={};return l=r(l,3),n(o,function(c,f,p){e(u,f,l(c,f,p))}),u}return ym=s,ym}var wm,Nb;function Mv(){if(Nb)return wm;Nb=1;var e=Xs();function n(r,s,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],f=s(c);if(f!=null&&(p===void 0?f===f&&!e(f):o(f,p)))var p=f,h=c}return h}return wm=n,wm}var xm,Cb;function wL(){if(Cb)return xm;Cb=1;function e(n,r){return n>r}return xm=e,xm}var _m,jb;function xL(){if(jb)return _m;jb=1;var e=Mv(),n=wL(),r=ns();function s(o){return o&&o.length?e(o,r,n):void 0}return _m=s,_m}var Sm,Rb;function wC(){if(Rb)return Sm;Rb=1;var e=nu(),n=Ws();function r(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Sm=r,Sm}var bm,Tb;function _L(){if(Tb)return bm;Tb=1;var e=Ji(),n=au(),r=fr(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,f=u.call(Object);function p(h){if(!r(h)||e(h)!=s)return!1;var g=n(h);if(g===null)return!0;var y=c.call(g,"constructor")&&g.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==f}return bm=p,bm}var km,Ab;function xC(){if(Ab)return km;Ab=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return km=e,km}var Em,Ib;function SL(){if(Ib)return Em;Ib=1;var e=la(),n=ts();function r(s){return e(s,n(s))}return Em=r,Em}var Nm,Mb;function bL(){if(Mb)return Nm;Mb=1;var e=wC(),n=RN(),r=$N(),s=TN(),o=FN(),l=ua(),u=St(),c=cC(),f=Ks(),p=aa(),h=On(),g=_L(),y=ca(),w=xC(),C=SL();function _(S,b,E,N,j,M,O){var q=w(S,E),F=w(b,E),R=O.get(F);if(R){e(S,E,R);return}var P=M?M(q,F,E+"",S,b,O):void 0,B=P===void 0;if(B){var J=u(F),Z=!J&&f(F),A=!J&&!Z&&y(F);P=F,J||Z||A?u(q)?P=q:c(q)?P=s(q):Z?(B=!1,P=n(F,!0)):A?(B=!1,P=r(F,!0)):P=[]:g(F)||l(F)?(P=q,l(q)?P=C(q):(!h(q)||p(q))&&(P=o(F))):B=!1}B&&(O.set(F,P),j(P,F,N,M,O),O.delete(F)),e(S,E,P)}return Nm=_,Nm}var Cm,Pb;function kL(){if(Pb)return Cm;Pb=1;var e=tu(),n=wC(),r=Cv(),s=bL(),o=On(),l=ts(),u=xC();function c(f,p,h,g,y){f!==p&&r(p,function(w,C){if(y||(y=new e),o(w))s(f,p,C,h,c,g,y);else{var _=g?g(u(f,C),w,C+"",f,p,y):void 0;_===void 0&&(_=w),n(f,C,_)}},l)}return Cm=c,Cm}var jm,Ob;function EL(){if(Ob)return jm;Ob=1;var e=fu(),n=hu();function r(s){return e(function(o,l){var u=-1,c=l.length,f=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(f=s.length>3&&typeof f=="function"?(c--,f):void 0,p&&n(l[0],l[1],p)&&(f=c<3?void 0:f,c=1),o=Object(o);++u<c;){var h=l[u];h&&s(o,h,u,f)}return o})}return jm=r,jm}var Rm,qb;function NL(){if(qb)return Rm;qb=1;var e=kL(),n=EL(),r=n(function(s,o,l){e(s,o,l)});return Rm=r,Rm}var Tm,Lb;function _C(){if(Lb)return Tm;Lb=1;function e(n,r){return n<r}return Tm=e,Tm}var Am,$b;function CL(){if($b)return Am;$b=1;var e=Mv(),n=_C(),r=ns();function s(o){return o&&o.length?e(o,r,n):void 0}return Am=s,Am}var Im,Db;function jL(){if(Db)return Im;Db=1;var e=Mv(),n=Lr(),r=_C();function s(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Im=s,Im}var Mm,Fb;function RL(){if(Fb)return Mm;Fb=1;var e=Jn(),n=function(){return e.Date.now()};return Mm=n,Mm}var Pm,zb;function TL(){if(zb)return Pm;zb=1;var e=ru(),n=cu(),r=iu(),s=On(),o=da();function l(u,c,f,p){if(!s(u))return u;c=n(c,u);for(var h=-1,g=c.length,y=g-1,w=u;w!=null&&++h<g;){var C=o(c[h]),_=f;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(h!=y){var S=w[C];_=p?p(S,C,w):void 0,_===void 0&&(_=s(S)?S:r(c[h+1])?[]:{})}e(w,C,_),w=w[C]}return u}return Pm=l,Pm}var Om,Bb;function AL(){if(Bb)return Om;Bb=1;var e=du(),n=TL(),r=cu();function s(o,l,u){for(var c=-1,f=l.length,p={};++c<f;){var h=l[c],g=e(o,h);u(g,h)&&n(p,r(h,o),g)}return p}return Om=s,Om}var qm,Ub;function IL(){if(Ub)return qm;Ub=1;var e=AL(),n=JN();function r(s,o){return e(s,o,function(l,u){return n(s,u)})}return qm=r,qm}var Lm,Hb;function ML(){if(Hb)return Lm;Hb=1;var e=yC(),n=aC(),r=lC();function s(o){return r(n(o,void 0,e),o+"")}return Lm=s,Lm}var $m,Vb;function PL(){if(Vb)return $m;Vb=1;var e=IL(),n=ML(),r=n(function(s,o){return s==null?{}:e(s,o)});return $m=r,$m}var Dm,Wb;function OL(){if(Wb)return Dm;Wb=1;var e=Math.ceil,n=Math.max;function r(s,o,l,u){for(var c=-1,f=n(e((o-s)/(l||1)),0),p=Array(f);f--;)p[u?f:++c]=s,s+=l;return p}return Dm=r,Dm}var Fm,Gb;function qL(){if(Gb)return Fm;Gb=1;var e=OL(),n=hu(),r=vC();function s(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return Fm=s,Fm}var zm,Kb;function LL(){if(Kb)return zm;Kb=1;var e=qL(),n=e();return zm=n,zm}var Bm,Yb;function $L(){if(Yb)return Bm;Yb=1;function e(n,r){var s=n.length;for(n.sort(r);s--;)n[s]=n[s].value;return n}return Bm=e,Bm}var Um,Xb;function DL(){if(Xb)return Um;Xb=1;var e=Xs();function n(r,s){if(r!==s){var o=r!==void 0,l=r===null,u=r===r,c=e(r),f=s!==void 0,p=s===null,h=s===s,g=e(s);if(!p&&!g&&!c&&r>s||c&&f&&h&&!p&&!g||l&&f&&h||!o&&h||!u)return 1;if(!l&&!c&&!g&&r<s||g&&o&&u&&!l&&!c||p&&o&&u||!f&&u||!h)return-1}return 0}return Um=n,Um}var Hm,Qb;function FL(){if(Qb)return Hm;Qb=1;var e=DL();function n(r,s,o){for(var l=-1,u=r.criteria,c=s.criteria,f=u.length,p=o.length;++l<f;){var h=e(u[l],c[l]);if(h){if(l>=p)return h;var g=o[l];return h*(g=="desc"?-1:1)}}return r.index-s.index}return Hm=n,Hm}var Vm,Zb;function zL(){if(Zb)return Vm;Zb=1;var e=uu(),n=du(),r=Lr(),s=iC(),o=$L(),l=su(),u=FL(),c=ns(),f=St();function p(h,g,y){g.length?g=e(g,function(_){return f(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):g=[c];var w=-1;g=e(g,l(r));var C=s(h,function(_,S,b){var E=e(g,function(N){return N(_)});return{criteria:E,index:++w,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Vm=p,Vm}var Wm,Jb;function BL(){if(Jb)return Wm;Jb=1;var e=Av(),n=zL(),r=fu(),s=hu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&s(l,u[0],u[1])?u=[]:c>2&&s(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Wm=o,Wm}var Gm,ek;function UL(){if(ek)return Gm;ek=1;var e=QN(),n=0;function r(s){var o=++n;return e(s)+o}return Gm=r,Gm}var Km,tk;function HL(){if(tk)return Km;tk=1;function e(n,r,s){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var f=o<u?r[o]:void 0;s(c,n[o],f)}return c}return Km=e,Km}var Ym,nk;function VL(){if(nk)return Ym;nk=1;var e=ru(),n=HL();function r(s,o){return n(s||[],o||[],e)}return Ym=r,Ym}var Xm,rk;function ot(){if(rk)return Xm;rk=1;var e;if(typeof gv=="function")try{e={cloneDeep:aL(),constant:Nv(),defaults:lL(),each:HN(),filter:tC(),find:mL(),flatten:yC(),forEach:UN(),forIn:gL(),has:nC(),isUndefined:rC(),last:vL(),map:sC(),mapValues:yL(),max:xL(),merge:NL(),min:CL(),minBy:jL(),now:RL(),pick:PL(),range:LL(),reduce:oC(),sortBy:BL(),uniqueId:UL(),values:dC(),zipObject:VL()}}catch{}return e||(e=window._),Xm=e,Xm}var Qm,ik;function WL(){if(ik)return Qm;ik=1,Qm=e;function e(){var s={};s._next=s._prev=s,this._sentinel=s}e.prototype.dequeue=function(){var s=this._sentinel,o=s._prev;if(o!==s)return n(o),o},e.prototype.enqueue=function(s){var o=this._sentinel;s._prev&&s._next&&n(s),s._next=o._next,o._next._prev=s,o._next=s,s._prev=o},e.prototype.toString=function(){for(var s=[],o=this._sentinel,l=o._prev;l!==o;)s.push(JSON.stringify(l,r)),l=l._prev;return"["+s.join(", ")+"]"};function n(s){s._prev._next=s._next,s._next._prev=s._prev,delete s._next,delete s._prev}function r(s,o){if(s!=="_next"&&s!=="_prev")return o}return Qm}var Zm,sk;function GL(){if(sk)return Zm;sk=1;var e=ot(),n=Qn().Graph,r=WL();Zm=o;var s=e.constant(1);function o(p,h){if(p.nodeCount()<=1)return[];var g=c(p,h||s),y=l(g.graph,g.buckets,g.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,h,g){for(var y=[],w=h[h.length-1],C=h[0],_;p.nodeCount();){for(;_=C.dequeue();)u(p,h,g,_);for(;_=w.dequeue();)u(p,h,g,_);if(p.nodeCount()){for(var S=h.length-2;S>0;--S)if(_=h[S].dequeue(),_){y=y.concat(u(p,h,g,_,!0));break}}}return y}function u(p,h,g,y,w){var C=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var S=p.edge(_),b=p.node(_.v);w&&C.push({v:_.v,w:_.w}),b.out-=S,f(h,g,b)}),e.forEach(p.outEdges(y.v),function(_){var S=p.edge(_),b=_.w,E=p.node(b);E.in-=S,f(h,g,E)}),p.removeNode(y.v),C}function c(p,h){var g=new n,y=0,w=0;e.forEach(p.nodes(),function(S){g.setNode(S,{v:S,in:0,out:0})}),e.forEach(p.edges(),function(S){var b=g.edge(S.v,S.w)||0,E=h(S),N=b+E;g.setEdge(S.v,S.w,N),w=Math.max(w,g.node(S.v).out+=E),y=Math.max(y,g.node(S.w).in+=E)});var C=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(g.nodes(),function(S){f(C,_,g.node(S))}),{graph:g,buckets:C,zeroIdx:_}}function f(p,h,g){g.out?g.in?p[g.out-g.in+h].enqueue(g):p[p.length-1].enqueue(g):p[0].enqueue(g)}return Zm}var Jm,ok;function KL(){if(ok)return Jm;ok=1;var e=ot(),n=GL();Jm={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(f){var p=l.edge(f);l.removeEdge(f),p.forwardName=f.name,p.reversed=!0,l.setEdge(f.w,f.v,p,e.uniqueId("rev"))});function c(f){return function(p){return f.edge(p).weight}}}function s(l){var u=[],c={},f={};function p(h){e.has(f,h)||(f[h]=!0,c[h]=!0,e.forEach(l.outEdges(h),function(g){e.has(c,g.w)?u.push(g):p(g.w)}),delete c[h])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var f=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,f)}})}return Jm}var eg,ak;function fn(){if(ak)return eg;ak=1;var e=ot(),n=Qn().Graph;eg={addDummyNode:r,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:f,normalizeRanks:p,removeEmptyRanks:h,addBorderNode:g,maxRank:y,partition:w,time:C,notime:_};function r(S,b,E,N){var j;do j=e.uniqueId(N);while(S.hasNode(j));return E.dummy=b,S.setNode(j,E),j}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(E){b.setNode(E,S.node(E))}),e.forEach(S.edges(),function(E){var N=b.edge(E.v,E.w)||{weight:0,minlen:1},j=S.edge(E);b.setEdge(E.v,E.w,{weight:N.weight+j.weight,minlen:Math.max(N.minlen,j.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(E){S.children(E).length||b.setNode(E,S.node(E))}),e.forEach(S.edges(),function(E){b.setEdge(E,S.edge(E))}),b}function l(S){var b=e.map(S.nodes(),function(E){var N={};return e.forEach(S.outEdges(E),function(j){N[j.w]=(N[j.w]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(E){var N={};return e.forEach(S.inEdges(E),function(j){N[j.v]=(N[j.v]||0)+S.edge(j).weight}),N});return e.zipObject(S.nodes(),b)}function c(S,b){var E=S.x,N=S.y,j=b.x-E,M=b.y-N,O=S.width/2,q=S.height/2;if(!j&&!M)throw new Error("Not possible to find intersection inside of the rectangle");var F,R;return Math.abs(M)*O>Math.abs(j)*q?(M<0&&(q=-q),F=q*j/M,R=q):(j<0&&(O=-O),F=O,R=O*M/j),{x:E+F,y:N+R}}function f(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(E){var N=S.node(E),j=N.rank;e.isUndefined(j)||(b[j][N.order]=E)}),b}function p(S){var b=e.min(e.map(S.nodes(),function(E){return S.node(E).rank}));e.forEach(S.nodes(),function(E){var N=S.node(E);e.has(N,"rank")&&(N.rank-=b)})}function h(S){var b=e.min(e.map(S.nodes(),function(M){return S.node(M).rank})),E=[];e.forEach(S.nodes(),function(M){var O=S.node(M).rank-b;E[O]||(E[O]=[]),E[O].push(M)});var N=0,j=S.graph().nodeRankFactor;e.forEach(E,function(M,O){e.isUndefined(M)&&O%j!==0?--N:N&&e.forEach(M,function(q){S.node(q).rank+=N})})}function g(S,b,E,N){var j={width:0,height:0};return arguments.length>=4&&(j.rank=E,j.order=N),r(S,"border",j,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var E=S.node(b).rank;if(!e.isUndefined(E))return E}))}function w(S,b){var E={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?E.lhs.push(N):E.rhs.push(N)}),E}function C(S,b){var E=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-E)+"ms")}}function _(S,b){return b()}return eg}var tg,lk;function YL(){if(lk)return tg;lk=1;var e=ot(),n=fn();tg={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,f=l.node(c).rank,p=u.w,h=l.node(p).rank,g=u.name,y=l.edge(u),w=y.labelRank;if(h!==f+1){l.removeEdge(u);var C,_,S;for(S=0,++f;f<h;++S,++f)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:f},C=n.addDummyNode(l,"edge",_,"_d"),f===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},g),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,p,{weight:y.weight},g)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),f=c.edgeLabel,p;for(l.setEdge(c.edgeObj,f);c.dummy;)p=l.successors(u)[0],l.removeNode(u),f.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(f.x=c.x,f.y=c.y,f.width=c.width,f.height=c.height),u=p,c=l.node(u)})}return tg}var ng,uk;function Ul(){if(uk)return ng;uk=1;var e=ot();ng={longestPath:n,slack:r};function n(s){var o={};function l(u){var c=s.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var f=e.min(e.map(s.outEdges(u),function(p){return l(p.w)-s.edge(p).minlen}));return(f===Number.POSITIVE_INFINITY||f===void 0||f===null)&&(f=0),c.rank=f}e.forEach(s.sources(),l)}function r(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return ng}var rg,ck;function SC(){if(ck)return rg;ck=1;var e=ot(),n=Qn().Graph,r=Ul().slack;rg=s;function s(c){var f=new n({directed:!1}),p=c.nodes()[0],h=c.nodeCount();f.setNode(p,{});for(var g,y;o(f,c)<h;)g=l(f,c),y=f.hasNode(g.v)?r(c,g):-r(c,g),u(f,c,y);return f}function o(c,f){function p(h){e.forEach(f.nodeEdges(h),function(g){var y=g.v,w=h===y?g.w:y;!c.hasNode(w)&&!r(f,g)&&(c.setNode(w,{}),c.setEdge(h,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,f){return e.minBy(f.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(f,p)})}function u(c,f,p){e.forEach(c.nodes(),function(h){f.node(h).rank+=p})}return rg}var ig,dk;function XL(){if(dk)return ig;dk=1;var e=ot(),n=SC(),r=Ul().slack,s=Ul().longestPath,o=Qn().alg.preorder,l=Qn().alg.postorder,u=fn().simplify;ig=c,c.initLowLimValues=g,c.initCutValues=f,c.calcCutValue=h,c.leaveEdge=w,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var j=n(N);g(j),f(j,N);for(var M,O;M=w(j);)O=C(j,N,M),_(j,N,M,O)}function f(N,j){var M=l(N,N.nodes());M=M.slice(0,M.length-1),e.forEach(M,function(O){p(N,j,O)})}function p(N,j,M){var O=N.node(M),q=O.parent;N.edge(M,q).cutvalue=h(N,j,M)}function h(N,j,M){var O=N.node(M),q=O.parent,F=!0,R=j.edge(M,q),P=0;return R||(F=!1,R=j.edge(q,M)),P=R.weight,e.forEach(j.nodeEdges(M),function(B){var J=B.v===M,Z=J?B.w:B.v;if(Z!==q){var A=J===F,H=j.edge(B).weight;if(P+=A?H:-H,b(N,M,Z)){var U=N.edge(M,Z).cutvalue;P+=A?-U:U}}}),P}function g(N,j){arguments.length<2&&(j=N.nodes()[0]),y(N,{},1,j)}function y(N,j,M,O,q){var F=M,R=N.node(O);return j[O]=!0,e.forEach(N.neighbors(O),function(P){e.has(j,P)||(M=y(N,j,M,P,O))}),R.low=F,R.lim=M++,q?R.parent=q:delete R.parent,M}function w(N){return e.find(N.edges(),function(j){return N.edge(j).cutvalue<0})}function C(N,j,M){var O=M.v,q=M.w;j.hasEdge(O,q)||(O=M.w,q=M.v);var F=N.node(O),R=N.node(q),P=F,B=!1;F.lim>R.lim&&(P=R,B=!0);var J=e.filter(j.edges(),function(Z){return B===E(N,N.node(Z.v),P)&&B!==E(N,N.node(Z.w),P)});return e.minBy(J,function(Z){return r(j,Z)})}function _(N,j,M,O){var q=M.v,F=M.w;N.removeEdge(q,F),N.setEdge(O.v,O.w,{}),g(N),f(N,j),S(N,j)}function S(N,j){var M=e.find(N.nodes(),function(q){return!j.node(q).parent}),O=o(N,M);O=O.slice(1),e.forEach(O,function(q){var F=N.node(q).parent,R=j.edge(q,F),P=!1;R||(R=j.edge(F,q),P=!0),j.node(q).rank=j.node(F).rank+(P?R.minlen:-R.minlen)})}function b(N,j,M){return N.hasEdge(j,M)}function E(N,j,M){return M.low<=j.lim&&j.lim<=M.lim}return ig}var sg,fk;function QL(){if(fk)return sg;fk=1;var e=Ul(),n=e.longestPath,r=SC(),s=XL();sg=o;function o(f){switch(f.graph().ranker){case"network-simplex":c(f);break;case"tight-tree":u(f);break;case"longest-path":l(f);break;default:c(f)}}var l=n;function u(f){n(f),r(f)}function c(f){s(f)}return sg}var og,hk;function ZL(){if(hk)return og;hk=1;var e=ot();og=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),f=c.edgeObj,p=r(o,l,f.v,f.w),h=p.path,g=p.lca,y=0,w=h[y],C=!0;u!==f.w;){if(c=o.node(u),C){for(;(w=h[y])!==g&&o.node(w).maxRank<c.rank;)y++;w===g&&(C=!1)}if(!C){for(;y<h.length-1&&o.node(w=h[y+1]).minRank<=c.rank;)y++;w=h[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var f=[],p=[],h=Math.min(l[u].low,l[c].low),g=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),f.push(y);while(y&&(l[y].low>h||g>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:f.concat(p.reverse()),lca:w}}function s(o){var l={},u=0;function c(f){var p=u;e.forEach(o.children(f),c),l[f]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return og}var ag,pk;function JL(){if(pk)return ag;pk=1;var e=ot(),n=fn();ag={run:r,cleanup:u};function r(c){var f=n.addDummyNode(c,"root",{},"_root"),p=o(c),h=e.max(e.values(p))-1,g=2*h+1;c.graph().nestingRoot=f,e.forEach(c.edges(),function(w){c.edge(w).minlen*=g});var y=l(c)+1;e.forEach(c.children(),function(w){s(c,f,g,y,h,p,w)}),c.graph().nodeRankFactor=g}function s(c,f,p,h,g,y,w){var C=c.children(w);if(!C.length){w!==f&&c.setEdge(f,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(w);c.setParent(_,w),b.borderTop=_,c.setParent(S,w),b.borderBottom=S,e.forEach(C,function(E){s(c,f,p,h,g,y,E);var N=c.node(E),j=N.borderTop?N.borderTop:E,M=N.borderBottom?N.borderBottom:E,O=N.borderTop?h:2*h,q=j!==M?1:g-y[w]+1;c.setEdge(_,j,{weight:O,minlen:q,nestingEdge:!0}),c.setEdge(M,S,{weight:O,minlen:q,nestingEdge:!0})}),c.parent(w)||c.setEdge(f,_,{weight:0,minlen:g+y[w]})}function o(c){var f={};function p(h,g){var y=c.children(h);y&&y.length&&e.forEach(y,function(w){p(w,g+1)}),f[h]=g}return e.forEach(c.children(),function(h){p(h,1)}),f}function l(c){return e.reduce(c.edges(),function(f,p){return f+c.edge(p).weight},0)}function u(c){var f=c.graph();c.removeNode(f.nestingRoot),delete f.nestingRoot,e.forEach(c.edges(),function(p){var h=c.edge(p);h.nestingEdge&&c.removeEdge(p)})}return ag}var lg,mk;function e$(){if(mk)return lg;mk=1;var e=ot(),n=fn();lg=r;function r(o){function l(u){var c=o.children(u),f=o.node(u);if(c.length&&e.forEach(c,l),e.has(f,"minRank")){f.borderLeft=[],f.borderRight=[];for(var p=f.minRank,h=f.maxRank+1;p<h;++p)s(o,"borderLeft","_bl",u,f,p),s(o,"borderRight","_br",u,f,p)}}e.forEach(o.children(),l)}function s(o,l,u,c,f,p){var h={width:0,height:0,rank:p,borderType:l},g=f[l][p-1],y=n.addDummyNode(o,"border",h,u);f[l][p]=y,o.setParent(y,c),g&&o.setEdge(g,y,{weight:1})}return lg}var ug,gk;function t$(){if(gk)return ug;gk=1;var e=ot();ug={adjust:n,undo:r};function n(p){var h=p.graph().rankdir.toLowerCase();(h==="lr"||h==="rl")&&s(p)}function r(p){var h=p.graph().rankdir.toLowerCase();(h==="bt"||h==="rl")&&l(p),(h==="lr"||h==="rl")&&(c(p),s(p))}function s(p){e.forEach(p.nodes(),function(h){o(p.node(h))}),e.forEach(p.edges(),function(h){o(p.edge(h))})}function o(p){var h=p.width;p.width=p.height,p.height=h}function l(p){e.forEach(p.nodes(),function(h){u(p.node(h))}),e.forEach(p.edges(),function(h){var g=p.edge(h);e.forEach(g.points,u),e.has(g,"y")&&u(g)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(h){f(p.node(h))}),e.forEach(p.edges(),function(h){var g=p.edge(h);e.forEach(g.points,f),e.has(g,"x")&&f(g)})}function f(p){var h=p.x;p.x=p.y,p.y=h}return ug}var cg,vk;function n$(){if(vk)return cg;vk=1;var e=ot();cg=n;function n(r){var s={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(s,p)){s[p]=!0;var h=r.node(p);u[h.rank].push(p),e.forEach(r.successors(p),c)}}var f=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(f,c),u}return cg}var dg,yk;function r$(){if(yk)return dg;yk=1;var e=ot();dg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=r(s,o[u-1],o[u]);return l}function r(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(w){return{pos:u[w.w],weight:s.edge(w).weight}}),"pos")}),!0),f=1;f<l.length;)f<<=1;var p=2*f-1;f-=1;var h=e.map(new Array(p),function(){return 0}),g=0;return e.forEach(c.forEach(function(y){var w=y.pos+f;h[w]+=y.weight;for(var C=0;w>0;)w%2&&(C+=h[w+1]),w=w-1>>1,h[w]+=y.weight;g+=y.weight*C})),g}return dg}var fg,wk;function i$(){if(wk)return fg;wk=1;var e=ot();fg=n;function n(r,s){return e.map(s,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,f){var p=r.edge(f),h=r.node(f.v);return{sum:c.sum+p.weight*h.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return fg}var hg,xk;function s$(){if(xk)return hg;xk=1;var e=ot();hg=n;function n(o,l){var u={};e.forEach(o,function(f,p){var h=u[f.v]={indegree:0,in:[],out:[],vs:[f.v],i:p};e.isUndefined(f.barycenter)||(h.barycenter=f.barycenter,h.weight=f.weight)}),e.forEach(l.edges(),function(f){var p=u[f.v],h=u[f.w];!e.isUndefined(p)&&!e.isUndefined(h)&&(h.indegree++,p.out.push(u[f.w]))});var c=e.filter(u,function(f){return!f.indegree});return r(c)}function r(o){var l=[];function u(p){return function(h){h.merged||(e.isUndefined(h.barycenter)||e.isUndefined(p.barycenter)||h.barycenter>=p.barycenter)&&s(p,h)}}function c(p){return function(h){h.in.push(p),--h.indegree===0&&o.push(h)}}for(;o.length;){var f=o.pop();l.push(f),e.forEach(f.in.reverse(),u(f)),e.forEach(f.out,c(f))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["vs","i","barycenter","weight"])})}function s(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return hg}var pg,_k;function o$(){if(_k)return pg;_k=1;var e=ot(),n=fn();pg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),f=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),h=[],g=0,y=0,w=0;f.sort(o(!!u)),w=s(h,p,w),e.forEach(f,function(_){w+=_.vs.length,h.push(_.vs),g+=_.barycenter*_.weight,y+=_.weight,w=s(h,p,w)});var C={vs:e.flatten(h,!0)};return y&&(C.barycenter=g/y,C.weight=y),C}function s(l,u,c){for(var f;u.length&&(f=e.last(u)).i<=c;)u.pop(),l.push(f.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return pg}var mg,Sk;function a$(){if(Sk)return mg;Sk=1;var e=ot(),n=i$(),r=s$(),s=o$();mg=o;function o(c,f,p,h){var g=c.children(f),y=c.node(f),w=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};w&&(g=e.filter(g,function(M){return M!==w&&M!==C}));var S=n(c,g);e.forEach(S,function(M){if(c.children(M.v).length){var O=o(c,M.v,p,h);_[M.v]=O,e.has(O,"barycenter")&&u(M,O)}});var b=r(S,p);l(b,_);var E=s(b,h);if(w&&(E.vs=e.flatten([w,E.vs,C],!0),c.predecessors(w).length)){var N=c.node(c.predecessors(w)[0]),j=c.node(c.predecessors(C)[0]);e.has(E,"barycenter")||(E.barycenter=0,E.weight=0),E.barycenter=(E.barycenter*E.weight+N.order+j.order)/(E.weight+2),E.weight+=2}return E}function l(c,f){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(h){return f[h]?f[h].vs:h}),!0)})}function u(c,f){e.isUndefined(c.barycenter)?(c.barycenter=f.barycenter,c.weight=f.weight):(c.barycenter=(c.barycenter*c.weight+f.barycenter*f.weight)/(c.weight+f.weight),c.weight+=f.weight)}return mg}var gg,bk;function l$(){if(bk)return gg;bk=1;var e=ot(),n=Qn().Graph;gg=r;function r(o,l,u){var c=s(o),f=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var h=o.node(p),g=o.parent(p);(h.rank===l||h.minRank<=l&&l<=h.maxRank)&&(f.setNode(p),f.setParent(p,g||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,C=f.edge(w,p),_=e.isUndefined(C)?0:C.weight;f.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(h,"minRank")&&f.setNode(p,{borderLeft:h.borderLeft[l],borderRight:h.borderRight[l]}))}),f}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return gg}var vg,kk;function u$(){if(kk)return vg;kk=1;var e=ot();vg=n;function n(r,s,o){var l={},u;e.forEach(o,function(c){for(var f=r.parent(c),p,h;f;){if(p=r.parent(f),p?(h=l[p],l[p]=f):(h=u,u=f),h&&h!==f){s.setEdge(h,f);return}f=p}})}return vg}var yg,Ek;function c$(){if(Ek)return yg;Ek=1;var e=ot(),n=n$(),r=r$(),s=a$(),o=l$(),l=u$(),u=Qn().Graph,c=fn();yg=f;function f(y){var w=c.maxRank(y),C=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),S=n(y);g(y,S);for(var b=Number.POSITIVE_INFINITY,E,N=0,j=0;j<4;++N,++j){h(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var M=r(y,S);M<b&&(j=0,E=e.cloneDeep(S),b=M)}g(y,E)}function p(y,w,C){return e.map(w,function(_){return o(y,_,C)})}function h(y,w){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,w);e.forEach(b.vs,function(E,N){_.node(E).order=N}),l(_,C,b.vs)})}function g(y,w){e.forEach(w,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return yg}var wg,Nk;function d$(){if(Nk)return wg;Nk=1;var e=ot(),n=Qn().Graph,r=fn();wg={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:f,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:g,balance:w};function s(b,E){var N={};function j(M,O){var q=0,F=0,R=M.length,P=e.last(O);return e.forEach(O,function(B,J){var Z=l(b,B),A=Z?b.node(Z).order:R;(Z||B===P)&&(e.forEach(O.slice(F,J+1),function(H){e.forEach(b.predecessors(H),function(U){var ne=b.node(U),Q=ne.order;(Q<q||A<Q)&&!(ne.dummy&&b.node(H).dummy)&&u(N,U,H)})}),F=J+1,q=A)}),O}return e.reduce(E,j),N}function o(b,E){var N={};function j(O,q,F,R,P){var B;e.forEach(e.range(q,F),function(J){B=O[J],b.node(B).dummy&&e.forEach(b.predecessors(B),function(Z){var A=b.node(Z);A.dummy&&(A.order<R||A.order>P)&&u(N,Z,B)})})}function M(O,q){var F=-1,R,P=0;return e.forEach(q,function(B,J){if(b.node(B).dummy==="border"){var Z=b.predecessors(B);Z.length&&(R=b.node(Z[0]).order,j(q,P,J,F,R),P=J,F=R)}j(q,P,q.length,R,O.length)}),q}return e.reduce(E,M),N}function l(b,E){if(b.node(E).dummy)return e.find(b.predecessors(E),function(N){return b.node(N).dummy})}function u(b,E,N){if(E>N){var j=E;E=N,N=j}var M=b[E];M||(b[E]=M={}),M[N]=!0}function c(b,E,N){if(E>N){var j=E;E=N,N=j}return e.has(b[E],N)}function f(b,E,N,j){var M={},O={},q={};return e.forEach(E,function(F){e.forEach(F,function(R,P){M[R]=R,O[R]=R,q[R]=P})}),e.forEach(E,function(F){var R=-1;e.forEach(F,function(P){var B=j(P);if(B.length){B=e.sortBy(B,function(U){return q[U]});for(var J=(B.length-1)/2,Z=Math.floor(J),A=Math.ceil(J);Z<=A;++Z){var H=B[Z];O[P]===P&&R<q[H]&&!c(N,P,H)&&(O[H]=P,O[P]=M[P]=M[H],R=q[H])}}})}),{root:M,align:O}}function p(b,E,N,j,M){var O={},q=h(b,E,N,M),F=M?"borderLeft":"borderRight";function R(J,Z){for(var A=q.nodes(),H=A.pop(),U={};H;)U[H]?J(H):(U[H]=!0,A.push(H),A=A.concat(Z(H))),H=A.pop()}function P(J){O[J]=q.inEdges(J).reduce(function(Z,A){return Math.max(Z,O[A.v]+q.edge(A))},0)}function B(J){var Z=q.outEdges(J).reduce(function(H,U){return Math.min(H,O[U.w]-q.edge(U))},Number.POSITIVE_INFINITY),A=b.node(J);Z!==Number.POSITIVE_INFINITY&&A.borderType!==F&&(O[J]=Math.max(O[J],Z))}return R(P,q.predecessors.bind(q)),R(B,q.successors.bind(q)),e.forEach(j,function(J){O[J]=O[N[J]]}),O}function h(b,E,N,j){var M=new n,O=b.graph(),q=_(O.nodesep,O.edgesep,j);return e.forEach(E,function(F){var R;e.forEach(F,function(P){var B=N[P];if(M.setNode(B),R){var J=N[R],Z=M.edge(J,B);M.setEdge(J,B,Math.max(q(b,P,R),Z||0))}R=P})}),M}function g(b,E){return e.minBy(e.values(E),function(N){var j=Number.NEGATIVE_INFINITY,M=Number.POSITIVE_INFINITY;return e.forIn(N,function(O,q){var F=S(b,q)/2;j=Math.max(O+F,j),M=Math.min(O-F,M)}),j-M})}function y(b,E){var N=e.values(E),j=e.min(N),M=e.max(N);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(q){var F=O+q,R=b[F],P;if(R!==E){var B=e.values(R);P=q==="l"?j-e.min(B):M-e.max(B),P&&(b[F]=e.mapValues(R,function(J){return J+P}))}})})}function w(b,E){return e.mapValues(b.ul,function(N,j){if(E)return b[E.toLowerCase()][j];var M=e.sortBy(e.map(b,j));return(M[1]+M[2])/2})}function C(b){var E=r.buildLayerMatrix(b),N=e.merge(s(b,E),o(b,E)),j={},M;e.forEach(["u","d"],function(q){M=q==="u"?E:e.values(E).reverse(),e.forEach(["l","r"],function(F){F==="r"&&(M=e.map(M,function(J){return e.values(J).reverse()}));var R=(q==="u"?b.predecessors:b.successors).bind(b),P=f(b,M,N,R),B=p(b,M,P.root,P.align,F==="r");F==="r"&&(B=e.mapValues(B,function(J){return-J})),j[q+F]=B})});var O=g(b,j);return y(j,O),w(j,b.graph().align)}function _(b,E,N){return function(j,M,O){var q=j.node(M),F=j.node(O),R=0,P;if(R+=q.width/2,e.has(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":P=-q.width/2;break;case"r":P=q.width/2;break}if(P&&(R+=N?P:-P),P=0,R+=(q.dummy?E:b)/2,R+=(F.dummy?E:b)/2,R+=F.width/2,e.has(F,"labelpos"))switch(F.labelpos.toLowerCase()){case"l":P=F.width/2;break;case"r":P=-F.width/2;break}return P&&(R+=N?P:-P),P=0,R}}function S(b,E){return b.node(E).width}return wg}var xg,Ck;function f$(){if(Ck)return xg;Ck=1;var e=ot(),n=fn(),r=d$().positionX;xg=s;function s(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,f=0;e.forEach(u,function(p){var h=e.max(e.map(p,function(g){return l.node(g).height}));e.forEach(p,function(g){l.node(g).y=f+h/2}),f+=h+c})}return xg}var _g,jk;function h$(){if(jk)return _g;jk=1;var e=ot(),n=KL(),r=YL(),s=QL(),o=fn().normalizeRanks,l=ZL(),u=fn().removeEmptyRanks,c=JL(),f=e$(),p=t$(),h=c$(),g=f$(),y=fn(),w=Qn().Graph;_g=C;function C($,Y){var ee=Y&&Y.debugTiming?y.time:y.notime;ee("layout",function(){var se=ee(" buildLayoutGraph",function(){return R($)});ee(" runLayout",function(){_(se,ee)}),ee(" updateInputGraph",function(){S($,se)})})}function _($,Y){Y(" makeSpaceForEdgeLabels",function(){P($)}),Y(" removeSelfEdges",function(){D($)}),Y(" acyclic",function(){n.run($)}),Y(" nestingGraph.run",function(){c.run($)}),Y(" rank",function(){s(y.asNonCompoundGraph($))}),Y(" injectEdgeLabelProxies",function(){B($)}),Y(" removeEmptyRanks",function(){u($)}),Y(" nestingGraph.cleanup",function(){c.cleanup($)}),Y(" normalizeRanks",function(){o($)}),Y(" assignRankMinMax",function(){J($)}),Y(" removeEdgeLabelProxies",function(){Z($)}),Y(" normalize.run",function(){r.run($)}),Y(" parentDummyChains",function(){l($)}),Y(" addBorderSegments",function(){f($)}),Y(" order",function(){h($)}),Y(" insertSelfEdges",function(){G($)}),Y(" adjustCoordinateSystem",function(){p.adjust($)}),Y(" position",function(){g($)}),Y(" positionSelfEdges",function(){k($)}),Y(" removeBorderNodes",function(){Q($)}),Y(" normalize.undo",function(){r.undo($)}),Y(" fixupEdgeLabelCoords",function(){U($)}),Y(" undoCoordinateSystem",function(){p.undo($)}),Y(" translateGraph",function(){A($)}),Y(" assignNodeIntersects",function(){H($)}),Y(" reversePoints",function(){ne($)}),Y(" acyclic.undo",function(){n.undo($)})}function S($,Y){e.forEach($.nodes(),function(ee){var se=$.node(ee),ae=Y.node(ee);se&&(se.x=ae.x,se.y=ae.y,Y.children(ee).length&&(se.width=ae.width,se.height=ae.height))}),e.forEach($.edges(),function(ee){var se=$.edge(ee),ae=Y.edge(ee);se.points=ae.points,e.has(ae,"x")&&(se.x=ae.x,se.y=ae.y)}),$.graph().width=Y.graph().width,$.graph().height=Y.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],E={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],j=["width","height"],M={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],q={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},F=["labelpos"];function R($){var Y=new w({multigraph:!0,compound:!0}),ee=oe($.graph());return Y.setGraph(e.merge({},E,L(ee,b),e.pick(ee,N))),e.forEach($.nodes(),function(se){var ae=oe($.node(se));Y.setNode(se,e.defaults(L(ae,j),M)),Y.setParent(se,$.parent(se))}),e.forEach($.edges(),function(se){var ae=oe($.edge(se));Y.setEdge(se,e.merge({},q,L(ae,O),e.pick(ae,F)))}),Y}function P($){var Y=$.graph();Y.ranksep/=2,e.forEach($.edges(),function(ee){var se=$.edge(ee);se.minlen*=2,se.labelpos.toLowerCase()!=="c"&&(Y.rankdir==="TB"||Y.rankdir==="BT"?se.width+=se.labeloffset:se.height+=se.labeloffset)})}function B($){e.forEach($.edges(),function(Y){var ee=$.edge(Y);if(ee.width&&ee.height){var se=$.node(Y.v),ae=$.node(Y.w),pe={rank:(ae.rank-se.rank)/2+se.rank,e:Y};y.addDummyNode($,"edge-proxy",pe,"_ep")}})}function J($){var Y=0;e.forEach($.nodes(),function(ee){var se=$.node(ee);se.borderTop&&(se.minRank=$.node(se.borderTop).rank,se.maxRank=$.node(se.borderBottom).rank,Y=e.max(Y,se.maxRank))}),$.graph().maxRank=Y}function Z($){e.forEach($.nodes(),function(Y){var ee=$.node(Y);ee.dummy==="edge-proxy"&&($.edge(ee.e).labelRank=ee.rank,$.removeNode(Y))})}function A($){var Y=Number.POSITIVE_INFINITY,ee=0,se=Number.POSITIVE_INFINITY,ae=0,pe=$.graph(),ge=pe.marginx||0,Ae=pe.marginy||0;function Oe(Me){var Pe=Me.x,ke=Me.y,We=Me.width,ve=Me.height;Y=Math.min(Y,Pe-We/2),ee=Math.max(ee,Pe+We/2),se=Math.min(se,ke-ve/2),ae=Math.max(ae,ke+ve/2)}e.forEach($.nodes(),function(Me){Oe($.node(Me))}),e.forEach($.edges(),function(Me){var Pe=$.edge(Me);e.has(Pe,"x")&&Oe(Pe)}),Y-=ge,se-=Ae,e.forEach($.nodes(),function(Me){var Pe=$.node(Me);Pe.x-=Y,Pe.y-=se}),e.forEach($.edges(),function(Me){var Pe=$.edge(Me);e.forEach(Pe.points,function(ke){ke.x-=Y,ke.y-=se}),e.has(Pe,"x")&&(Pe.x-=Y),e.has(Pe,"y")&&(Pe.y-=se)}),pe.width=ee-Y+ge,pe.height=ae-se+Ae}function H($){e.forEach($.edges(),function(Y){var ee=$.edge(Y),se=$.node(Y.v),ae=$.node(Y.w),pe,ge;ee.points?(pe=ee.points[0],ge=ee.points[ee.points.length-1]):(ee.points=[],pe=ae,ge=se),ee.points.unshift(y.intersectRect(se,pe)),ee.points.push(y.intersectRect(ae,ge))})}function U($){e.forEach($.edges(),function(Y){var ee=$.edge(Y);if(e.has(ee,"x"))switch((ee.labelpos==="l"||ee.labelpos==="r")&&(ee.width-=ee.labeloffset),ee.labelpos){case"l":ee.x-=ee.width/2+ee.labeloffset;break;case"r":ee.x+=ee.width/2+ee.labeloffset;break}})}function ne($){e.forEach($.edges(),function(Y){var ee=$.edge(Y);ee.reversed&&ee.points.reverse()})}function Q($){e.forEach($.nodes(),function(Y){if($.children(Y).length){var ee=$.node(Y),se=$.node(ee.borderTop),ae=$.node(ee.borderBottom),pe=$.node(e.last(ee.borderLeft)),ge=$.node(e.last(ee.borderRight));ee.width=Math.abs(ge.x-pe.x),ee.height=Math.abs(ae.y-se.y),ee.x=pe.x+ee.width/2,ee.y=se.y+ee.height/2}}),e.forEach($.nodes(),function(Y){$.node(Y).dummy==="border"&&$.removeNode(Y)})}function D($){e.forEach($.edges(),function(Y){if(Y.v===Y.w){var ee=$.node(Y.v);ee.selfEdges||(ee.selfEdges=[]),ee.selfEdges.push({e:Y,label:$.edge(Y)}),$.removeEdge(Y)}})}function G($){var Y=y.buildLayerMatrix($);e.forEach(Y,function(ee){var se=0;e.forEach(ee,function(ae,pe){var ge=$.node(ae);ge.order=pe+se,e.forEach(ge.selfEdges,function(Ae){y.addDummyNode($,"selfedge",{width:Ae.label.width,height:Ae.label.height,rank:ge.rank,order:pe+ ++se,e:Ae.e,label:Ae.label},"_se")}),delete ge.selfEdges})})}function k($){e.forEach($.nodes(),function(Y){var ee=$.node(Y);if(ee.dummy==="selfedge"){var se=$.node(ee.e.v),ae=se.x+se.width/2,pe=se.y,ge=ee.x-ae,Ae=se.height/2;$.setEdge(ee.e,ee.label),$.removeNode(Y),ee.label.points=[{x:ae+2*ge/3,y:pe-Ae},{x:ae+5*ge/6,y:pe-Ae},{x:ae+ge,y:pe},{x:ae+5*ge/6,y:pe+Ae},{x:ae+2*ge/3,y:pe+Ae}],ee.label.x=ee.x,ee.label.y=ee.y}})}function L($,Y){return e.mapValues(e.pick($,Y),Number)}function oe($){var Y={};return e.forEach($,function(ee,se){Y[se.toLowerCase()]=ee}),Y}return _g}var Sg,Rk;function p$(){if(Rk)return Sg;Rk=1;var e=ot(),n=fn(),r=Qn().Graph;Sg={debugOrdering:s};function s(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,f){var p="layer"+f;u.setNode(p,{rank:"same"}),e.reduce(c,function(h,g){return u.setEdge(h,g,{style:"invis"}),g})}),u}return Sg}var bg,Tk;function m$(){return Tk||(Tk=1,bg="0.8.5"),bg}var kg,Ak;function g$(){return Ak||(Ak=1,kg={graphlib:Qn(),layout:h$(),debug:p$(),util:{time:fn().time,notime:fn().notime},version:m$()}),kg}var v$=g$();const Ik=Yg(v$),vi=240,Xi=130,zs=74,pu=72,Mk=zs+pu;function y$(e){let n=vi;for(const r of e.values())n=Math.max(n,r.width);return n}const bC=420,w$=2;function mu(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function Pk(e,n){return((n==null?void 0:n.get(e))??0)>0?bC:0}function Ok(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function x$(e,n,r,s,o,l){const u=new Ik.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),f=new Set(c);for(const S of c){const b=s.get(S);u.setNode(S,{width:((b==null?void 0:b.width)??vi)+Pk(S,l),height:Math.max((b==null?void 0:b.height)??Xi,Ok(S,l))})}for(const S of n)f.has(S.source)&&f.has(S.target)&&u.setEdge(S.source,S.target);Ik.layout(u);const p=new Map;let h=1/0,g=1/0,y=-1/0,w=-1/0;for(const S of c){const b=u.node(S);if(!b)continue;const E=s.get(S),N=(E==null?void 0:E.width)??vi,j=(E==null?void 0:E.height)??Xi,M=N+Pk(S,l),O=Math.max(j,Ok(S,l)),q=b.x-M/2,F=b.y-O/2;p.set(S,{x:q,y:F}),q<h&&(h=q),F<g&&(g=F),q+N>y&&(y=q+N),F+j>w&&(w=F+j)}if(Number.isFinite(h)&&Number.isFinite(g))for(const[S,b]of p)p.set(S,{x:b.x-h,y:b.y-g});let C=Number.isFinite(y)?y-h:0,_=Number.isFinite(w)?w-g:0;for(const S of e){const b=o.get(S);if(!b)continue;const E=s.get(S);C=Math.max(C,b.x+((E==null?void 0:E.width)??vi)),_=Math.max(_,b.y+((E==null?void 0:E.height)??Xi))}return{positions:p,width:C,height:_}}function _$(e,n,r={}){const s=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const E=mu(b),N=c.get(E);N?N.push(b.id):c.set(E,[b.id])}const p=Array.from(c.keys()).sort().map(b=>({sid:b,...x$(c.get(b),n,s,l,o,u)})),h=y$(l),g=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const E=[[]];let N=0;for(const j of p)E.length<b&&N>0&&N+j.height>g&&(E.push([]),N=0),E[E.length-1].push(j),N+=j.height+Mk;return E},w=b=>b.reduce((E,N)=>Math.max(E,N.width),0)+bC;let C=y(r.availableWidth?w$:1);C.length>1&&C.reduce((E,N)=>E+w(N),0)+h*(C.length-1)>(r.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){let E=0;for(const{positions:N,height:j}of b){for(const[M,O]of N)_.set(M,{x:O.x+S,y:O.y+E});E+=j+Mk}S+=w(b)+h}return e.map(b=>{const E=o.get(b.id);if(E)return{...b,position:E};const N=_.get(b.id);return N?{...b,position:N}:b})}function S$(e,n,r,s){const l=zs+pu,u=60,c=y=>{const w=s.get(y);return{w:(w==null?void 0:w.width)??vi,h:(w==null?void 0:w.height)??Xi}},f=new Map(e.map(y=>[y.id,mu(y)])),p=[],h=e.map(y=>({id:y.id,pos:r.get(y.id)??n.get(y.id)})).filter(y=>y.pos!=null).sort((y,w)=>y.pos.y-w.pos.y||y.pos.x-w.pos.x||y.id.localeCompare(w.id)),g=[];for(const{id:y,pos:w}of h){const{w:C,h:_}=c(y),S=f.get(y)??"_default";if(r.has(y)){p.push({x:w.x,y:w.y,w:C,h:_,sid:S});continue}let b=w.y;for(let E=0;E<p.length+1;E++){const N=p.find(j=>{const M=j.sid===S?24:u,O=j.sid===S?24:l;return w.x<j.x+j.w+M&&j.x<w.x+C+M&&b<j.y+j.h+O&&j.y<b+_+O});if(!N)break;b=N.y+N.h+(N.sid===S?24:l)}b!==w.y&&(n.set(y,{x:w.x,y:b}),g.push(y)),p.push({x:w.x,y:b,w:C,h:_,sid:S})}return g}function b$(e,n,r,s,o){const l=y=>{const w=s.get(y);return{w:(w==null?void 0:w.width)??vi,h:(w==null?void 0:w.height)??Xi}},u=y=>r.get(y)??n.get(y),c=new Map,f=[];for(const y of e){const w=u(y.id);if(!w)continue;const{w:C,h:_}=l(y.id);if(o.has(y.id)&&!r.has(y.id)){const S=mu(y);(c.get(S)??c.set(S,[]).get(S)).push(y)}else f.push({x:w.x,y:w.y,w:C,h:_})}if(c.size===0)return[];const p=zs+pu,h=(y,w,C,_)=>f.some(S=>y<S.x+S.w+zs&&S.x<y+C+zs&&w<S.y+S.h+p&&S.y<w+_+p),g=[];for(const y of[...c.keys()].sort()){const w=c.get(y);let C=1/0,_=1/0,S=-1/0,b=-1/0;for(const F of w){const R=u(F.id),{w:P,h:B}=l(F.id);C=Math.min(C,R.x),_=Math.min(_,R.y),S=Math.max(S,R.x+P),b=Math.max(b,R.y+B)}const E=S-C,N=b-_,j=[...new Set(f.map(F=>Math.round(F.x)))].sort((F,R)=>F-R),M=j.length?j:[C],O=[0,...f.map(F=>F.y+F.h+p)].sort((F,R)=>F-R);let q=null;e:for(const F of M)for(const R of O){if(R>=_)break;if(!h(F,R,E,N)){q={x:F,y:R};break e}}if(q){const F=q.x-C,R=q.y-_;for(const P of w){const B=u(P.id);n.set(P.id,{x:B.x+F,y:B.y+R})}g.push(y)}for(const F of w){const R=u(F.id),{w:P,h:B}=l(F.id);f.push({x:R.x,y:R.y,w:P,h:B})}}return g}function k$(e,n,r,s,o,l=!1){const f=zs+pu+1,p=8,h=1.75,g=200,y=.7,w=.01,C=R=>{const P=s.get(R);return{w:(P==null?void 0:P.width)??vi,h:(P==null?void 0:P.height)??Xi}},_=R=>r.get(R)??n.get(R),S=new Map;for(const R of e){if(!_(R.id))continue;const P=mu(R),B=S.get(P);B?B.push(R):S.set(P,[R])}const b=[],E=new Set,N=new Set,j=o.size===0;for(const R of[...S.keys()].sort()){const P=S.get(R);let B=1/0,J=1/0,Z=-1/0,A=-1/0,H=!1;for(const D of P){const G=_(D.id),{w:k,h:L}=C(D.id);B=Math.min(B,G.x),J=Math.min(J,G.y),Z=Math.max(Z,G.x+k),A=Math.max(A,G.y+L),r.has(D.id)&&(H=!0)}const U=Z-B,ne=A-J;N.add(R);const Q=o.get(R);Q&&(U>Q.w+p||ne>Q.h+p)&&E.add(R),o.set(R,{w:U,h:ne}),b.push({sid:R,members:P.map(D=>D.id),x:B,y:J,w:U,h:ne,anchored:H,mass:1})}for(const R of[...o.keys()])N.has(R)||o.delete(R);if(l||j)return[];let M=!1;for(let R=0;R<b.length&&!M;R++)for(let P=R+1;P<b.length;P++){const B=b[R],J=b[P];if(!(B.anchored&&J.anchored)&&Math.abs(B.x+B.w/2-(J.x+J.w/2))<(B.w+J.w)/2+61&&Math.abs(B.y+B.h/2-(J.y+J.h/2))<(B.h+J.h)/2+f){M=!0;break}}if(E.size===0&&!M)return[];if(E.size>0)for(const R of b)E.has(R.sid)&&(R.mass=8);else for(const R of b)R.mass=Math.max(1,R.w*R.h/(vi*Xi));const O=new Map(b.map(R=>[R.sid,R.x])),q=new Map(b.map(R=>[R.sid,R.y]));for(let R=0;R<g;R++){const P=new Map,B=new Map;let J=0;for(let Z=0;Z<b.length;Z++)for(let A=Z+1;A<b.length;A++){const H=b[Z],U=b[A];if(H.anchored&&U.anchored)continue;const ne=H.x+H.w/2,Q=H.y+H.h/2,D=U.x+U.w/2,G=U.y+U.h/2,k=(H.w+U.w)/2+61-Math.abs(ne-D),L=(H.h+U.h)/2+f-Math.abs(Q-G);if(k<=0||L<=0)continue;const oe=(Ke,$e)=>!Ke.anchored&&!($e<0&&Ke.x<=0),$=(Ke,$e)=>!Ke.anchored&&!($e<0&&Ke.y<=0),Y=(Ke,$e,Qe)=>{const bt=Ke===$e,ct=bt?H.sid<U.sid?-1:1:Math.sign(Ke-$e);return Qe(H,ct)||Qe(U,-ct)?ct:bt&&(Qe(H,-ct)||Qe(U,ct))?-ct:0},ee=Y(ne,D,oe),se=Y(Q,G,$),ae=ee!==0,pe=se!==0;if(!ae&&!pe)continue;const ge=ae&&(!pe||k*h<L),[Ae,Oe,Me,Pe]=ge?[ee,k,P,oe]:[se,L,B,$],ke=Pe(H,Ae),We=Pe(U,-Ae),ve=H.mass,ye=U.mass,Ge=ke?We?ye/(ve+ye):1:0,ut=We?ke?ve/(ve+ye):1:0,it=Oe*y;Me.set(H.sid,(Me.get(H.sid)??0)+Ae*it*Ge),Me.set(U.sid,(Me.get(U.sid)??0)-Ae*it*ut),J+=it}for(const Z of b)Z.anchored||(Z.x=Math.max(0,Z.x+(P.get(Z.sid)??0)),Z.y=Math.max(0,Z.y+(B.get(Z.sid)??0)));if(J<w)break}const F=[];for(const R of b){const P=R.x-O.get(R.sid),B=R.y-q.get(R.sid);if(!(Math.abs(P)<1&&Math.abs(B)<1)){for(const J of R.members){if(r.has(J))continue;const Z=n.get(J);Z&&n.set(J,{x:Z.x+P,y:Z.y+B})}F.push(R.sid)}}return F}const E$=600;function Wg(e,n){return!(e.exitAt!=null&&n-e.exitAt>E$||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function N$(e,n){const r=new Set;for(const s of e.agents.values())Wg(s,n)&&r.add(s.id);return r}function C$(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function j$(e,n,r=0){if(!e)return!1;for(const s of n)if(C$(e,s,r))return!0;return!1}function Hi(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function R$(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const T$={agent:IP,sessionGroup:UP},A$=420,Cl=18,I$=9e4,M$=200,P$=5*6e4,O$=6,q$=2*6e4,Pv="agent-dag.layout",Ov="agent-dag.viewport",kC="agent-dag.summariesDismissed",EC="agent-dag.sessionListOpen",NC="agent-dag.detailOpen",CC="agent-dag.usagePanelOpen",qk="agent-dag.accountsPanelOpen",Lk="agent-dag.versionNoticeDismissed",$k={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"};function L$(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}const Dk="agent-dag.autoRestart",Fk="agent-dag.bundleReloadedFor";function $$(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(EC)==="1"}catch{return!1}}function D$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(EC,e?"1":"0")}catch{}}function F$(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(NC)==="1"}catch{return!1}}function z$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(NC,e?"1":"0")}catch{}}function B$(){if(typeof window>"u")return!0;const e=window.localStorage.getItem(CC);try{return e===null?!0:e==="1"}catch{return!0}}function U$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CC,e?"1":"0")}catch{}}function H$(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(kC);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function zk(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(kC,JSON.stringify(r))}catch{}}function V$(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Pv);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function Eg(e,n){if(!(typeof window>"u"))try{const r={};for(const[s,o]of e)r[s]=o;for(const[s,o]of n)r[s]=o;window.localStorage.setItem(Pv,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function W$(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(Ov);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function G$(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Ov,JSON.stringify(e))}catch{}}function Bk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Pv)}catch{}try{window.localStorage.removeItem(Ov)}catch{}}}function K$(e,n){const r=e.agents.get(n);if(!r)return;const s=[];for(const h of e.agents.values())h.sessionId===n&&s.push(h);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:s.map(h=>({id:h.id,kind:h.kind,label:h.label,parentId:h.parentId,state:h.state,startedAt:h.startedAt,endedAt:h.endedAt,model:h.model,cwd:h.cwd,usage:h.usage,prompts:h.prompts,tools:h.tools.map(g=>({id:g.id,name:g.name,inputPreview:g.inputPreview,startedAt:g.startedAt,endedAt:g.endedAt,ok:g.ok,errorPreview:g.errorPreview,usage:g.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),f=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");f.href=c,f.download=`agents-deck-${p}-${n.slice(0,8)}.json`,document.body.appendChild(f),f.click(),document.body.removeChild(f),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Gg={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Kg={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},Y$={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function jC(e){return e.startsWith("mcp__")?"mcp":Y$[e]??"other"}function RC(e,n){var s,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(s=e.cwd)!=null&&s.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function X$(e,n){if(!n)return null;const r=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),s=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function Q$(e,n,r,s,o,l,u,c,f,p,h,g,y,w,C,_,S,b){const E=[],N=[],j=new Set;if(l)for(const P of e.agents.values())RC(P,l)&&j.add(P.id);for(const P of e.agents.values()){if(!S.has(P.id))continue;const B=l?!j.has(P.id):!1,J=P.exitAt!=null,Z=_!=null&&!_.has(P.id),A=[B?"rf-dim":"",J?"rf-exiting":"",Z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,H=u.get(P.id);if(E.push({id:P.id,type:"agent",position:{x:0,y:0},data:{...P,now:n,dim:B,onOpenContext:b},className:A,...H?{width:H.width,height:H.height}:null}),P.parentId&&S.has(P.parentId)){const U=pv(P.sessionId),ne=P.state==="active"?`hsl(${U} 80% 72%)`:`hsl(${U} 50% 55%)`,Q=l&&!j.has(P.id)&&!j.has(P.parentId),D=J,G=C.size>0&&(C.has(P.id)||C.has(P.parentId)),k=_!=null&&!_.has(P.id)&&!_.has(P.parentId),L=P.state==="active"?2:1.5,oe=G?L+1.5:L,$=Q||D?.2:k?.12:1,Y=[D?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${P.parentId}->${P.id}`,source:P.parentId,target:P.id,animated:(P.state==="active"||G)&&!Q&&!D,type:"smoothstep",style:{stroke:ne,strokeWidth:oe,opacity:$,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:Y})}}const M=new Map;for(const P of e.agents.values())P.tools.length>0&&M.set(P.id,Math.min(4,P.tools.length));const O=E.filter(P=>!o.has(P.id)&&!g.has(P.id));if(O.length>0||y!==w.current){if(O.length>0){const P=_$(E,N,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:s,lanes:M});for(const B of P)g.has(B.id)||g.set(B.id,B.position);b$(E,g,o,u,new Set(O.map(B=>B.id)))}S$(E,g,o,u),w.current=y}const q=k$(E,g,o,u,c,!p||h);q.length>0&&f(q),cx(g,e.agents),cx(o,e.agents);const F=[];let R=!1;for(const P of E){let B=o.get(P.id)??g.get(P.id);B||(B={x:0,y:0},g.set(P.id,B),R=!0),F.push({...P,position:B})}return R&&(w.current=""),{nodes:F,edges:N}}function Z$(){return m.jsx(fv,{children:m.jsx(J$,{})})}function J$(){var ao,va,Wr,Gr;const e=sa(),n=I.useRef(Bg()),[,r]=I.useState(0),s=I.useCallback(()=>r(V=>V+1),[]),[o,l]=I.useState(()=>new Set),[u,c]=I.useState(null),[f,p]=I.useState(null),h=I.useCallback((V,K)=>{l(ue=>{if(!K)return new Set([V]);const fe=new Set(ue);return fe.has(V)?fe.delete(V):fe.add(V),fe}),c(ue=>K&&ue===V?ue:V)},[]),g=I.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=I.useState(null),[C,_]=I.useState(null),S=I.useCallback(V=>_(V),[]),b=I.useRef(H$()),[E,N]=I.useState($$);I.useEffect(()=>{D$(E)},[E]);const[j,M]=I.useState(F$);I.useEffect(()=>{z$(j)},[j]);const[O,q]=I.useState(B$);I.useEffect(()=>{U$(O)},[O]);const[F,R]=I.useState(()=>{try{const V=window.localStorage.getItem(qk);return V===null?!0:V==="1"}catch{return!0}});I.useEffect(()=>{try{window.localStorage.setItem(qk,F?"1":"0")}catch{}},[F]);const[P,B]=I.useState(null),[J,Z]=I.useState(!1),[A,H]=I.useState(0),[U,ne]=I.useState(0);I.useEffect(()=>{fetch("/api/sound-hook").then(V=>V.ok?V.json():null).then(V=>{V!=null&&V.ok&&(B(V.enabled===!0),H((V.foreign??[]).filter(K=>K.worksHere).length),ne(typeof V.parked=="number"?V.parked:0))}).catch(()=>{})},[]);const Q=I.useCallback(async()=>{Z(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!P})})).json().catch(()=>null);K!=null&&K.ok&&B(K.enabled===!0),fetch("/api/sound-hook").then(ue=>ue.ok?ue.json():null).then(ue=>{ue!=null&&ue.ok&&(H((ue.foreign??[]).filter(fe=>fe.worksHere).length),ne(typeof ue.parked=="number"?ue.parked:0))}).catch(()=>{})}catch{}finally{Z(!1)}},[P]),[D,G]=I.useState(!1),[k,L]=I.useState(null),[oe,$]=I.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(Lk)??""}catch{return""}}),[Y,ee]=I.useState(!1),se=I.useCallback((V=!1)=>{fetch(V?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&L(K)}).catch(()=>{})},[]);I.useEffect(()=>{se();const V=window.setInterval(se,5*6e4),K=()=>{document.visibilityState==="visible"&&se()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(V),document.removeEventListener("visibilitychange",K)}},[se]),I.useEffect(()=>{D&&se()},[D,se]);const ae=(k==null?void 0:k.notice)??null,pe=ae?`${ae.kind}:${ae.to}`:"",ge=ae!=null&&oe!==pe,Ae=I.useCallback(()=>{if(!ae)return;const V=oe===pe?"":pe;$(V);try{window.localStorage.setItem(Lk,V)}catch{}},[ae,pe,oe]),Oe=((ao=k==null?void 0:k.upgrade)==null?void 0:ao.state)??"idle",Me=I.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}se()},[se]);I.useEffect(()=>{if(Oe!=="running")return;const V=window.setInterval(se,3e3);return()=>window.clearInterval(V)},[Oe,se]);const Pe=I.useCallback(async()=>{var ue;const V=k==null?void 0:k.command;if(!V)return;let K=!1;try{K=await Promise.race([((ue=navigator.clipboard)==null?void 0:ue.writeText(V).then(()=>!0))??Promise.resolve(!1),new Promise(fe=>window.setTimeout(()=>fe(!1),500))])}catch{K=!1}if(!K)try{const fe=document.createElement("textarea");fe.value=V,fe.setAttribute("readonly",""),fe.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(fe),fe.select(),K=document.execCommand("copy"),fe.remove()}catch{K=!1}K&&(ee(!0),window.setTimeout(()=>ee(!1),1600))},[k==null?void 0:k.command]),ke=I.useCallback(()=>{N(V=>(V||R(!1),!V))},[]),We=I.useCallback(()=>{R(V=>(V||N(!1),!V))},[]),[ve,ye]=I.useState(!1),[Ge,ut]=I.useState(0),it=I.useRef(null),[Ke,$e]=I.useState(!1),Qe=I.useRef(null),[bt,ct]=I.useState(0),[pt,mt]=I.useState(!1),kt=I.useRef([]),[He,Je]=I.useState(Date.now()),[dt,gt]=I.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Dk)!=="0"}catch{return!0}}),yt=I.useCallback(()=>{gt(V=>{const K=!V;try{window.localStorage.setItem(Dk,K?"1":"0")}catch{}return K})},[]),[Gt,Pt]=I.useState(!1),[zt,Ln]=I.useState("restart"),[er,bn]=I.useState(null),Bt=I.useRef(!1),Jt=I.useCallback(async V=>{if(Bt.current)return;const K=(V==null?void 0:V.upgrade)===!0;Bt.current=!0,Ln(K?"npx":"restart"),Pt(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ae==null?void 0:ae.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:K})})}catch{}window.setTimeout(()=>{if(Bt.current){Bt.current=!1,Pt(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[ae==null?void 0:ae.to]),hn=I.useRef(null);I.useEffect(()=>{let V=!1;for(const ue of n.current.agents.values())if(ue.state==="active"){V=!0;break}const K=X3({enabled:dt,kind:ae==null?void 0:ae.kind,canRestart:(k==null?void 0:k.canRestart)===!0,busy:V,idleSince:hn.current,now:He});hn.current=K.idleSince,K.restart&&Jt()},[dt,ae==null?void 0:ae.kind,k==null?void 0:k.canRestart,He,Jt]),I.useEffect(()=>{let V=null;try{V=window.sessionStorage.getItem(Fk)}catch{return}if(Y3({bundle:"1.33.22",running:k==null?void 0:k.running,lastTried:V})){try{window.sessionStorage.setItem(Fk,(k==null?void 0:k.running)??"")}catch{return}window.location.reload()}},[k==null?void 0:k.running]),I.useEffect(()=>{const V=k==null?void 0:k.running;if(!V)return;let K=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending")}catch{return}if(K==null||K&&K!==V)return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Bt.current=!1,Pt(!1),bn(V);const ue=window.setTimeout(()=>bn(null),6e3);return()=>window.clearTimeout(ue)},[k==null?void 0:k.running]);const $r=I.useRef(V$()).current;I.useRef(!1);const Rt=I.useRef(new Map($r.positions.filter(([V])=>$r.pins.includes(V)))),hr=I.useRef(null),pr=I.useState(()=>W$())[0],[pn,wi]=I.useState(""),[tr,xi]=I.useState(()=>new Set),[mn,rs]=I.useState(()=>typeof window>"u"?"dark":window.localStorage.getItem("agent-dag.theme")??"dark"),[nr,Dr]=I.useState(!1),mr=I.useRef(null);I.useEffect(()=>{document.documentElement.dataset.theme=mn;try{window.localStorage.setItem("agent-dag.theme",mn)}catch{}},[mn]),I.useEffect(()=>{if(!pr)return;const V=window.setTimeout(()=>{try{e.setViewport(pr,{duration:0})}catch{}},60);return()=>window.clearTimeout(V)},[e,pr]);const Fr=I.useRef(!0),Ot=I.useRef(null);I.useEffect(()=>{const V=new EventSource("/events");return V.addEventListener("open",()=>{G(!0),Dr(!0)}),V.addEventListener("error",()=>G(!1)),V.addEventListener("replay-end",()=>{Fr.current=!1,Ot.current!=null&&(window.clearTimeout(Ot.current),Ot.current=null),s()}),V.addEventListener("hook",K=>{try{const ue=JSON.parse(K.data);if(pt){kt.current.push(ue);return}n.current=Xw(n.current,ue),ue.replay===!0||Fr.current||Date.now()-ue.receivedAt>3e4?(Ot.current!=null&&window.clearTimeout(Ot.current),Ot.current=window.setTimeout(()=>{Ot.current=null,s()},120)):(Ot.current!=null&&(window.clearTimeout(Ot.current),Ot.current=null),s())}catch{}}),()=>{V.close(),Ot.current!=null&&(window.clearTimeout(Ot.current),Ot.current=null)}},[pt,s]),I.useEffect(()=>{if(!pt&&kt.current.length!==0){for(const V of kt.current)n.current=Xw(n.current,V);kt.current.length=0,s()}},[pt,s]),I.useEffect(()=>{const V=setInterval(()=>{const K=Date.now();Je(K);let ue=wP(n.current,K,I$);vP(n.current,K,M$,P$)&&(ue=!0),yP(n.current,K,O$,q$)&&(ue=!0),ue&&s()},250);return()=>clearInterval(V)},[s]);const _i=I.useRef(null),$n=I.useRef(0),Dn=420,Kt=I.useCallback((V=500)=>{try{const we=document.querySelector(".canvas-wrap"),Ie=Array.from(document.querySelectorAll(".react-flow__node")).filter(xt=>xt.offsetWidth>0);if(!we||Ie.length===0)return;const Fe=we.getBoundingClientRect(),De=e.getViewport();if(!Number.isFinite(De.zoom)||De.zoom<=0)return;const Ye=xt=>(xt-Fe.left-De.x)/De.zoom,Ze=xt=>(xt-Fe.top-De.y)/De.zoom,yn=Ie.map(xt=>xt.getBoundingClientRect()),sr=Math.min(...yn.map(xt=>Ye(xt.left))),Kr=Math.max(...yn.map(xt=>Ye(xt.right))),Yr=Math.min(...yn.map(xt=>Ze(xt.top))),Lt=Math.max(...yn.map(xt=>Ze(xt.bottom))),_r=Kr-sr,Xr=Lt-Yr;if(!(_r>0&&Xr>0))return;const Xt=Math.max(.2,Math.min(1,(Fe.width-160)/(_r+Dn)*.86,(Fe.height-160)/Xr*.86));e.setViewport({x:80-sr*Xt,y:Math.max(80,(Fe.height-Xr*Xt)/2)-Yr*Xt,zoom:Xt},{duration:V}),$n.current=Date.now(),window.setTimeout(()=>{try{const xt={x:80-sr*Xt,y:Math.max(80,(Fe.height-Xr*Xt)/2)-Yr*Xt,zoom:Xt},us=e.getViewport();(Math.abs(us.zoom-Xt)>.01||Math.abs(us.x-xt.x)>2)&&e.setViewport(xt,{duration:0})}catch{}},V+60)}catch{}},[e]),zr=I.useRef(""),Si=I.useRef(null),bi=I.useRef(0),gr=I.useCallback(()=>{bi.current=Date.now()},[]),Br="agent-dag.autoFitDisabled",kn=I.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Br)==="1"}catch{return!1}})()),[ki,is]=I.useState(kn.current),et=I.useCallback(()=>{if(!kn.current){kn.current=!0,is(!0);try{window.localStorage.setItem(Br,"1")}catch{}}},[]),Qs=I.useCallback(()=>{kn.current=!1,is(!1);try{window.localStorage.removeItem(Br)}catch{}Kt(400)},[e,Kt]);I.useEffect(()=>{const V=setInterval(()=>{if(kn.current||Date.now()-bi.current<800)return;const K=n.current,ue=Date.now(),fe=[];for(const Ye of K.agents.values())Wg(Ye,ue)&&fe.push({id:Ye.id});if(fe.length===0)return;const xe=e.getViewport(),we=window.innerWidth-360,Ie=window.innerHeight-52;let Fe=!1,De=!1;for(const{id:Ye}of fe){const Ze=Fn.current.get(Ye),yn=Rt.current.get(Ye)??Tt.current.get(Ye);if(!Ze||!yn)continue;De=!0;const sr=yn.x*xe.zoom+xe.x,Kr=yn.y*xe.zoom+xe.y,Yr=(yn.x+Ze.width)*xe.zoom+xe.x,Lt=(yn.y+Ze.height)*xe.zoom+xe.y;if(Yr>0&&sr<we&&Lt>0&&Kr<Ie){Fe=!0;break}}De&&!Fe&&Kt(600)},1500);return()=>clearInterval(V)},[e]);const vr=I.useRef(!1),Fn=I.useRef(new Map),yr=I.useRef(0),ss=I.useCallback(V=>{const K=Fn.current;let ue=!1;for(const fe of V.nodeInternals.values()){const xe=fe.width,we=fe.height;if(xe==null||we==null)continue;const Ie=K.get(fe.id);Ie?(Math.abs(Ie.height-we)>4||Math.abs(Ie.width-xe)>4)&&(K.set(fe.id,{width:xe,height:we}),ue=!0):(K.set(fe.id,{width:xe,height:we}),ue=!0)}return ue&&(yr.current+=1),yr.current},[]),Ei=Xe(ss),[wr,en]=I.useState(0);I.useEffect(()=>{let V=0;const K=()=>{const fe=Fn.current;let xe=!1;for(const we of document.querySelectorAll(".react-flow__node[data-id]")){const Ie=we.getAttribute("data-id");if(!Ie)continue;const Fe=we.offsetWidth,De=we.offsetHeight;if(!Fe||!De)continue;const Ye=fe.get(Ie);(!Ye||Math.abs(Ye.width-Fe)>4||Math.abs(Ye.height-De)>4)&&(fe.set(Ie,{width:Fe,height:De}),xe=!0)}xe&&en(we=>we+1)};if(vr.current)return;let ue=0;return document.visibilityState==="hidden"?ue=window.setTimeout(K,32):V=requestAnimationFrame(K),()=>{cancelAnimationFrame(V),window.clearTimeout(ue)}});const Tt=I.useRef(new Map($r.positions)),Yt=I.useRef(""),Ur=I.useMemo(()=>{const V=[];for(const K of n.current.agents.values())Wg(K,He)&&V.push(K.id+(K.parentId?`>${K.parentId}`:""));return V.sort(),`${V.join("|")}#sv${Ei}.${wr}`},[n.current,n.current.lastSeq,He,Ei,wr]),Ni=I.useRef(null);I.useEffect(()=>(Ni.current!=null&&window.clearTimeout(Ni.current),Ni.current=window.setTimeout(()=>{Eg(Tt.current,Rt.current)},1500),()=>{Ni.current!=null&&window.clearTimeout(Ni.current)}),[Ur]),I.useEffect(()=>{if(zr.current===Ur)return;const V=zr.current;if(zr.current=Ur,!V||kn.current)return;Date.now()-$n.current>1200&&Kt(400),_i.current&&window.clearTimeout(_i.current),_i.current=window.setTimeout(()=>{kn.current||Kt(500)},280)},[Ur,e,Kt]);const Zs=I.useMemo(()=>{if(o.size===0)return null;const V=new Set;for(const K of o){const ue=X$(n.current,K);if(ue)for(const fe of ue)V.add(fe)}return V.size>0?V:null},[n.current,n.current.lastSeq,o]),Hr=I.useMemo(()=>N$(n.current,He),[n.current,n.current.lastSeq,He]),Ci=I.useRef(null),[rr,ji]=I.useState({w:0,h:0});I.useEffect(()=>{const V=Ci.current;if(!V||typeof ResizeObserver>"u")return;const K=new ResizeObserver(ue=>{var xe;const fe=(xe=ue[0])==null?void 0:xe.contentRect;fe&&ji(we=>Math.abs(we.w-fe.width)>40||Math.abs(we.h-fe.height)>40?{w:fe.width,h:fe.height}:we)});return K.observe(V),ji({w:V.clientWidth,h:V.clientHeight}),()=>K.disconnect()},[]);const gu=I.useRef(new Map),[fa,Js]=I.useState(!1);I.useEffect(()=>{const V=window.setTimeout(()=>Js(!0),2500);return()=>window.clearTimeout(V)},[]);const[ha,Ri]=I.useState(!1),tn=I.useRef(null),[eo,os]=I.useState(!1),Ve=I.useCallback(()=>{tn.current&&(window.clearTimeout(tn.current),tn.current=null),Ri(!1)},[]),pa=I.useCallback(V=>{V.length!==0&&queueMicrotask(()=>{Ri(!0),tn.current&&window.clearTimeout(tn.current),tn.current=window.setTimeout(()=>Ri(!1),A$+80)})},[]);I.useEffect(()=>()=>{tn.current&&window.clearTimeout(tn.current)},[]);const to=rr.w>0?rr.w*.92:0,as=rr.h>0?rr.h:0,{nodes:gn,edges:ma}=I.useMemo(()=>Q$(n.current,He,to,as,Rt.current,pn,Fn.current,gu.current,pa,fa,eo,Tt.current,Ur,Yt,o,Zs,Hr,S),[n.current,n.current.lastSeq,He,to,as,fa,eo,pn,Ur,o,Zs,Hr,S,Ge]),no=I.useMemo(()=>{const V=new Map;for(const ue of gn){const fe=ue.data;if(!(fe!=null&&fe.sessionId)||fe.exitAt!=null)continue;const xe=ue.width,we=ue.height;if(xe==null||we==null)continue;const Ie=ue.position.x,Fe=ue.position.y,De=Ie+xe,Ye=Fe+we,Ze=V.get(fe.sessionId);Ze?(Ze.minX=Math.min(Ze.minX,Ie),Ze.minY=Math.min(Ze.minY,Fe),Ze.maxX=Math.max(Ze.maxX,De),Ze.maxY=Math.max(Ze.maxY,Ye)):V.set(fe.sessionId,{minX:Ie,minY:Fe,maxX:De,maxY:Ye})}const K=[];for(const[ue,fe]of V){const xe=fe.maxX-fe.minX+Cl*2,we=fe.maxY-fe.minY+Cl*2;K.push({id:`group:${ue}`,type:"sessionGroup",position:{x:fe.minX-Cl,y:fe.minY-Cl},data:{sessionId:ue,w:xe,h:we},width:xe,height:we,style:{width:xe,height:we},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[gn,He]),ro=I.useMemo(()=>{const V=[...no,...gn],K=Qe.current;return!K||K.size===0?V:V.map(ue=>{const fe=K.get(ue.id);return fe?{...ue,position:fe}:ue})},[no,gn,bt]),ls=I.useMemo(()=>{if(!pn)return null;const V=new Set;for(const K of n.current.agents.values())RC(K,pn)&&V.add(K.id);return V},[n.current,n.current.lastSeq,pn]),vn=I.useMemo(()=>{const V=new Set;for(const K of n.current.agents.values())for(const ue of K.tools)V.add(jC(ue.name));return Object.keys(Gg).filter(K=>V.has(K))},[n.current,n.current.lastSeq]);I.useEffect(()=>{if(vn.length<=1){$e(!1);return}let V=0;const K=()=>{const ue=it.current;if(ue&&!document.hidden){const fe=ue.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ie=>Ie.getBoundingClientRect()),we=j$(fe,xe,8);$e(Ie=>Ie===we?Ie:we)}V=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(V)},[vn.length]);const nn=I.useMemo(()=>{const V=new Map;for(const ue of n.current.agents.values())for(const fe of ue.tools){if(!fe.name.startsWith("mcp__"))continue;const xe=fe.name.slice(5),we=xe.indexOf("__"),Ie=we>0?xe.slice(0,we):xe;V.set(Ie,(V.get(Ie)??0)+1)}const K=[];for(const[ue,fe]of V){let xe=5381;for(let we=0;we<ue.length;we++)xe=(xe<<5)+xe^ue.charCodeAt(we);K.push({server:ue,count:fe,hue:Math.abs(xe)%360})}return K.sort((ue,fe)=>fe.count-ue.count),K},[n.current,n.current.lastSeq]),ir=I.useCallback(V=>{xi(K=>{const ue=new Set(K);return ue.has(V)?ue.delete(V):ue.add(V),ue})},[]),wt=u?n.current.agents.get(u):null,Vr=f?Array.from(n.current.agents.values()).flatMap(V=>V.tools).find(V=>V.id===f)??null:null,En=I.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Bg(),Rt.current.clear(),Fn.current.clear(),Tt.current.clear(),Yt.current="",Bk(),g(),s()},[s,g]),io=I.useCallback(()=>{Rt.current.clear(),Tt.current.clear(),Yt.current="",Bk(),s(),window.setTimeout(()=>Kt(500),80)},[s,e,Kt]),so=I.useCallback(()=>Kt(500),[Kt]),xr=I.useCallback(V=>{if(gn.length===0)return;const K=gn.slice().sort((we,Ie)=>we.position.y-Ie.position.y||we.position.x-Ie.position.x),ue=u?K.findIndex(we=>we.id===u):-1;let fe;ue===-1?fe=V===1?0:K.length-1:fe=(ue+V+K.length)%K.length;const xe=K[fe];xe&&(h(xe.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[xe]})}catch{}$n.current=Date.now()},30))},[gn,u,h,e]);I.useEffect(()=>{const V=K=>{var fe,xe;const ue=((fe=K.target)==null?void 0:fe.tagName)==="INPUT";if(K.key==="Escape"){ue?K.target.blur():g();return}if(!ue&&!Q3(K)){if(K.key==="/"){K.preventDefault(),(xe=mr.current)==null||xe.focus();return}K.key===" "&&(K.preventDefault(),mt(we=>!we)),(K.key==="c"||K.key==="C")&&En(),(K.key==="r"||K.key==="R")&&io(),(K.key==="f"||K.key==="F")&&so(),(K.key==="l"||K.key==="L")&&ke(),(K.key==="h"||K.key==="H")&&ye(we=>!we),(K.key==="u"||K.key==="U")&&q(we=>!we),(K.key==="a"||K.key==="A")&&We(),(K.key==="j"||K.key==="J")&&xr(1),(K.key==="k"||K.key==="K")&&xr(-1),(K.key==="t"||K.key==="T")&&rs(we=>we==="dark"?"light":"dark")}};return window.addEventListener("keydown",V),()=>window.removeEventListener("keydown",V)},[En,io,so,g,xr]);const oo=n.current.agents.size,ga=new Set(Array.from(n.current.agents.values()).map(V=>V.sessionId)).size,qt=I.useMemo(()=>{let V=0,K=0,ue=0,fe=0,xe=0,we=0,Ie=0,Fe=0,De=0;for(const Ye of n.current.agents.values()){V+=Ye.usage.inputTokens,K+=Ye.usage.outputTokens,ue+=Ye.usage.cacheReadTokens,fe+=Ye.usage.cacheCreateTokens;const Ze=dn(Ye.usage,Ye.model);xe+=Ze.total,we+=Ze.input,Ie+=Ze.output,Fe+=Ze.cacheRead,De+=Ze.cacheWrite}return{inT:V,outT:K,cacheR:ue,cacheC:fe,sum:V+K,cost:{total:xe,input:we,output:Ie,cacheRead:Fe,cacheWrite:De}}},[n.current,n.current.lastSeq]);return m.jsxs("div",{className:"app",children:[m.jsxs("header",{className:"topbar",children:[m.jsxs("div",{className:"brand",children:[m.jsx("span",{className:"logo"}),"agents-deck",ae?m.jsxs("button",{type:"button",className:"v stale",onClick:Ae,title:ae.kind==="restart"?`Running v${ae.from}; v${ae.to} is installed on disk. Restart to pick it up.`:`Running v${ae.from}; v${ae.to} is on npm.`,children:["v",ae.from,m.jsx("span",{className:"v-dot","aria-hidden":!0})]}):m.jsxs("button",{type:"button",className:"v",onClick:()=>se(!0),title:k!=null&&k.checkDisabled?"Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).":`${k!=null&&k.latest?`npm has v${k.latest}`:"npm not reached yet"}${k!=null&&k.checkedAt?` · checked ${L$(He-k.checkedAt)}`:""} · click to check now`,children:["v",(k==null?void 0:k.running)??"1.33.22"]})]}),wt&&(()=>{const V=dn(wt.usage,wt.model),K=Math.max(0,((wt.endedAt??He)-wt.startedAt)/1e3),ue=wt.state==="active"?Bl(V.total,K):null,fe=o.size-1;return m.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${wt.label}`,onClick:()=>{try{const xe=gn.find(we=>we.id===wt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),$n.current=Date.now()}catch{}},children:[m.jsx("span",{className:`state-pill state-${wt.state}`,children:wt.state==="active"?"live":wt.state}),m.jsx("span",{className:"selected-label",children:wt.label}),V.total>0&&m.jsxs("span",{className:"selected-cost",children:[Be(V.total),ue?m.jsxs("span",{className:"selected-rate",children:[" · ",ue]}):null]}),fe>0&&m.jsxs("span",{className:"selected-extra",children:["+",fe]}),m.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:xe=>{xe.stopPropagation(),g()},children:"×"})]})})(),m.jsxs("div",{className:"actions",children:[m.jsxs("div",{className:"search",children:[m.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),m.jsx("input",{ref:mr,type:"text",placeholder:"Search agents, cwd, tools…",value:pn,onChange:V=>wi(V.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),pn?m.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>wi(""),children:"×"}):m.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),m.jsxs("span",{className:"status",role:"status",children:[m.jsx("span",{className:`pill ${D?"live":"dead"}`,title:D?"Receiving events":"SSE disconnected",children:D?"live":"offline"}),m.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[m.jsx("span",{className:"count",children:ga}),m.jsx("span",{className:"lbl",children:"sessions"})]}),m.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[m.jsx("span",{className:"count",children:oo}),m.jsx("span",{className:"lbl",children:"agents"})]}),m.jsxs("span",{className:"stat",title:"Total hook events received",children:[m.jsx("span",{className:"count",children:n.current.totalEvents}),m.jsx("span",{className:"lbl",children:"events"})]}),qt.sum>0&&m.jsxs("span",{className:"stat",title:`in:${qt.inT.toLocaleString()} out:${qt.outT.toLocaleString()} cache-r:${qt.cacheR.toLocaleString()} cache-c:${qt.cacheC.toLocaleString()}`,children:[m.jsx("span",{className:"count",children:R$(qt.sum)}),m.jsx("span",{className:"lbl",children:"tokens"})]}),nn.length>0&&m.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
60
60
  ${nn.map(V=>` ${V.server}: ${V.count} call${V.count===1?"":"s"}`).join(`
61
61
  `)}`,children:[nn.slice(0,6).map(V=>m.jsx("span",{className:"mcp-dot",style:{background:`hsl(${V.hue} 65% 65%)`}},V.server)),nn.length>6&&m.jsxs("span",{className:"mcp-more",children:["+",nn.length-6]}),m.jsx("span",{className:"lbl",children:"mcp"})]}),qt.cost.total>0&&(()=>{let V=0,K=0;for(const xe of n.current.agents.values()){if(xe.state!=="active")continue;const we=dn(xe.usage,xe.model);V+=we.total,K=Math.max(K,((xe.endedAt??He)-xe.startedAt)/1e3)}const ue=K>0?Bl(V,K):null,fe=`input ${Be(qt.cost.input)} + output ${Be(qt.cost.output)} + cache r ${Be(qt.cost.cacheRead)} + cache w ${Be(qt.cost.cacheWrite)}${ue?`
62
62
  active burn: ${ue}`:""}`;return m.jsxs("span",{className:"stat",title:fe,children:[m.jsx("span",{className:"count",children:Be(qt.cost.total)}),m.jsxs("span",{className:"lbl",children:["cost",ue?` · ${ue}`:""]})]})})()]}),m.jsx("button",{className:`btn ${pt?"warn":""}`,onClick:()=>mt(V=>!V),title:"Pause/resume live updates (Space)",children:pt?`Resume${kt.current.length?` · ${kt.current.length}`:""}`:"Pause"}),m.jsx("button",{className:`btn icon-btn ${O?"primary":""}`,onClick:()=>q(V=>!V),title:`${O?"Hide":"Show"} usage panel (U)`,"aria-label":"Toggle usage panel",children:"$"}),P!==null&&m.jsx("button",{className:`btn icon-btn ${P?"primary":""}`,onClick:V=>{if(V.shiftKey&&U>0){Z(!0),fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"restore"})}).then(()=>fetch("/api/sound-hook")).then(K=>K.ok?K.json():null).then(K=>{K!=null&&K.ok&&(B(K.enabled===!0),ne(K.parked??0))}).catch(()=>{}).finally(()=>Z(!1));return}Q()},disabled:J,title:(P?"Sound on turn finish: on — click to remove the hook":"Sound on turn finish: off — click to add a Stop hook")+(A>0?`