agent-dag 1.33.55 → 1.33.56

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: `+w.message+`
56
56
  */var iw;function pR(){if(iw)return Wc;iw=1;var e=ra(),n=hR();function i(h,f){return h===f&&(h!==0||1/h===1/f)||h!==h&&f!==f}var s=typeof Object.is=="function"?Object.is:i,o=n.useSyncExternalStore,l=e.useRef,u=e.useEffect,c=e.useMemo,p=e.useDebugValue;return Wc.useSyncExternalStoreWithSelector=function(h,f,m,y,x){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(!k){if(k=!0,N=O,O=y(O),x!==void 0&&_.hasValue){var L=_.value;if(x(L,O))return j=L}return j=O}if(L=j,s(N,O))return L;var B=y(O);return x!==void 0&&x(L,B)?(N=O,L):(N=O,j=B)}var k=!1,N,j,P=m===void 0?null:m;return[function(){return b(f())},P===null?void 0:function(){return b(P())}]},[f,m,y,x]);var S=o(h,C[0],C[1]);return u(function(){_.hasValue=!0,_.value=S},[S]),p(S),S},Wc}var sw;function mR(){return sw||(sw=1,Vc.exports=pR()),Vc.exports}var gR=mR();const vR=Kg(gR),yR={},ow=e=>{let n;const i=new Set,s=(f,m)=>{const y=typeof f=="function"?f(n):f;if(!Object.is(y,n)){const x=n;n=m??(typeof y!="object"||y===null)?y:Object.assign({},n,y),i.forEach(C=>C(n,x))}},o=()=>n,p={setState:s,getState:o,getInitialState:()=>h,subscribe:f=>(i.add(f),()=>i.delete(f)),destroy:()=>{(yR?"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."),i.clear()}},h=n=e(s,o,p);return p},wR=e=>e?ow(e):ow,{useDebugValue:xR}=ae,{useSyncExternalStoreWithSelector:_R}=vR,SR=e=>e;function Wk(e,n=SR,i){const s=_R(e.subscribe,e.getState,e.getServerState||e.getInitialState,n,i);return xR(s),s}const aw=(e,n)=>{const i=wR(e),s=(o,l=n)=>Wk(i,o,l);return Object.assign(s,i),s},bR=(e,n)=>e?aw(e,n):aw;function jt(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 i=Object.keys(e);if(i.length!==Object.keys(n).length)return!1;for(const s of i)if(!Object.prototype.hasOwnProperty.call(n,s)||!Object.is(e[s],n[s]))return!1;return!0}var kR={value:()=>{}};function Wl(){for(var e=0,n=arguments.length,i={},s;e<n;++e){if(!(s=arguments[e]+"")||s in i||/[\s.]/.test(s))throw new Error("illegal type: "+s);i[s]=[]}return new Tl(i)}function Tl(e){this._=e}function ER(e,n){return e.trim().split(/^|\s+/).map(function(i){var s="",o=i.indexOf(".");if(o>=0&&(s=i.slice(o+1),i=i.slice(0,o)),i&&!n.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:s}})}Tl.prototype=Wl.prototype={constructor:Tl,on:function(e,n){var i=this._,s=ER(e+"",i),o,l=-1,u=s.length;if(arguments.length<2){for(;++l<u;)if((o=(e=s[l]).type)&&(o=NR(i[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)i[o]=lw(i[o],e.name,n);else if(n==null)for(o in i)i[o]=lw(i[o],e.name,null);return this},copy:function(){var e={},n=this._;for(var i in n)e[i]=n[i].slice();return new Tl(e)},call:function(e,n){if((o=arguments.length-2)>0)for(var i=new Array(o),s=0,o,l;s<o;++s)i[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,i)},apply:function(e,n,i){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,i)}};function NR(e,n){for(var i=0,s=e.length,o;i<s;++i)if((o=e[i]).name===n)return o.value}function lw(e,n,i){for(var s=0,o=e.length;s<o;++s)if(e[s].name===n){e[s]=kR,e=e.slice(0,s).concat(e.slice(s+1));break}return i!=null&&e.push({name:n,value:i}),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 Gl(e){var n=e+="",i=n.indexOf(":");return i>=0&&(n=e.slice(0,i))!=="xmlns"&&(e=e.slice(i+1)),uw.hasOwnProperty(n)?{space:uw[n],local:e}:e}function CR(e){return function(){var n=this.ownerDocument,i=this.namespaceURI;return i===Ng&&n.documentElement.namespaceURI===Ng?n.createElement(e):n.createElementNS(i,e)}}function jR(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Gk(e){var n=Gl(e);return(n.local?jR:CR)(n)}function RR(){}function Xg(e){return e==null?RR:function(){return this.querySelector(e)}}function TR(e){typeof e!="function"&&(e=Xg(e));for(var n=this._groups,i=n.length,s=new Array(i),o=0;o<i;++o)for(var l=n[o],u=l.length,c=s[o]=new Array(u),p,h,f=0;f<u;++f)(p=l[f])&&(h=e.call(p,p.__data__,f,l))&&("__data__"in p&&(h.__data__=p.__data__),c[f]=h);return new wn(s,this._parents)}function AR(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function IR(){return[]}function Yk(e){return e==null?IR:function(){return this.querySelectorAll(e)}}function MR(e){return function(){return AR(e.apply(this,arguments))}}function PR(e){typeof e=="function"?e=MR(e):e=Yk(e);for(var n=this._groups,i=n.length,s=[],o=[],l=0;l<i;++l)for(var u=n[l],c=u.length,p,h=0;h<c;++h)(p=u[h])&&(s.push(e.call(p,p.__data__,h,u)),o.push(p));return new wn(s,o)}function Kk(e){return function(){return this.matches(e)}}function Xk(e){return function(n){return n.matches(e)}}var OR=Array.prototype.find;function qR(e){return function(){return OR.call(this.children,e)}}function LR(){return this.firstElementChild}function $R(e){return this.select(e==null?LR:qR(typeof e=="function"?e:Xk(e)))}var DR=Array.prototype.filter;function FR(){return Array.from(this.children)}function zR(e){return function(){return DR.call(this.children,e)}}function BR(e){return this.selectAll(e==null?FR:zR(typeof e=="function"?e:Xk(e)))}function UR(e){typeof e!="function"&&(e=Kk(e));for(var n=this._groups,i=n.length,s=new Array(i),o=0;o<i;++o)for(var l=n[o],u=l.length,c=s[o]=[],p,h=0;h<u;++h)(p=l[h])&&e.call(p,p.__data__,h,l)&&c.push(p);return new wn(s,this._parents)}function Qk(e){return new Array(e.length)}function HR(){return new wn(this._enter||this._groups.map(Qk),this._parents)}function Pl(e,n){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=n}Pl.prototype={constructor:Pl,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 VR(e){return function(){return e}}function WR(e,n,i,s,o,l){for(var u=0,c,p=n.length,h=l.length;u<h;++u)(c=n[u])?(c.__data__=l[u],s[u]=c):i[u]=new Pl(e,l[u]);for(;u<p;++u)(c=n[u])&&(o[u]=c)}function GR(e,n,i,s,o,l,u){var c,p,h=new Map,f=n.length,m=l.length,y=new Array(f),x;for(c=0;c<f;++c)(p=n[c])&&(y[c]=x=u.call(p,p.__data__,c,n)+"",h.has(x)?o[c]=p:h.set(x,p));for(c=0;c<m;++c)x=u.call(e,l[c],c,l)+"",(p=h.get(x))?(s[c]=p,p.__data__=l[c],h.delete(x)):i[c]=new Pl(e,l[c]);for(c=0;c<f;++c)(p=n[c])&&h.get(y[c])===p&&(o[c]=p)}function YR(e){return e.__data__}function KR(e,n){if(!arguments.length)return Array.from(this,YR);var i=n?GR:WR,s=this._parents,o=this._groups;typeof e!="function"&&(e=VR(e));for(var l=o.length,u=new Array(l),c=new Array(l),p=new Array(l),h=0;h<l;++h){var f=s[h],m=o[h],y=m.length,x=XR(e.call(f,f&&f.__data__,h,s)),C=x.length,_=c[h]=new Array(C),S=u[h]=new Array(C),b=p[h]=new Array(y);i(f,m,_,S,b,x,n);for(var k=0,N=0,j,P;k<C;++k)if(j=_[k]){for(k>=N&&(N=k+1);!(P=S[N])&&++N<C;);j._next=P||null}}return u=new wn(u,s),u._enter=c,u._exit=p,u}function XR(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function QR(){return new wn(this._exit||this._groups.map(Qk),this._parents)}function ZR(e,n,i){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())),i==null?l.remove():i(l),s&&o?s.merge(o).order():o}function JR(e){for(var n=e.selection?e.selection():e,i=this._groups,s=n._groups,o=i.length,l=s.length,u=Math.min(o,l),c=new Array(o),p=0;p<u;++p)for(var h=i[p],f=s[p],m=h.length,y=c[p]=new Array(m),x,C=0;C<m;++C)(x=h[C]||f[C])&&(y[C]=x);for(;p<o;++p)c[p]=i[p];return new wn(c,this._parents)}function eT(){for(var e=this._groups,n=-1,i=e.length;++n<i;)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 tT(e){e||(e=nT);function n(m,y){return m&&y?e(m.__data__,y.__data__):!m-!y}for(var i=this._groups,s=i.length,o=new Array(s),l=0;l<s;++l){for(var u=i[l],c=u.length,p=o[l]=new Array(c),h,f=0;f<c;++f)(h=u[f])&&(p[f]=h);p.sort(n)}return new wn(o,this._parents).order()}function nT(e,n){return e<n?-1:e>n?1:e>=n?0:NaN}function rT(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function iT(){return Array.from(this)}function sT(){for(var e=this._groups,n=0,i=e.length;n<i;++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 oT(){let e=0;for(const n of this)++e;return e}function aT(){return!this.node()}function lT(e){for(var n=this._groups,i=0,s=n.length;i<s;++i)for(var o=n[i],l=0,u=o.length,c;l<u;++l)(c=o[l])&&e.call(c,c.__data__,l,o);return this}function uT(e){return function(){this.removeAttribute(e)}}function cT(e){return function(){this.removeAttributeNS(e.space,e.local)}}function dT(e,n){return function(){this.setAttribute(e,n)}}function fT(e,n){return function(){this.setAttributeNS(e.space,e.local,n)}}function hT(e,n){return function(){var i=n.apply(this,arguments);i==null?this.removeAttribute(e):this.setAttribute(e,i)}}function pT(e,n){return function(){var i=n.apply(this,arguments);i==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,i)}}function mT(e,n){var i=Gl(e);if(arguments.length<2){var s=this.node();return i.local?s.getAttributeNS(i.space,i.local):s.getAttribute(i)}return this.each((n==null?i.local?cT:uT:typeof n=="function"?i.local?pT:hT:i.local?fT:dT)(i,n))}function Zk(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function gT(e){return function(){this.style.removeProperty(e)}}function vT(e,n,i){return function(){this.style.setProperty(e,n,i)}}function yT(e,n,i){return function(){var s=n.apply(this,arguments);s==null?this.style.removeProperty(e):this.style.setProperty(e,s,i)}}function wT(e,n,i){return arguments.length>1?this.each((n==null?gT:typeof n=="function"?yT:vT)(e,n,i??"")):Ks(this.node(),e)}function Ks(e,n){return e.style.getPropertyValue(n)||Zk(e).getComputedStyle(e,null).getPropertyValue(n)}function xT(e){return function(){delete this[e]}}function _T(e,n){return function(){this[e]=n}}function ST(e,n){return function(){var i=n.apply(this,arguments);i==null?delete this[e]:this[e]=i}}function bT(e,n){return arguments.length>1?this.each((n==null?xT:typeof n=="function"?ST:_T)(e,n)):this.node()[e]}function Jk(e){return e.trim().split(/^|\s+/)}function Qg(e){return e.classList||new eE(e)}function eE(e){this._node=e,this._names=Jk(e.getAttribute("class")||"")}eE.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 tE(e,n){for(var i=Qg(e),s=-1,o=n.length;++s<o;)i.add(n[s])}function nE(e,n){for(var i=Qg(e),s=-1,o=n.length;++s<o;)i.remove(n[s])}function kT(e){return function(){tE(this,e)}}function ET(e){return function(){nE(this,e)}}function NT(e,n){return function(){(n.apply(this,arguments)?tE:nE)(this,e)}}function CT(e,n){var i=Jk(e+"");if(arguments.length<2){for(var s=Qg(this.node()),o=-1,l=i.length;++o<l;)if(!s.contains(i[o]))return!1;return!0}return this.each((typeof n=="function"?NT:n?kT:ET)(i,n))}function jT(){this.textContent=""}function RT(e){return function(){this.textContent=e}}function TT(e){return function(){var n=e.apply(this,arguments);this.textContent=n??""}}function AT(e){return arguments.length?this.each(e==null?jT:(typeof e=="function"?TT:RT)(e)):this.node().textContent}function IT(){this.innerHTML=""}function MT(e){return function(){this.innerHTML=e}}function PT(e){return function(){var n=e.apply(this,arguments);this.innerHTML=n??""}}function OT(e){return arguments.length?this.each(e==null?IT:(typeof e=="function"?PT:MT)(e)):this.node().innerHTML}function qT(){this.nextSibling&&this.parentNode.appendChild(this)}function LT(){return this.each(qT)}function $T(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function DT(){return this.each($T)}function FT(e){var n=typeof e=="function"?e:Gk(e);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function zT(){return null}function BT(e,n){var i=typeof e=="function"?e:Gk(e),s=n==null?zT:typeof n=="function"?n:Xg(n);return this.select(function(){return this.insertBefore(i.apply(this,arguments),s.apply(this,arguments)||null)})}function UT(){var e=this.parentNode;e&&e.removeChild(this)}function HT(){return this.each(UT)}function VT(){var e=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function WT(){var e=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function GT(e){return this.select(e?WT:VT)}function YT(e){return arguments.length?this.property("__data__",e):this.node().__data__}function KT(e){return function(n){e.call(this,n,this.__data__)}}function XT(e){return e.trim().split(/^|\s+/).map(function(n){var i="",s=n.indexOf(".");return s>=0&&(i=n.slice(s+1),n=n.slice(0,s)),{type:n,name:i}})}function QT(e){return function(){var n=this.__on;if(n){for(var i=0,s=-1,o=n.length,l;i<o;++i)l=n[i],(!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 ZT(e,n,i){return function(){var s=this.__on,o,l=KT(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=i),o.value=n;return}}this.addEventListener(e.type,l,i),o={type:e.type,name:e.name,value:n,listener:l,options:i},s?s.push(o):this.__on=[o]}}function JT(e,n,i){var s=XT(e+""),o,l=s.length,u;if(arguments.length<2){var c=this.node().__on;if(c){for(var p=0,h=c.length,f;p<h;++p)for(o=0,f=c[p];o<l;++o)if((u=s[o]).type===f.type&&u.name===f.name)return f.value}return}for(c=n?ZT:QT,o=0;o<l;++o)this.each(c(s[o],n,i));return this}function rE(e,n,i){var s=Zk(e),o=s.CustomEvent;typeof o=="function"?o=new o(n,i):(o=s.document.createEvent("Event"),i?(o.initEvent(n,i.bubbles,i.cancelable),o.detail=i.detail):o.initEvent(n,!1,!1)),e.dispatchEvent(o)}function e2(e,n){return function(){return rE(this,e,n)}}function t2(e,n){return function(){return rE(this,e,n.apply(this,arguments))}}function n2(e,n){return this.each((typeof n=="function"?t2:e2)(e,n))}function*r2(){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var s=e[n],o=0,l=s.length,u;o<l;++o)(u=s[o])&&(yield u)}var iE=[null];function wn(e,n){this._groups=e,this._parents=n}function ia(){return new wn([[document.documentElement]],iE)}function i2(){return this}wn.prototype=ia.prototype={constructor:wn,select:TR,selectAll:PR,selectChild:$R,selectChildren:BR,filter:UR,data:KR,enter:HR,exit:QR,join:ZR,merge:JR,selection:i2,order:eT,sort:tT,call:rT,nodes:iT,node:sT,size:oT,empty:aT,each:lT,attr:mT,style:wT,property:bT,classed:CT,text:AT,html:OT,raise:LT,lower:DT,append:FT,insert:BT,remove:HT,clone:GT,datum:YT,on:JT,dispatch:n2,[Symbol.iterator]:r2};function Rn(e){return typeof e=="string"?new wn([[document.querySelector(e)]],[document.documentElement]):new wn([[e]],iE)}function s2(e){let n;for(;n=e.sourceEvent;)e=n;return e}function Hn(e,n){if(e=s2(e),n===void 0&&(n=e.currentTarget),n){var i=n.ownerSVGElement||n;if(i.createSVGPoint){var s=i.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 o2={passive:!1},Yo={capture:!0,passive:!1};function Kc(e){e.stopImmediatePropagation()}function Vs(e){e.preventDefault(),e.stopImmediatePropagation()}function sE(e){var n=e.document.documentElement,i=Rn(e).on("dragstart.drag",Vs,Yo);"onselectstart"in n?i.on("selectstart.drag",Vs,Yo):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function oE(e,n){var i=e.document.documentElement,s=Rn(e).on("dragstart.drag",null);n&&(s.on("click.drag",Vs,Yo),setTimeout(function(){s.on("click.drag",null)},0)),"onselectstart"in i?s.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}const ml=e=>()=>e;function Cg(e,{sourceEvent:n,subject:i,target:s,identifier:o,active:l,x:u,y:c,dx:p,dy:h,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:i,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:p,enumerable:!0,configurable:!0},dy:{value:h,enumerable:!0,configurable:!0},_:{value:f}})}Cg.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function a2(e){return!e.ctrlKey&&!e.button}function l2(){return this.parentNode}function u2(e,n){return n??{x:e.x,y:e.y}}function c2(){return navigator.maxTouchPoints||"ontouchstart"in this}function d2(){var e=a2,n=l2,i=u2,s=c2,o={},l=Wl("start","drag","end"),u=0,c,p,h,f,m=0;function y(j){j.on("mousedown.drag",x).filter(s).on("touchstart.drag",S).on("touchmove.drag",b,o2).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(j,P){if(!(f||!e.call(this,j,P))){var O=N(this,n.call(this,j,P),j,P,"mouse");O&&(Rn(j.view).on("mousemove.drag",C,Yo).on("mouseup.drag",_,Yo),sE(j.view),Kc(j),h=!1,c=j.clientX,p=j.clientY,O("start",j))}}function C(j){if(Vs(j),!h){var P=j.clientX-c,O=j.clientY-p;h=P*P+O*O>m}o.mouse("drag",j)}function _(j){Rn(j.view).on("mousemove.drag mouseup.drag",null),oE(j.view,h),Vs(j),o.mouse("end",j)}function S(j,P){if(e.call(this,j,P)){var O=j.changedTouches,L=n.call(this,j,P),B=O.length,T,M;for(T=0;T<B;++T)(M=N(this,L,j,P,O[T].identifier,O[T]))&&(Kc(j),M("start",j,O[T]))}}function b(j){var P=j.changedTouches,O=P.length,L,B;for(L=0;L<O;++L)(B=o[P[L].identifier])&&(Vs(j),B("drag",j,P[L]))}function k(j){var P=j.changedTouches,O=P.length,L,B;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),L=0;L<O;++L)(B=o[P[L].identifier])&&(Kc(j),B("end",j,P[L]))}function N(j,P,O,L,B,T){var M=l.copy(),q=Hn(T||O,P),Y,X,I;if((I=i.call(j,new Cg("beforestart",{sourceEvent:O,target:y,identifier:B,active:u,x:q[0],y:q[1],dx:0,dy:0,dispatch:M}),L))!=null)return Y=I.x-q[0]||0,X=I.y-q[1]||0,function H(U,ne,J){var F=q,G;switch(U){case"start":o[B]=H,G=u++;break;case"end":delete o[B],--u;case"drag":q=Hn(J||ne,P),G=u;break}M.call(U,j,new Cg(U,{sourceEvent:ne,subject:I,target:y,identifier:B,active:G,x:q[0]+Y,y:q[1]+X,dx:q[0]-F[0],dy:q[1]-F[1],dispatch:M}),L)}}return y.filter=function(j){return arguments.length?(e=typeof j=="function"?j:ml(!!j),y):e},y.container=function(j){return arguments.length?(n=typeof j=="function"?j:ml(j),y):n},y.subject=function(j){return arguments.length?(i=typeof j=="function"?j:ml(j),y):i},y.touchable=function(j){return arguments.length?(s=typeof j=="function"?j:ml(!!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?(m=(j=+j)*j,y):Math.sqrt(m)},y}function Zg(e,n,i){e.prototype=n.prototype=i,i.constructor=e}function aE(e,n){var i=Object.create(e.prototype);for(var s in n)i[s]=n[s];return i}function sa(){}var Ko=.7,Ol=1/Ko,Ws="\\s*([+-]?\\d+)\\s*",Xo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ar="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",f2=/^#([0-9a-f]{3,8})$/,h2=new RegExp(`^rgb\\(${Ws},${Ws},${Ws}\\)$`),p2=new RegExp(`^rgb\\(${ar},${ar},${ar}\\)$`),m2=new RegExp(`^rgba\\(${Ws},${Ws},${Ws},${Xo}\\)$`),g2=new RegExp(`^rgba\\(${ar},${ar},${ar},${Xo}\\)$`),v2=new RegExp(`^hsl\\(${Xo},${ar},${ar}\\)$`),y2=new RegExp(`^hsla\\(${Xo},${ar},${ar},${Xo}\\)$`),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(sa,Qo,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:dw,formatHex:dw,formatHex8:w2,formatHsl:x2,formatRgb:fw,toString:fw});function dw(){return this.rgb().formatHex()}function w2(){return this.rgb().formatHex8()}function x2(){return lE(this).formatHsl()}function fw(){return this.rgb().formatRgb()}function Qo(e){var n,i;return e=(e+"").trim().toLowerCase(),(n=f2.exec(e))?(i=n[1].length,n=parseInt(n[1],16),i===6?hw(n):i===3?new an(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):i===8?gl(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):i===4?gl(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=h2.exec(e))?new an(n[1],n[2],n[3],1):(n=p2.exec(e))?new an(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=m2.exec(e))?gl(n[1],n[2],n[3],n[4]):(n=g2.exec(e))?gl(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=v2.exec(e))?gw(n[1],n[2]/100,n[3]/100,1):(n=y2.exec(e))?gw(n[1],n[2]/100,n[3]/100,n[4]):cw.hasOwnProperty(e)?hw(cw[e]):e==="transparent"?new an(NaN,NaN,NaN,0):null}function hw(e){return new an(e>>16&255,e>>8&255,e&255,1)}function gl(e,n,i,s){return s<=0&&(e=n=i=NaN),new an(e,n,i,s)}function _2(e){return e instanceof sa||(e=Qo(e)),e?(e=e.rgb(),new an(e.r,e.g,e.b,e.opacity)):new an}function jg(e,n,i,s){return arguments.length===1?_2(e):new an(e,n,i,s??1)}function an(e,n,i,s){this.r=+e,this.g=+n,this.b=+i,this.opacity=+s}Zg(an,jg,aE(sa,{brighter(e){return e=e==null?Ol:Math.pow(Ol,e),new an(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ko:Math.pow(Ko,e),new an(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new an(Vi(this.r),Vi(this.g),Vi(this.b),ql(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:S2,formatRgb:mw,toString:mw}));function pw(){return`#${Ui(this.r)}${Ui(this.g)}${Ui(this.b)}`}function S2(){return`#${Ui(this.r)}${Ui(this.g)}${Ui(this.b)}${Ui((isNaN(this.opacity)?1:this.opacity)*255)}`}function mw(){const e=ql(this.opacity);return`${e===1?"rgb(":"rgba("}${Vi(this.r)}, ${Vi(this.g)}, ${Vi(this.b)}${e===1?")":`, ${e})`}`}function ql(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Vi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ui(e){return e=Vi(e),(e<16?"0":"")+e.toString(16)}function gw(e,n,i,s){return s<=0?e=n=i=NaN:i<=0||i>=1?e=n=NaN:n<=0&&(e=NaN),new Vn(e,n,i,s)}function lE(e){if(e instanceof Vn)return new Vn(e.h,e.s,e.l,e.opacity);if(e instanceof sa||(e=Qo(e)),!e)return new Vn;if(e instanceof Vn)return e;e=e.rgb();var n=e.r/255,i=e.g/255,s=e.b/255,o=Math.min(n,i,s),l=Math.max(n,i,s),u=NaN,c=l-o,p=(l+o)/2;return c?(n===l?u=(i-s)/c+(i<s)*6:i===l?u=(s-n)/c+2:u=(n-i)/c+4,c/=p<.5?l+o:2-l-o,u*=60):c=p>0&&p<1?0:u,new Vn(u,c,p,e.opacity)}function b2(e,n,i,s){return arguments.length===1?lE(e):new Vn(e,n,i,s??1)}function Vn(e,n,i,s){this.h=+e,this.s=+n,this.l=+i,this.opacity=+s}Zg(Vn,b2,aE(sa,{brighter(e){return e=e==null?Ol:Math.pow(Ol,e),new Vn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ko:Math.pow(Ko,e),new Vn(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,i=this.l,s=i+(i<.5?i:1-i)*n,o=2*i-s;return new an(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 Vn(vw(this.h),vl(this.s),vl(this.l),ql(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=ql(this.opacity);return`${e===1?"hsl(":"hsla("}${vw(this.h)}, ${vl(this.s)*100}%, ${vl(this.l)*100}%${e===1?")":`, ${e})`}`}}));function vw(e){return e=(e||0)%360,e<0?e+360:e}function vl(e){return Math.max(0,Math.min(1,e||0))}function Xc(e,n,i){return(e<60?n+(i-n)*e/60:e<180?i:e<240?n+(i-n)*(240-e)/60:n)*255}const uE=e=>()=>e;function k2(e,n){return function(i){return e+i*n}}function E2(e,n,i){return e=Math.pow(e,i),n=Math.pow(n,i)-e,i=1/i,function(s){return Math.pow(e+s*n,i)}}function N2(e){return(e=+e)==1?cE:function(n,i){return i-n?E2(n,i,e):uE(isNaN(n)?i:n)}}function cE(e,n){var i=n-e;return i?k2(e,i):uE(isNaN(e)?n:e)}const yw=(function e(n){var i=N2(n);function s(o,l){var u=i((o=jg(o)).r,(l=jg(l)).r),c=i(o.g,l.g),p=i(o.b,l.b),h=cE(o.opacity,l.opacity);return function(f){return o.r=u(f),o.g=c(f),o.b=p(f),o.opacity=h(f),o+""}}return s.gamma=e,s})(1);function ci(e,n){return e=+e,n=+n,function(i){return e*(1-i)+n*i}}var Rg=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qc=new RegExp(Rg.source,"g");function C2(e){return function(){return e}}function j2(e){return function(n){return e(n)+""}}function R2(e,n){var i=Rg.lastIndex=Qc.lastIndex=0,s,o,l,u=-1,c=[],p=[];for(e=e+"",n=n+"";(s=Rg.exec(e))&&(o=Qc.exec(n));)(l=o.index)>i&&(l=n.slice(i,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,p.push({i:u,x:ci(s,o)})),i=Qc.lastIndex;return i<n.length&&(l=n.slice(i),c[u]?c[u]+=l:c[++u]=l),c.length<2?p[0]?j2(p[0].x):C2(n):(n=p.length,function(h){for(var f=0,m;f<n;++f)c[(m=p[f]).i]=m.x(h);return c.join("")})}var ww=180/Math.PI,Tg={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function dE(e,n,i,s,o,l){var u,c,p;return(u=Math.sqrt(e*e+n*n))&&(e/=u,n/=u),(p=e*i+n*s)&&(i-=e*p,s-=n*p),(c=Math.sqrt(i*i+s*s))&&(i/=c,s/=c,p/=c),e*s<n*i&&(e=-e,n=-n,p=-p,u=-u),{translateX:o,translateY:l,rotate:Math.atan2(n,e)*ww,skewX:Math.atan(p)*ww,scaleX:u,scaleY:c}}var yl;function T2(e){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return n.isIdentity?Tg:dE(n.a,n.b,n.c,n.d,n.e,n.f)}function A2(e){return e==null||(yl||(yl=document.createElementNS("http://www.w3.org/2000/svg","g")),yl.setAttribute("transform",e),!(e=yl.transform.baseVal.consolidate()))?Tg:(e=e.matrix,dE(e.a,e.b,e.c,e.d,e.e,e.f))}function fE(e,n,i,s){function o(h){return h.length?h.pop()+" ":""}function l(h,f,m,y,x,C){if(h!==m||f!==y){var _=x.push("translate(",null,n,null,i);C.push({i:_-4,x:ci(h,m)},{i:_-2,x:ci(f,y)})}else(m||y)&&x.push("translate("+m+n+y+i)}function u(h,f,m,y){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),y.push({i:m.push(o(m)+"rotate(",null,s)-2,x:ci(h,f)})):f&&m.push(o(m)+"rotate("+f+s)}function c(h,f,m,y){h!==f?y.push({i:m.push(o(m)+"skewX(",null,s)-2,x:ci(h,f)}):f&&m.push(o(m)+"skewX("+f+s)}function p(h,f,m,y,x,C){if(h!==m||f!==y){var _=x.push(o(x)+"scale(",null,",",null,")");C.push({i:_-4,x:ci(h,m)},{i:_-2,x:ci(f,y)})}else(m!==1||y!==1)&&x.push(o(x)+"scale("+m+","+y+")")}return function(h,f){var m=[],y=[];return h=e(h),f=e(f),l(h.translateX,h.translateY,f.translateX,f.translateY,m,y),u(h.rotate,f.rotate,m,y),c(h.skewX,f.skewX,m,y),p(h.scaleX,h.scaleY,f.scaleX,f.scaleY,m,y),h=f=null,function(x){for(var C=-1,_=y.length,S;++C<_;)m[(S=y[C]).i]=S.x(x);return m.join("")}}}var I2=fE(T2,"px, ","px)","deg)"),M2=fE(A2,", ",")",")"),P2=1e-12;function xw(e){return((e=Math.exp(e))+1/e)/2}function O2(e){return((e=Math.exp(e))-1/e)/2}function q2(e){return((e=Math.exp(2*e))-1)/(e+1)}const L2=(function e(n,i,s){function o(l,u){var c=l[0],p=l[1],h=l[2],f=u[0],m=u[1],y=u[2],x=f-c,C=m-p,_=x*x+C*C,S,b;if(_<P2)b=Math.log(y/h)/n,S=function(L){return[c+L*x,p+L*C,h*Math.exp(n*L*b)]};else{var k=Math.sqrt(_),N=(y*y-h*h+s*_)/(2*h*i*k),j=(y*y-h*h-s*_)/(2*y*i*k),P=Math.log(Math.sqrt(N*N+1)-N),O=Math.log(Math.sqrt(j*j+1)-j);b=(O-P)/n,S=function(L){var B=L*b,T=xw(P),M=h/(i*k)*(T*q2(n*B+P)-O2(P));return[c+M*x,p+M*C,h*T/xw(n*B+P)]}}return S.duration=b*1e3*n/Math.SQRT2,S}return o.rho=function(l){var u=Math.max(.001,+l),c=u*u,p=c*c;return e(u,c,p)},o})(Math.SQRT2,2,4);var Xs=0,Bo=0,Lo=0,hE=1e3,Ll,Uo,$l=0,Yi=0,Yl=0,Zo=typeof performance=="object"&&performance.now?performance:Date,pE=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Jg(){return Yi||(pE($2),Yi=Zo.now()+Yl)}function $2(){Yi=0}function Dl(){this._call=this._time=this._next=null}Dl.prototype=mE.prototype={constructor:Dl,restart:function(e,n,i){if(typeof e!="function")throw new TypeError("callback is not a function");i=(i==null?Jg():+i)+(n==null?0:+n),!this._next&&Uo!==this&&(Uo?Uo._next=this:Ll=this,Uo=this),this._call=e,this._time=i,Ag()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ag())}};function mE(e,n,i){var s=new Dl;return s.restart(e,n,i),s}function D2(){Jg(),++Xs;for(var e=Ll,n;e;)(n=Yi-e._time)>=0&&e._call.call(void 0,n),e=e._next;--Xs}function _w(){Yi=($l=Zo.now())+Yl,Xs=Bo=0;try{D2()}finally{Xs=0,z2(),Yi=0}}function F2(){var e=Zo.now(),n=e-$l;n>hE&&(Yl-=n,$l=e)}function z2(){for(var e,n=Ll,i,s=1/0;n;)n._call?(s>n._time&&(s=n._time),e=n,n=n._next):(i=n._next,n._next=null,n=e?e._next=i:Ll=i);Uo=e,Ag(s)}function Ag(e){if(!Xs){Bo&&(Bo=clearTimeout(Bo));var n=e-Yi;n>24?(e<1/0&&(Bo=setTimeout(_w,e-Zo.now()-Yl)),Lo&&(Lo=clearInterval(Lo))):(Lo||($l=Zo.now(),Lo=setInterval(F2,hE)),Xs=1,pE(_w))}}function Sw(e,n,i){var s=new Dl;return n=n==null?0:+n,s.restart(o=>{s.stop(),e(o+n)},n,i),s}var B2=Wl("start","end","cancel","interrupt"),U2=[],gE=0,bw=1,Ig=2,Al=3,kw=4,Mg=5,Il=6;function Kl(e,n,i,s,o,l){var u=e.__transition;if(!u)e.__transition={};else if(i in u)return;H2(e,i,{name:n,index:s,group:o,on:B2,tween:U2,time:l.time,delay:l.delay,duration:l.duration,ease:l.ease,timer:null,state:gE})}function ev(e,n){var i=Yn(e,n);if(i.state>gE)throw new Error("too late; already scheduled");return i}function lr(e,n){var i=Yn(e,n);if(i.state>Al)throw new Error("too late; already running");return i}function Yn(e,n){var i=e.__transition;if(!i||!(i=i[n]))throw new Error("transition not found");return i}function H2(e,n,i){var s=e.__transition,o;s[n]=i,i.timer=mE(l,0,i.time);function l(h){i.state=bw,i.timer.restart(u,i.delay,i.time),i.delay<=h&&u(h-i.delay)}function u(h){var f,m,y,x;if(i.state!==bw)return p();for(f in s)if(x=s[f],x.name===i.name){if(x.state===Al)return Sw(u);x.state===kw?(x.state=Il,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete s[f]):+f<n&&(x.state=Il,x.timer.stop(),x.on.call("cancel",e,e.__data__,x.index,x.group),delete s[f])}if(Sw(function(){i.state===Al&&(i.state=kw,i.timer.restart(c,i.delay,i.time),c(h))}),i.state=Ig,i.on.call("start",e,e.__data__,i.index,i.group),i.state===Ig){for(i.state=Al,o=new Array(y=i.tween.length),f=0,m=-1;f<y;++f)(x=i.tween[f].value.call(e,e.__data__,i.index,i.group))&&(o[++m]=x);o.length=m+1}}function c(h){for(var f=h<i.duration?i.ease.call(null,h/i.duration):(i.timer.restart(p),i.state=Mg,1),m=-1,y=o.length;++m<y;)o[m].call(e,f);i.state===Mg&&(i.on.call("end",e,e.__data__,i.index,i.group),p())}function p(){i.state=Il,i.timer.stop(),delete s[n];for(var h in s)return;delete e.__transition}}function Ml(e,n){var i=e.__transition,s,o,l=!0,u;if(i){n=n==null?null:n+"";for(u in i){if((s=i[u]).name!==n){l=!1;continue}o=s.state>Ig&&s.state<Mg,s.state=Il,s.timer.stop(),s.on.call(o?"interrupt":"cancel",e,e.__data__,s.index,s.group),delete i[u]}l&&delete e.__transition}}function V2(e){return this.each(function(){Ml(this,e)})}function W2(e,n){var i,s;return function(){var o=lr(this,e),l=o.tween;if(l!==i){s=i=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 G2(e,n,i){var s,o;if(typeof i!="function")throw new Error;return function(){var l=lr(this,e),u=l.tween;if(u!==s){o=(s=u).slice();for(var c={name:n,value:i},p=0,h=o.length;p<h;++p)if(o[p].name===n){o[p]=c;break}p===h&&o.push(c)}l.tween=o}}function Y2(e,n){var i=this._id;if(e+="",arguments.length<2){for(var s=Yn(this.node(),i).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?W2:G2)(i,e,n))}function tv(e,n,i){var s=e._id;return e.each(function(){var o=lr(this,s);(o.value||(o.value={}))[n]=i.apply(this,arguments)}),function(o){return Yn(o,s).value[n]}}function vE(e,n){var i;return(typeof n=="number"?ci:n instanceof Qo?yw:(i=Qo(n))?(n=i,yw):R2)(e,n)}function K2(e){return function(){this.removeAttribute(e)}}function X2(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Q2(e,n,i){var s,o=i+"",l;return function(){var u=this.getAttribute(e);return u===o?null:u===s?l:l=n(s=u,i)}}function Z2(e,n,i){var s,o=i+"",l;return function(){var u=this.getAttributeNS(e.space,e.local);return u===o?null:u===s?l:l=n(s=u,i)}}function J2(e,n,i){var s,o,l;return function(){var u,c=i(this),p;return c==null?void this.removeAttribute(e):(u=this.getAttribute(e),p=c+"",u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c)))}}function eA(e,n,i){var s,o,l;return function(){var u,c=i(this),p;return c==null?void this.removeAttributeNS(e.space,e.local):(u=this.getAttributeNS(e.space,e.local),p=c+"",u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c)))}}function tA(e,n){var i=Gl(e),s=i==="transform"?M2:vE;return this.attrTween(e,typeof n=="function"?(i.local?eA:J2)(i,s,tv(this,"attr."+e,n)):n==null?(i.local?X2:K2)(i):(i.local?Z2:Q2)(i,s,n))}function nA(e,n){return function(i){this.setAttribute(e,n.call(this,i))}}function rA(e,n){return function(i){this.setAttributeNS(e.space,e.local,n.call(this,i))}}function iA(e,n){var i,s;function o(){var l=n.apply(this,arguments);return l!==s&&(i=(s=l)&&rA(e,l)),i}return o._value=n,o}function sA(e,n){var i,s;function o(){var l=n.apply(this,arguments);return l!==s&&(i=(s=l)&&nA(e,l)),i}return o._value=n,o}function oA(e,n){var i="attr."+e;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(n==null)return this.tween(i,null);if(typeof n!="function")throw new Error;var s=Gl(e);return this.tween(i,(s.local?iA:sA)(s,n))}function aA(e,n){return function(){ev(this,e).delay=+n.apply(this,arguments)}}function lA(e,n){return n=+n,function(){ev(this,e).delay=n}}function uA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?aA:lA)(n,e)):Yn(this.node(),n).delay}function cA(e,n){return function(){lr(this,e).duration=+n.apply(this,arguments)}}function dA(e,n){return n=+n,function(){lr(this,e).duration=n}}function fA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?cA:dA)(n,e)):Yn(this.node(),n).duration}function hA(e,n){if(typeof n!="function")throw new Error;return function(){lr(this,e).ease=n}}function pA(e){var n=this._id;return arguments.length?this.each(hA(n,e)):Yn(this.node(),n).ease}function mA(e,n){return function(){var i=n.apply(this,arguments);if(typeof i!="function")throw new Error;lr(this,e).ease=i}}function gA(e){if(typeof e!="function")throw new Error;return this.each(mA(this._id,e))}function vA(e){typeof e!="function"&&(e=Kk(e));for(var n=this._groups,i=n.length,s=new Array(i),o=0;o<i;++o)for(var l=n[o],u=l.length,c=s[o]=[],p,h=0;h<u;++h)(p=l[h])&&e.call(p,p.__data__,h,l)&&c.push(p);return new Ir(s,this._parents,this._name,this._id)}function yA(e){if(e._id!==this._id)throw new Error;for(var n=this._groups,i=e._groups,s=n.length,o=i.length,l=Math.min(s,o),u=new Array(s),c=0;c<l;++c)for(var p=n[c],h=i[c],f=p.length,m=u[c]=new Array(f),y,x=0;x<f;++x)(y=p[x]||h[x])&&(m[x]=y);for(;c<s;++c)u[c]=n[c];return new Ir(u,this._parents,this._name,this._id)}function wA(e){return(e+"").trim().split(/^|\s+/).every(function(n){var i=n.indexOf(".");return i>=0&&(n=n.slice(0,i)),!n||n==="start"})}function xA(e,n,i){var s,o,l=wA(n)?ev:lr;return function(){var u=l(this,e),c=u.on;c!==s&&(o=(s=c).copy()).on(n,i),u.on=o}}function _A(e,n){var i=this._id;return arguments.length<2?Yn(this.node(),i).on.on(e):this.each(xA(i,e,n))}function SA(e){return function(){var n=this.parentNode;for(var i in this.__transition)if(+i!==e)return;n&&n.removeChild(this)}}function bA(){return this.on("end.remove",SA(this._id))}function kA(e){var n=this._name,i=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],p=c.length,h=l[u]=new Array(p),f,m,y=0;y<p;++y)(f=c[y])&&(m=e.call(f,f.__data__,y,c))&&("__data__"in f&&(m.__data__=f.__data__),h[y]=m,Kl(h[y],n,i,y,h,Yn(f,i)));return new Ir(l,this._parents,n,i)}function EA(e){var n=this._name,i=this._id;typeof e!="function"&&(e=Yk(e));for(var s=this._groups,o=s.length,l=[],u=[],c=0;c<o;++c)for(var p=s[c],h=p.length,f,m=0;m<h;++m)if(f=p[m]){for(var y=e.call(f,f.__data__,m,p),x,C=Yn(f,i),_=0,S=y.length;_<S;++_)(x=y[_])&&Kl(x,n,i,_,y,C);l.push(y),u.push(f)}return new Ir(l,u,n,i)}var NA=ia.prototype.constructor;function CA(){return new NA(this._groups,this._parents)}function jA(e,n){var i,s,o;return function(){var l=Ks(this,e),u=(this.style.removeProperty(e),Ks(this,e));return l===u?null:l===i&&u===s?o:o=n(i=l,s=u)}}function yE(e){return function(){this.style.removeProperty(e)}}function RA(e,n,i){var s,o=i+"",l;return function(){var u=Ks(this,e);return u===o?null:u===s?l:l=n(s=u,i)}}function TA(e,n,i){var s,o,l;return function(){var u=Ks(this,e),c=i(this),p=c+"";return c==null&&(p=c=(this.style.removeProperty(e),Ks(this,e))),u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c))}}function AA(e,n){var i,s,o,l="style."+n,u="end."+l,c;return function(){var p=lr(this,e),h=p.on,f=p.value[l]==null?c||(c=yE(n)):void 0;(h!==i||o!==f)&&(s=(i=h).copy()).on(u,o=f),p.on=s}}function IA(e,n,i){var s=(e+="")=="transform"?I2:vE;return n==null?this.styleTween(e,jA(e,s)).on("end.style."+e,yE(e)):typeof n=="function"?this.styleTween(e,TA(e,s,tv(this,"style."+e,n))).each(AA(this._id,e)):this.styleTween(e,RA(e,s,n),i).on("end.style."+e,null)}function MA(e,n,i){return function(s){this.style.setProperty(e,n.call(this,s),i)}}function PA(e,n,i){var s,o;function l(){var u=n.apply(this,arguments);return u!==o&&(s=(o=u)&&MA(e,u,i)),s}return l._value=n,l}function OA(e,n,i){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,PA(e,n,i??""))}function qA(e){return function(){this.textContent=e}}function LA(e){return function(){var n=e(this);this.textContent=n??""}}function $A(e){return this.tween("text",typeof e=="function"?LA(tv(this,"text",e)):qA(e==null?"":e+""))}function DA(e){return function(n){this.textContent=e.call(this,n)}}function FA(e){var n,i;function s(){var o=e.apply(this,arguments);return o!==i&&(n=(i=o)&&DA(o)),n}return s._value=e,s}function zA(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,FA(e))}function BA(){for(var e=this._name,n=this._id,i=wE(),s=this._groups,o=s.length,l=0;l<o;++l)for(var u=s[l],c=u.length,p,h=0;h<c;++h)if(p=u[h]){var f=Yn(p,n);Kl(p,e,i,h,u,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Ir(s,this._parents,e,i)}function UA(){var e,n,i=this,s=i._id,o=i.size();return new Promise(function(l,u){var c={value:u},p={value:function(){--o===0&&l()}};i.each(function(){var h=lr(this,s),f=h.on;f!==e&&(n=(e=f).copy(),n._.cancel.push(c),n._.interrupt.push(c),n._.end.push(p)),h.on=n}),o===0&&l()})}var HA=0;function Ir(e,n,i,s){this._groups=e,this._parents=n,this._name=i,this._id=s}function wE(){return++HA}var jr=ia.prototype;Ir.prototype={constructor:Ir,select:kA,selectAll:EA,selectChild:jr.selectChild,selectChildren:jr.selectChildren,filter:vA,merge:yA,selection:CA,transition:BA,call:jr.call,nodes:jr.nodes,node:jr.node,size:jr.size,empty:jr.empty,each:jr.each,on:_A,attr:tA,attrTween:oA,style:IA,styleTween:OA,text:$A,textTween:zA,remove:bA,tween:Y2,delay:uA,duration:fA,ease:pA,easeVarying:gA,end:UA,[Symbol.iterator]:jr[Symbol.iterator]};function VA(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var WA={time:null,delay:0,duration:250,ease:VA};function GA(e,n){for(var i;!(i=e.__transition)||!(i=i[n]);)if(!(e=e.parentNode))throw new Error(`transition ${n} not found`);return i}function YA(e){var n,i;e instanceof Ir?(n=e._id,e=e._name):(n=wE(),(i=WA).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,p,h=0;h<c;++h)(p=u[h])&&Kl(p,e,n,h,u,i||GA(p,n));return new Ir(s,this._parents,e,n)}ia.prototype.interrupt=V2;ia.prototype.transition=YA;const wl=e=>()=>e;function KA(e,{sourceEvent:n,target:i,transform:s,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},transform:{value:s,enumerable:!0,configurable:!0},_:{value:o}})}function Tr(e,n,i){this.k=e,this.x=n,this.y=i}Tr.prototype={constructor:Tr,scale:function(e){return e===1?this:new Tr(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Tr(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 Ar=new Tr(1,0,0);Tr.prototype;function Zc(e){e.stopImmediatePropagation()}function $o(e){e.preventDefault(),e.stopImmediatePropagation()}function XA(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function QA(){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||Ar}function ZA(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function JA(){return navigator.maxTouchPoints||"ontouchstart"in this}function eI(e,n,i){var s=e.invertX(n[0][0])-i[0][0],o=e.invertX(n[1][0])-i[1][0],l=e.invertY(n[0][1])-i[0][1],u=e.invertY(n[1][1])-i[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 xE(){var e=XA,n=QA,i=eI,s=ZA,o=JA,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,p=L2,h=Wl("start","zoom","end"),f,m,y,x=500,C=150,_=0,S=10;function b(I){I.property("__zoom",Ew).on("wheel.zoom",B,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",M).filter(o).on("touchstart.zoom",q).on("touchmove.zoom",Y).on("touchend.zoom touchcancel.zoom",X).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(I,H,U,ne){var J=I.selection?I.selection():I;J.property("__zoom",Ew),I!==J?P(I,H,U,ne):J.interrupt().each(function(){O(this,arguments).event(ne).start().zoom(null,typeof H=="function"?H.apply(this,arguments):H).end()})},b.scaleBy=function(I,H,U,ne){b.scaleTo(I,function(){var J=this.__zoom.k,F=typeof H=="function"?H.apply(this,arguments):H;return J*F},U,ne)},b.scaleTo=function(I,H,U,ne){b.transform(I,function(){var J=n.apply(this,arguments),F=this.__zoom,G=U==null?j(J):typeof U=="function"?U.apply(this,arguments):U,E=F.invert(G),$=typeof H=="function"?H.apply(this,arguments):H;return i(N(k(F,$),G,E),J,u)},U,ne)},b.translateBy=function(I,H,U,ne){b.transform(I,function(){return i(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(I,H,U,ne,J){b.transform(I,function(){var F=n.apply(this,arguments),G=this.__zoom,E=ne==null?j(F):typeof ne=="function"?ne.apply(this,arguments):ne;return i(Ar.translate(E[0],E[1]).scale(G.k).translate(typeof H=="function"?-H.apply(this,arguments):-H,typeof U=="function"?-U.apply(this,arguments):-U),F,u)},ne,J)};function k(I,H){return H=Math.max(l[0],Math.min(l[1],H)),H===I.k?I:new Tr(H,I.x,I.y)}function N(I,H,U){var ne=H[0]-U[0]*I.k,J=H[1]-U[1]*I.k;return ne===I.x&&J===I.y?I:new Tr(I.k,ne,J)}function j(I){return[(+I[0][0]+ +I[1][0])/2,(+I[0][1]+ +I[1][1])/2]}function P(I,H,U,ne){I.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 J=this,F=arguments,G=O(J,F).event(ne),E=n.apply(J,F),$=U==null?j(E):typeof U=="function"?U.apply(J,F):U,se=Math.max(E[1][0]-E[0][0],E[1][1]-E[0][1]),D=J.__zoom,Q=typeof H=="function"?H.apply(J,F):H,ee=p(D.invert($).concat(se/D.k),Q.invert($).concat(se/Q.k));return function(oe){if(oe===1)oe=Q;else{var le=ee(oe),ge=se/le[2];oe=new Tr(ge,$[0]-le[0]*ge,$[1]-le[1]*ge)}G.zoom(null,oe)}})}function O(I,H,U){return!U&&I.__zooming||new L(I,H)}function L(I,H){this.that=I,this.args=H,this.active=0,this.sourceEvent=null,this.extent=n.apply(I,H),this.taps=0}L.prototype={event:function(I){return I&&(this.sourceEvent=I),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(I,H){return this.mouse&&I!=="mouse"&&(this.mouse[1]=H.invert(this.mouse[0])),this.touch0&&I!=="touch"&&(this.touch0[1]=H.invert(this.touch0[0])),this.touch1&&I!=="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(I){var H=Rn(this.that).datum();h.call(I,this.that,new KA(I,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:h}),H)}};function B(I,...H){if(!e.apply(this,arguments))return;var U=O(this,H).event(I),ne=this.__zoom,J=Math.max(l[0],Math.min(l[1],ne.k*Math.pow(2,s.apply(this,arguments)))),F=Hn(I);if(U.wheel)(U.mouse[0][0]!==F[0]||U.mouse[0][1]!==F[1])&&(U.mouse[1]=ne.invert(U.mouse[0]=F)),clearTimeout(U.wheel);else{if(ne.k===J)return;U.mouse=[F,ne.invert(F)],Ml(this),U.start()}$o(I),U.wheel=setTimeout(G,C),U.zoom("mouse",i(N(k(ne,J),U.mouse[0],U.mouse[1]),U.extent,u));function G(){U.wheel=null,U.end()}}function T(I,...H){if(y||!e.apply(this,arguments))return;var U=I.currentTarget,ne=O(this,H,!0).event(I),J=Rn(I.view).on("mousemove.zoom",$,!0).on("mouseup.zoom",se,!0),F=Hn(I,U),G=I.clientX,E=I.clientY;sE(I.view),Zc(I),ne.mouse=[F,this.__zoom.invert(F)],Ml(this),ne.start();function $(D){if($o(D),!ne.moved){var Q=D.clientX-G,ee=D.clientY-E;ne.moved=Q*Q+ee*ee>_}ne.event(D).zoom("mouse",i(N(ne.that.__zoom,ne.mouse[0]=Hn(D,U),ne.mouse[1]),ne.extent,u))}function se(D){J.on("mousemove.zoom mouseup.zoom",null),oE(D.view,ne.moved),$o(D),ne.event(D).end()}}function M(I,...H){if(e.apply(this,arguments)){var U=this.__zoom,ne=Hn(I.changedTouches?I.changedTouches[0]:I,this),J=U.invert(ne),F=U.k*(I.shiftKey?.5:2),G=i(N(k(U,F),ne,J),n.apply(this,H),u);$o(I),c>0?Rn(this).transition().duration(c).call(P,G,ne,I):Rn(this).call(b.transform,G,ne,I)}}function q(I,...H){if(e.apply(this,arguments)){var U=I.touches,ne=U.length,J=O(this,H,I.changedTouches.length===ne).event(I),F,G,E,$;for(Zc(I),G=0;G<ne;++G)E=U[G],$=Hn(E,this),$=[$,this.__zoom.invert($),E.identifier],J.touch0?!J.touch1&&J.touch0[2]!==$[2]&&(J.touch1=$,J.taps=0):(J.touch0=$,F=!0,J.taps=1+!!f);f&&(f=clearTimeout(f)),F&&(J.taps<2&&(m=$[0],f=setTimeout(function(){f=null},x)),Ml(this),J.start())}}function Y(I,...H){if(this.__zooming){var U=O(this,H).event(I),ne=I.changedTouches,J=ne.length,F,G,E,$;for($o(I),F=0;F<J;++F)G=ne[F],E=Hn(G,this),U.touch0&&U.touch0[2]===G.identifier?U.touch0[0]=E:U.touch1&&U.touch1[2]===G.identifier&&(U.touch1[0]=E);if(G=U.that.__zoom,U.touch1){var se=U.touch0[0],D=U.touch0[1],Q=U.touch1[0],ee=U.touch1[1],oe=(oe=Q[0]-se[0])*oe+(oe=Q[1]-se[1])*oe,le=(le=ee[0]-D[0])*le+(le=ee[1]-D[1])*le;G=k(G,Math.sqrt(oe/le)),E=[(se[0]+Q[0])/2,(se[1]+Q[1])/2],$=[(D[0]+ee[0])/2,(D[1]+ee[1])/2]}else if(U.touch0)E=U.touch0[0],$=U.touch0[1];else return;U.zoom("touch",i(N(G,E,$),U.extent,u))}}function X(I,...H){if(this.__zooming){var U=O(this,H).event(I),ne=I.changedTouches,J=ne.length,F,G;for(Zc(I),y&&clearTimeout(y),y=setTimeout(function(){y=null},x),F=0;F<J;++F)G=ne[F],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=Hn(G,this),Math.hypot(m[0]-G[0],m[1]-G[1])<S)){var E=Rn(this).on("dblclick.zoom");E&&E.apply(this,arguments)}}}return b.wheelDelta=function(I){return arguments.length?(s=typeof I=="function"?I:wl(+I),b):s},b.filter=function(I){return arguments.length?(e=typeof I=="function"?I:wl(!!I),b):e},b.touchable=function(I){return arguments.length?(o=typeof I=="function"?I:wl(!!I),b):o},b.extent=function(I){return arguments.length?(n=typeof I=="function"?I:wl([[+I[0][0],+I[0][1]],[+I[1][0],+I[1][1]]]),b):n},b.scaleExtent=function(I){return arguments.length?(l[0]=+I[0],l[1]=+I[1],b):[l[0],l[1]]},b.translateExtent=function(I){return arguments.length?(u[0][0]=+I[0][0],u[1][0]=+I[1][0],u[0][1]=+I[0][1],u[1][1]=+I[1][1],b):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},b.constrain=function(I){return arguments.length?(i=I,b):i},b.duration=function(I){return arguments.length?(c=+I,b):c},b.interpolate=function(I){return arguments.length?(p=I,b):p},b.on=function(){var I=h.on.apply(h,arguments);return I===h?b:I},b.clickDistance=function(I){return arguments.length?(_=(I=+I)*I,b):Math.sqrt(_)},b.tapDistance=function(I){return arguments.length?(S=+I,b):S},b}var tI=Vk();const Xl=A.createContext(null),nI=Xl.Provider,Mr={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.`},_E=Mr.error001();function Qe(e,n){const i=A.useContext(Xl);if(i===null)throw new Error(_E);return Wk(i,e,n)}const Rt=()=>{const e=A.useContext(Xl);if(e===null)throw new Error(_E);return A.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},rI=e=>e.userSelectionActive?"none":"all";function nv({position:e,children:n,className:i,style:s,...o}){const l=Qe(rI),u=`${e}`.split("-");return ae.createElement("div",{className:Lt(["react-flow__panel",i,...u]),style:{...s,pointerEvents:l},...o},n)}function iI({proOptions:e,position:n="bottom-right"}){return e!=null&&e.hideAttribution?null:ae.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"},ae.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const sI=({x:e,y:n,label:i,labelStyle:s={},labelShowBg:o=!0,labelBgStyle:l={},labelBgPadding:u=[2,4],labelBgBorderRadius:c=2,children:p,className:h,...f})=>{const m=A.useRef(null),[y,x]=A.useState({x:0,y:0,width:0,height:0}),C=Lt(["react-flow__edge-textwrapper",h]);return A.useEffect(()=>{if(m.current){const _=m.current.getBBox();x({x:_.x,y:_.y,width:_.width,height:_.height})}},[i]),typeof i>"u"||!i?null:ae.createElement("g",{transform:`translate(${e-y.width/2} ${n-y.height/2})`,className:C,visibility:y.width?"visible":"hidden",...f},o&&ae.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}),ae.createElement("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:m,style:s},i),p)};var oI=A.memo(sI);const rv=e=>({width:e.offsetWidth,height:e.offsetHeight}),Qs=(e,n=0,i=1)=>Math.min(Math.max(e,n),i),iv=(e={x:0,y:0},n)=>({x:Qs(e.x,n[0][0],n[1][0]),y:Qs(e.y,n[0][1],n[1][1])}),Nw=(e,n,i)=>e<n?Qs(Math.abs(e-n),1,50)/50:e>i?-Qs(Math.abs(e-i),1,50)/50:0,SE=(e,n)=>{const i=Nw(e.x,35,n.width-35)*20,s=Nw(e.y,35,n.height-35)*20;return[i,s]},bE=e=>{var n;return((n=e.getRootNode)==null?void 0:n.call(e))||(window==null?void 0:window.document)},kE=(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)}),Jo=({x:e,y:n,width:i,height:s})=>({x:e,y:n,x2:e+i,y2:n+s}),EE=({x:e,y:n,x2:i,y2:s})=>({x:e,y:n,width:i-e,height:s-n}),Cw=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),aI=(e,n)=>EE(kE(Jo(e),Jo(n))),Pg=(e,n)=>{const i=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(i*s)},lI=e=>Tn(e.width)&&Tn(e.height)&&Tn(e.x)&&Tn(e.y),Tn=e=>!isNaN(e)&&isFinite(e),mt=Symbol.for("internals"),NE=["Enter"," ","Escape"],uI=(e,n)=>{},cI=e=>"nativeEvent"in e;function Og(e){var o,l;const n=cI(e)?e.nativeEvent:e,i=((l=(o=n.composedPath)==null?void 0:o.call(n))==null?void 0:l[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(i==null?void 0:i.nodeName)||(i==null?void 0:i.hasAttribute("contenteditable"))||!!(i!=null&&i.closest(".nokey"))}const CE=e=>"clientX"in e,hi=(e,n)=>{var l,u;const i=CE(e),s=i?e.clientX:(l=e.touches)==null?void 0:l[0].clientX,o=i?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)}},Fl=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},oa=({id:e,path:n,labelX:i,labelY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x=20})=>ae.createElement(ae.Fragment,null,ae.createElement("path",{id:e,style:f,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:m,markerStart:y}),x&&ae.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:x,className:"react-flow__edge-interaction"}),o&&Tn(i)&&Tn(s)?ae.createElement(oI,{x:i,y:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h}):null);oa.displayName="BaseEdge";function Do(e,n,i){return i===void 0?i:s=>{const o=n().edges.find(l=>l.id===e);o&&i(s,{...o})}}function jE({sourceX:e,sourceY:n,targetX:i,targetY:s}){const o=Math.abs(i-e)/2,l=i<e?i+o:i-o,u=Math.abs(s-n)/2,c=s<n?s+u:s-u;return[l,c,o,u]}function RE({sourceX:e,sourceY:n,targetX:i,targetY:s,sourceControlX:o,sourceControlY:l,targetControlX:u,targetControlY:c}){const p=e*.125+o*.375+u*.375+i*.125,h=n*.125+l*.375+c*.375+s*.125,f=Math.abs(p-e),m=Math.abs(h-n);return[p,h,f,m]}var Ki;(function(e){e.Strict="strict",e.Loose="loose"})(Ki||(Ki={}));var Hi;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Hi||(Hi={}));var ea;(function(e){e.Partial="partial",e.Full="full"})(ea||(ea={}));var fi;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(fi||(fi={}));var zl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(zl||(zl={}));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:i,x2:s,y2:o}){return e===Ce.Left||e===Ce.Right?[.5*(n+s),i]:[n,.5*(i+o)]}function TE({sourceX:e,sourceY:n,sourcePosition:i=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top}){const[u,c]=jw({pos:i,x1:e,y1:n,x2:s,y2:o}),[p,h]=jw({pos:l,x1:s,y1:o,x2:e,y2:n}),[f,m,y,x]=RE({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:u,sourceControlY:c,targetControlX:p,targetControlY:h});return[`M${e},${n} C${u},${c} ${p},${h} ${s},${o}`,f,m,y,x]}const sv=A.memo(({sourceX:e,sourceY:n,targetX:i,targetY:s,sourcePosition:o=Ce.Bottom,targetPosition:l=Ce.Top,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:_})=>{const[S,b,k]=TE({sourceX:e,sourceY:n,sourcePosition:o,targetX:i,targetY:s,targetPosition:l});return ae.createElement(oa,{path:S,labelX:b,labelY:k,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,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}},dI=({source:e,sourcePosition:n=Ce.Bottom,target:i})=>n===Ce.Left||n===Ce.Right?e.x<i.x?{x:1,y:0}:{x:-1,y:0}:e.y<i.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 fI({source:e,sourcePosition:n=Ce.Bottom,target:i,targetPosition:s=Ce.Top,center:o,offset:l}){const u=Rw[n],c=Rw[s],p={x:e.x+u.x*l,y:e.y+u.y*l},h={x:i.x+c.x*l,y:i.y+c.y*l},f=dI({source:p,sourcePosition:n,target:h}),m=f.x!==0?"x":"y",y=f[m];let x=[],C,_;const S={x:0,y:0},b={x:0,y:0},[k,N,j,P]=jE({sourceX:e.x,sourceY:e.y,targetX:i.x,targetY:i.y});if(u[m]*c[m]===-1){C=o.x??k,_=o.y??N;const L=[{x:C,y:p.y},{x:C,y:h.y}],B=[{x:p.x,y:_},{x:h.x,y:_}];u[m]===y?x=m==="x"?L:B:x=m==="x"?B:L}else{const L=[{x:p.x,y:h.y}],B=[{x:h.x,y:p.y}];if(m==="x"?x=u.x===y?B:L:x=u.y===y?L:B,n===s){const X=Math.abs(e[m]-i[m]);if(X<=l){const I=Math.min(l-1,l-X);u[m]===y?S[m]=(p[m]>e[m]?-1:1)*I:b[m]=(h[m]>i[m]?-1:1)*I}}if(n!==s){const X=m==="x"?"y":"x",I=u[m]===c[X],H=p[X]>h[X],U=p[X]<h[X];(u[m]===1&&(!I&&H||I&&U)||u[m]!==1&&(!I&&U||I&&H))&&(x=m==="x"?L:B)}const T={x:p.x+S.x,y:p.y+S.y},M={x:h.x+b.x,y:h.y+b.y},q=Math.max(Math.abs(T.x-x[0].x),Math.abs(M.x-x[0].x)),Y=Math.max(Math.abs(T.y-x[0].y),Math.abs(M.y-x[0].y));q>=Y?(C=(T.x+M.x)/2,_=x[0].y):(C=x[0].x,_=(T.y+M.y)/2)}return[[e,{x:p.x+S.x,y:p.y+S.y},...x,{x:h.x+b.x,y:h.y+b.y},i],C,_,j,P]}function hI(e,n,i,s){const o=Math.min(Tw(e,n)/2,Tw(n,i)/2,s),{x:l,y:u}=n;if(e.x===l&&l===i.x||e.y===u&&u===i.y)return`L${l} ${u}`;if(e.y===u){const h=e.x<i.x?-1:1,f=e.y<i.y?1:-1;return`L ${l+o*h},${u}Q ${l},${u} ${l},${u+o*f}`}const c=e.x<i.x?1:-1,p=e.y<i.y?-1:1;return`L ${l},${u+o*p}Q ${l},${u} ${l+o*c},${u}`}function qg({sourceX:e,sourceY:n,sourcePosition:i=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top,borderRadius:u=5,centerX:c,centerY:p,offset:h=20}){const[f,m,y,x,C]=fI({source:{x:e,y:n},sourcePosition:i,target:{x:s,y:o},targetPosition:l,center:{x:c,y:p},offset:h});return[f.reduce((S,b,k)=>{let N="";return k>0&&k<f.length-1?N=hI(f[k-1],b,f[k+1],u):N=`${k===0?"M":"L"}${b.x} ${b.y}`,S+=N,S},""),m,y,x,C]}const Ql=A.memo(({sourceX:e,sourceY:n,targetX:i,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,sourcePosition:m=Ce.Bottom,targetPosition:y=Ce.Top,markerEnd:x,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,k,N]=qg({sourceX:e,sourceY:n,sourcePosition:m,targetX:i,targetY:s,targetPosition:y,borderRadius:_==null?void 0:_.borderRadius,offset:_==null?void 0:_.offset});return ae.createElement(oa,{path:b,labelX:k,labelY:N,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:x,markerStart:C,interactionWidth:S})});Ql.displayName="SmoothStepEdge";const ov=A.memo(e=>{var n;return ae.createElement(Ql,{...e,pathOptions:A.useMemo(()=>{var i;return{borderRadius:0,offset:(i=e.pathOptions)==null?void 0:i.offset}},[(n=e.pathOptions)==null?void 0:n.offset])})});ov.displayName="StepEdge";function pI({sourceX:e,sourceY:n,targetX:i,targetY:s}){const[o,l,u,c]=jE({sourceX:e,sourceY:n,targetX:i,targetY:s});return[`M ${e},${n}L ${i},${s}`,o,l,u,c]}const av=A.memo(({sourceX:e,sourceY:n,targetX:i,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x})=>{const[C,_,S]=pI({sourceX:e,sourceY:n,targetX:i,targetY:s});return ae.createElement(oa,{path:C,labelX:_,labelY:S,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x})});av.displayName="StraightEdge";function xl(e,n){return e>=0?.5*e:n*25*Math.sqrt(-e)}function Aw({pos:e,x1:n,y1:i,x2:s,y2:o,c:l}){switch(e){case Ce.Left:return[n-xl(n-s,l),i];case Ce.Right:return[n+xl(s-n,l),i];case Ce.Top:return[n,i-xl(i-o,l)];case Ce.Bottom:return[n,i+xl(o-i,l)]}}function AE({sourceX:e,sourceY:n,sourcePosition:i=Ce.Bottom,targetX:s,targetY:o,targetPosition:l=Ce.Top,curvature:u=.25}){const[c,p]=Aw({pos:i,x1:e,y1:n,x2:s,y2:o,c:u}),[h,f]=Aw({pos:l,x1:s,y1:o,x2:e,y2:n,c:u}),[m,y,x,C]=RE({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:c,sourceControlY:p,targetControlX:h,targetControlY:f});return[`M${e},${n} C${c},${p} ${h},${f} ${s},${o}`,m,y,x,C]}const Bl=A.memo(({sourceX:e,sourceY:n,targetX:i,targetY:s,sourcePosition:o=Ce.Bottom,targetPosition:l=Ce.Top,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,k,N]=AE({sourceX:e,sourceY:n,sourcePosition:o,targetX:i,targetY:s,targetPosition:l,curvature:_==null?void 0:_.curvature});return ae.createElement(oa,{path:b,labelX:k,labelY:N,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:S})});Bl.displayName="BezierEdge";const lv=A.createContext(null),mI=lv.Provider;lv.Consumer;const gI=()=>A.useContext(lv),vI=e=>"id"in e&&"source"in e&&"target"in e,yI=({source:e,sourceHandle:n,target:i,targetHandle:s})=>`reactflow__edge-${e}${n||""}-${i}${s||""}`,Lg=(e,n)=>typeof e>"u"?"":typeof e=="string"?e:`${n?`${n}__`:""}${Object.keys(e).sort().map(s=>`${s}=${e[s]}`).join("&")}`,wI=(e,n)=>n.some(i=>i.source===e.source&&i.target===e.target&&(i.sourceHandle===e.sourceHandle||!i.sourceHandle&&!e.sourceHandle)&&(i.targetHandle===e.targetHandle||!i.targetHandle&&!e.targetHandle)),xI=(e,n)=>{if(!e.source||!e.target)return n;let i;return vI(e)?i={...e}:i={...e,id:yI(e)},wI(i,n)?n:n.concat(i)},$g=({x:e,y:n},[i,s,o],l,[u,c])=>{const p={x:(e-i)/o,y:(n-s)/o};return l?{x:u*Math.round(p.x/u),y:c*Math.round(p.y/c)}:p},IE=({x:e,y:n},[i,s,o])=>({x:e*o+i,y:n*o+s}),Wi=(e,n=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const i=(e.width??0)*n[0],s=(e.height??0)*n[1],o={x:e.position.x-i,y:e.position.y-s};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-i,y:e.positionAbsolute.y-s}:o}},Zl=(e,n=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const i=e.reduce((s,o)=>{const{x:l,y:u}=Wi(o,n).positionAbsolute;return kE(s,Jo({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 EE(i)},ME=(e,n,[i,s,o]=[0,0,1],l=!1,u=!1,c=[0,0])=>{const p={x:(n.x-i)/o,y:(n.y-s)/o,width:n.width/o,height:n.height/o},h=[];return e.forEach(f=>{const{width:m,height:y,selectable:x=!0,hidden:C=!1}=f;if(u&&!x||C)return!1;const{positionAbsolute:_}=Wi(f,c),S={x:_.x,y:_.y,width:m||0,height:y||0},b=Pg(p,S),k=typeof m>"u"||typeof y>"u"||m===null||y===null,N=l&&b>0,j=(m||0)*(y||0);(k||N||b>=j||f.dragging)&&h.push(f)}),h},PE=(e,n)=>{const i=e.map(s=>s.id);return n.filter(s=>i.includes(s.source)||i.includes(s.target))},OE=(e,n,i,s,o,l=.1)=>{const u=n/(e.width*(1+l)),c=i/(e.height*(1+l)),p=Math.min(u,c),h=Qs(p,s,o),f=e.x+e.width/2,m=e.y+e.height/2,y=n/2-f*h,x=i/2-m*h;return{x:y,y:x,zoom:h}},Bi=(e,n=0)=>e.transition().duration(n);function Iw(e,n,i,s){return(n[i]||[]).reduce((o,l)=>{var u,c;return`${e.id}-${l.id}-${i}`!==s&&o.push({id:l.id||null,type:i,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 _I(e,n,i,s,o,l){const{x:u,y:c}=hi(e),h=n.elementsFromPoint(u,c).find(C=>C.classList.contains("react-flow__handle"));if(h){const C=h.getAttribute("data-nodeid");if(C){const _=uv(void 0,h),S=h.getAttribute("data-handleid"),b=l({nodeId:C,id:S,type:_});if(b){const k=o.find(N=>N.nodeId===C&&N.type===_&&N.id===S);return{handle:{id:S,type:_,nodeId:C,x:(k==null?void 0:k.x)||i.x,y:(k==null?void 0:k.y)||i.y},validHandleResult:b}}}}let f=[],m=1/0;if(o.forEach(C=>{const _=Math.sqrt((C.x-i.x)**2+(C.y-i.y)**2);if(_<=s){const S=l(C);_<=m&&(_<m?f=[{handle:C,validHandleResult:S}]:_===m&&f.push({handle:C,validHandleResult:S}),m=_)}}),!f.length)return{handle:null,validHandleResult:qE()};if(f.length===1)return f[0];const y=f.some(({validHandleResult:C})=>C.isValid),x=f.some(({handle:C})=>C.type==="target");return f.find(({handle:C,validHandleResult:_})=>x?C.type==="target":y?_.isValid:!0)||f[0]}const SI={source:null,target:null,sourceHandle:null,targetHandle:null},qE=()=>({handleDomNode:null,isValid:!1,connection:SI,endHandle:null});function LE(e,n,i,s,o,l,u){const c=o==="target",p=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}"]`),h={...qE(),handleDomNode:p};if(p){const f=uv(void 0,p),m=p.getAttribute("data-nodeid"),y=p.getAttribute("data-handleid"),x=p.classList.contains("connectable"),C=p.classList.contains("connectableend"),_={source:c?m:i,sourceHandle:c?y:s,target:c?i:m,targetHandle:c?s:y};h.connection=_,x&&C&&(n===Ki.Strict?c&&f==="source"||!c&&f==="target":m!==i||y!==s)&&(h.endHandle={nodeId:m,handleId:y,type:f},h.isValid=l(_))}return h}function bI({nodes:e,nodeId:n,handleId:i,handleType:s}){return e.reduce((o,l)=>{if(l[mt]){const{handleBounds:u}=l[mt];let c=[],p=[];u&&(c=Iw(l,u,"source",`${n}-${i}-${s}`),p=Iw(l,u,"target",`${n}-${i}-${s}`)),o.push(...c,...p)}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 kI(e,n){let i=null;return n?i="valid":e&&!n&&(i="invalid"),i}function $E({event:e,handleId:n,nodeId:i,onConnect:s,isTarget:o,getState:l,setState:u,isValidConnection:c,edgeUpdaterType:p,onReconnectEnd:h}){const f=bE(e.target),{connectionMode:m,domNode:y,autoPanOnConnect:x,connectionRadius:C,onConnectStart:_,panBy:S,getNodes:b,cancelConnection:k}=l();let N=0,j;const{x:P,y:O}=hi(e),L=f==null?void 0:f.elementFromPoint(P,O),B=uv(p,L),T=y==null?void 0:y.getBoundingClientRect();if(!T||!B)return;let M,q=hi(e,T),Y=!1,X=null,I=!1,H=null;const U=bI({nodes:b(),nodeId:i,handleId:n,handleType:B}),ne=()=>{if(!x)return;const[G,E]=SE(q,T);S({x:G,y:E}),N=requestAnimationFrame(ne)};u({connectionPosition:q,connectionStatus:null,connectionNodeId:i,connectionHandleId:n,connectionHandleType:B,connectionStartHandle:{nodeId:i,handleId:n,type:B},connectionEndHandle:null}),_==null||_(e,{nodeId:i,handleId:n,handleType:B});function J(G){const{transform:E}=l();q=hi(G,T);const{handle:$,validHandleResult:se}=_I(G,f,$g(q,E,!1,[1,1]),C,U,D=>LE(D,m,i,n,o?"target":"source",c,f));if(j=$,Y||(ne(),Y=!0),H=se.handleDomNode,X=se.connection,I=se.isValid,u({connectionPosition:j&&I?IE({x:j.x,y:j.y},E):q,connectionStatus:kI(!!j,I),connectionEndHandle:se.endHandle}),!j&&!I&&!H)return Jc(M);X.source!==X.target&&H&&(Jc(M),M=H,H.classList.add("connecting","react-flow__handle-connecting"),H.classList.toggle("valid",I),H.classList.toggle("react-flow__handle-valid",I))}function F(G){var E,$;(j||H)&&X&&I&&(s==null||s(X)),($=(E=l()).onConnectEnd)==null||$.call(E,G),p&&(h==null||h(G)),Jc(M),k(),cancelAnimationFrame(N),Y=!1,I=!1,X=null,H=null,f.removeEventListener("mousemove",J),f.removeEventListener("mouseup",F),f.removeEventListener("touchmove",J),f.removeEventListener("touchend",F)}f.addEventListener("mousemove",J),f.addEventListener("mouseup",F),f.addEventListener("touchmove",J),f.addEventListener("touchend",F)}const Mw=()=>!0,EI=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),NI=(e,n,i)=>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)===i||(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.handleId)===n&&(l==null?void 0:l.type)===i,clickConnecting:(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.handleId)===n&&(u==null?void 0:u.type)===i}},DE=A.forwardRef(({type:e="source",position:n=Ce.Top,isValidConnection:i,isConnectable:s=!0,isConnectableStart:o=!0,isConnectableEnd:l=!0,id:u,onConnect:c,children:p,className:h,onMouseDown:f,onTouchStart:m,...y},x)=>{var T,M;const C=u||null,_=e==="target",S=Rt(),b=gI(),{connectOnClick:k,noPanClassName:N}=Qe(EI,jt),{connecting:j,clickConnecting:P}=Qe(NI(b,C,e),jt);b||(M=(T=S.getState()).onError)==null||M.call(T,"010",Mr.error010());const O=q=>{const{defaultEdgeOptions:Y,onConnect:X,hasDefaultEdges:I}=S.getState(),H={...Y,...q};if(I){const{edges:U,setEdges:ne}=S.getState();ne(xI(H,U))}X==null||X(H),c==null||c(H)},L=q=>{if(!b)return;const Y=CE(q);o&&(Y&&q.button===0||!Y)&&$E({event:q,handleId:C,nodeId:b,onConnect:O,isTarget:_,getState:S.getState,setState:S.setState,isValidConnection:i||S.getState().isValidConnection||Mw}),Y?f==null||f(q):m==null||m(q)},B=q=>{const{onClickConnectStart:Y,onClickConnectEnd:X,connectionClickStartHandle:I,connectionMode:H,isValidConnection:U}=S.getState();if(!b||!I&&!o)return;if(!I){Y==null||Y(q,{nodeId:b,handleId:C,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:b,type:e,handleId:C}});return}const ne=bE(q.target),J=i||U||Mw,{connection:F,isValid:G}=LE({nodeId:b,id:C,type:e},H,I.nodeId,I.handleId||null,I.type,J,ne);G&&O(F),X==null||X(q),S.setState({connectionClickStartHandle:null})};return ae.createElement("div",{"data-handleid":C,"data-nodeid":b,"data-handlepos":n,"data-id":`${b}-${C}-${e}`,className:Lt(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",N,h,{source:!_,target:_,connectable:s,connectablestart:o,connectableend:l,connecting:P,connectionindicator:s&&(o&&!j||l&&j)}]),onMouseDown:L,onTouchStart:L,onClick:k?B:void 0,ref:x,...y},p)});DE.displayName="Handle";var Zs=A.memo(DE);const FE=({data:e,isConnectable:n,targetPosition:i=Ce.Top,sourcePosition:s=Ce.Bottom})=>ae.createElement(ae.Fragment,null,ae.createElement(Zs,{type:"target",position:i,isConnectable:n}),e==null?void 0:e.label,ae.createElement(Zs,{type:"source",position:s,isConnectable:n}));FE.displayName="DefaultNode";var Dg=A.memo(FE);const zE=({data:e,isConnectable:n,sourcePosition:i=Ce.Bottom})=>ae.createElement(ae.Fragment,null,e==null?void 0:e.label,ae.createElement(Zs,{type:"source",position:i,isConnectable:n}));zE.displayName="InputNode";var BE=A.memo(zE);const UE=({data:e,isConnectable:n,targetPosition:i=Ce.Top})=>ae.createElement(ae.Fragment,null,ae.createElement(Zs,{type:"target",position:i,isConnectable:n}),e==null?void 0:e.label);UE.displayName="OutputNode";var HE=A.memo(UE);const cv=()=>null;cv.displayName="GroupNode";const CI=e=>({selectedNodes:e.getNodes().filter(n=>n.selected),selectedEdges:e.edges.filter(n=>n.selected).map(n=>({...n}))}),_l=e=>e.id;function jI(e,n){return jt(e.selectedNodes.map(_l),n.selectedNodes.map(_l))&&jt(e.selectedEdges.map(_l),n.selectedEdges.map(_l))}const VE=A.memo(({onSelectionChange:e})=>{const n=Rt(),{selectedNodes:i,selectedEdges:s}=Qe(CI,jI);return A.useEffect(()=>{const o={nodes:i,edges:s};e==null||e(o),n.getState().onSelectionChange.forEach(l=>l(o))},[i,s,e]),null});VE.displayName="SelectionListener";const RI=e=>!!e.onSelectionChange;function TI({onSelectionChange:e}){const n=Qe(RI);return e||n?ae.createElement(VE,{onSelectionChange:e}):null}const AI=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 qs(e,n){A.useEffect(()=>{typeof e<"u"&&n(e)},[e])}function Le(e,n,i){A.useEffect(()=>{typeof n<"u"&&i({[e]:n})},[n])}const II=({nodes:e,edges:n,defaultNodes:i,defaultEdges:s,onConnect:o,onConnectStart:l,onConnectEnd:u,onClickConnectStart:c,onClickConnectEnd:p,nodesDraggable:h,nodesConnectable:f,nodesFocusable:m,edgesFocusable:y,edgesUpdatable:x,elevateNodesOnSelect:C,minZoom:_,maxZoom:S,nodeExtent:b,onNodesChange:k,onEdgesChange:N,elementsSelectable:j,connectionMode:P,snapGrid:O,snapToGrid:L,translateExtent:B,connectOnClick:T,defaultEdgeOptions:M,fitView:q,fitViewOptions:Y,onNodesDelete:X,onEdgesDelete:I,onNodeDrag:H,onNodeDragStart:U,onNodeDragStop:ne,onSelectionDrag:J,onSelectionDragStart:F,onSelectionDragStop:G,noPanClassName:E,nodeOrigin:$,rfId:se,autoPanOnConnect:D,autoPanOnNodeDrag:Q,onError:ee,connectionRadius:oe,isValidConnection:le,nodeDragThreshold:ge})=>{const{setNodes:de,setEdges:Ae,setDefaultNodesAndEdges:He,setMinZoom:Me,setMaxZoom:Te,setTranslateExtent:ke,setNodeExtent:Ke,reset:ye}=Qe(AI,jt),we=Rt();return A.useEffect(()=>{const Ve=s==null?void 0:s.map(ut=>({...ut,...M}));return He(i,Ve),()=>{ye()}},[]),Le("defaultEdgeOptions",M,we.setState),Le("connectionMode",P,we.setState),Le("onConnect",o,we.setState),Le("onConnectStart",l,we.setState),Le("onConnectEnd",u,we.setState),Le("onClickConnectStart",c,we.setState),Le("onClickConnectEnd",p,we.setState),Le("nodesDraggable",h,we.setState),Le("nodesConnectable",f,we.setState),Le("nodesFocusable",m,we.setState),Le("edgesFocusable",y,we.setState),Le("edgesUpdatable",x,we.setState),Le("elementsSelectable",j,we.setState),Le("elevateNodesOnSelect",C,we.setState),Le("snapToGrid",L,we.setState),Le("snapGrid",O,we.setState),Le("onNodesChange",k,we.setState),Le("onEdgesChange",N,we.setState),Le("connectOnClick",T,we.setState),Le("fitViewOnInit",q,we.setState),Le("fitViewOnInitOptions",Y,we.setState),Le("onNodesDelete",X,we.setState),Le("onEdgesDelete",I,we.setState),Le("onNodeDrag",H,we.setState),Le("onNodeDragStart",U,we.setState),Le("onNodeDragStop",ne,we.setState),Le("onSelectionDrag",J,we.setState),Le("onSelectionDragStart",F,we.setState),Le("onSelectionDragStop",G,we.setState),Le("noPanClassName",E,we.setState),Le("nodeOrigin",$,we.setState),Le("rfId",se,we.setState),Le("autoPanOnConnect",D,we.setState),Le("autoPanOnNodeDrag",Q,we.setState),Le("onError",ee,we.setState),Le("connectionRadius",oe,we.setState),Le("isValidConnection",le,we.setState),Le("nodeDragThreshold",ge,we.setState),qs(e,de),qs(n,Ae),qs(_,Me),qs(S,Te),qs(B,ke),qs(b,Ke),null},Pw={display:"none"},MI={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},WE="react-flow__node-desc",GE="react-flow__edge-desc",PI="react-flow__aria-live",OI=e=>e.ariaLiveMessage;function qI({rfId:e}){const n=Qe(OI);return ae.createElement("div",{id:`${PI}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:MI},n)}function LI({rfId:e,disableKeyboardA11y:n}){return ae.createElement(ae.Fragment,null,ae.createElement("div",{id:`${WE}-${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."," "),ae.createElement("div",{id:`${GE}-${e}`,style:Pw},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&ae.createElement(qI,{rfId:e}))}var ta=(e=null,n={actInsideInputWithModifier:!0})=>{const[i,s]=A.useState(!1),o=A.useRef(!1),l=A.useRef(new Set([])),[u,c]=A.useMemo(()=>{if(e!==null){const h=(Array.isArray(e)?e:[e]).filter(m=>typeof m=="string").map(m=>m.split("+")),f=h.reduce((m,y)=>m.concat(...y),[]);return[h,f]}return[[],[]]},[e]);return A.useEffect(()=>{const p=typeof document<"u"?document:null,h=(n==null?void 0:n.target)||p;if(e!==null){const f=x=>{if(o.current=x.ctrlKey||x.metaKey||x.shiftKey,(!o.current||o.current&&!n.actInsideInputWithModifier)&&Og(x))return!1;const _=qw(x.code,c);l.current.add(x[_]),Ow(u,l.current,!1)&&(x.preventDefault(),s(!0))},m=x=>{if((!o.current||o.current&&!n.actInsideInputWithModifier)&&Og(x))return!1;const _=qw(x.code,c);Ow(u,l.current,!0)?(s(!1),l.current.clear()):l.current.delete(x[_]),x.key==="Meta"&&l.current.clear(),o.current=!1},y=()=>{l.current.clear(),s(!1)};return h==null||h.addEventListener("keydown",f),h==null||h.addEventListener("keyup",m),window.addEventListener("blur",y),()=>{h==null||h.removeEventListener("keydown",f),h==null||h.removeEventListener("keyup",m),window.removeEventListener("blur",y)}}},[e,s]),i};function Ow(e,n,i){return e.filter(s=>i||s.length===n.size).some(s=>s.every(o=>n.has(o)))}function qw(e,n){return n.includes(e)?"code":"key"}function YE(e,n,i,s){var c,p;const o=e.parentNode||e.parentId;if(!o)return i;const l=n.get(o),u=Wi(l,s);return YE(l,n,{x:(i.x??0)+u.x,y:(i.y??0)+u.y,z:(((c=l[mt])==null?void 0:c.z)??0)>(i.z??0)?((p=l[mt])==null?void 0:p.z)??0:i.z??0},s)}function KE(e,n,i){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||i!=null&&i[s.id]){const{x:u,y:c,z:p}=YE(s,e,{...s.position,z:((l=s[mt])==null?void 0:l.z)??0},n);s.positionAbsolute={x:u,y:c},s[mt].z=p,i!=null&&i[s.id]&&(s[mt].isParent=!0)}})}function ed(e,n,i,s){const o=new Map,l={},u=s?1e3:0;return e.forEach(c=>{var x;const p=(Tn(c.zIndex)?c.zIndex:0)+(c.selected?u:0),h=n.get(c.id),f={...c,positionAbsolute:{x:c.position.x,y:c.position.y}},m=c.parentNode||c.parentId;m&&(l[m]=!0);const y=(h==null?void 0:h.type)&&(h==null?void 0:h.type)!==c.type;Object.defineProperty(f,mt,{enumerable:!1,value:{handleBounds:y||(x=h==null?void 0:h[mt])==null?void 0:x.handleBounds,z:p}}),o.set(c.id,f)}),KE(o,i,l),o}function XE(e,n={}){const{getNodes:i,width:s,height:o,minZoom:l,maxZoom:u,d3Zoom:c,d3Selection:p,fitViewOnInitDone:h,fitViewOnInit:f,nodeOrigin:m}=e(),y=n.initial&&!h&&f;if(c&&p&&(y||!n.initial)){const C=i().filter(S=>{var k;const b=n.includeHiddenNodes?S.width&&S.height:!S.hidden;return(k=n.nodes)!=null&&k.length?b&&n.nodes.some(N=>N.id===S.id):b}),_=C.every(S=>S.width&&S.height);if(C.length>0&&_){const S=Zl(C,m),{x:b,y:k,zoom:N}=OE(S,s,o,n.minZoom??l,n.maxZoom??u,n.padding??.1),j=Ar.translate(b,k).scale(N);return typeof n.duration=="number"&&n.duration>0?c.transform(Bi(p,n.duration),j):c.transform(p,j),!0}}return!1}function $I(e,n){return e.forEach(i=>{const s=n.get(i.id);s&&n.set(s.id,{...s,[mt]:s[mt],selected:i.selected})}),new Map(n)}function DI(e,n){return n.map(i=>{const s=e.find(o=>o.id===i.id);return s&&(i.selected=s.selected),i})}function Sl({changedNodes:e,changedEdges:n,get:i,set:s}){const{nodeInternals:o,edges:l,onNodesChange:u,onEdgesChange:c,hasDefaultNodes:p,hasDefaultEdges:h}=i();e!=null&&e.length&&(p&&s({nodeInternals:$I(e,o)}),u==null||u(e)),n!=null&&n.length&&(h&&s({edges:DI(n,l)}),c==null||c(n))}const Ls=()=>{},FI={zoomIn:Ls,zoomOut:Ls,zoomTo:Ls,getZoom:()=>1,setViewport:Ls,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Ls,fitBounds:Ls,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},zI=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),BI=()=>{const e=Rt(),{d3Zoom:n,d3Selection:i}=Qe(zI,jt);return A.useMemo(()=>i&&n?{zoomIn:o=>n.scaleBy(Bi(i,o==null?void 0:o.duration),1.2),zoomOut:o=>n.scaleBy(Bi(i,o==null?void 0:o.duration),1/1.2),zoomTo:(o,l)=>n.scaleTo(Bi(i,l==null?void 0:l.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,l)=>{const[u,c,p]=e.getState().transform,h=Ar.translate(o.x??u,o.y??c).scale(o.zoom??p);n.transform(Bi(i,l==null?void 0:l.duration),h)},getViewport:()=>{const[o,l,u]=e.getState().transform;return{x:o,y:l,zoom:u}},fitView:o=>XE(e.getState,o),setCenter:(o,l,u)=>{const{width:c,height:p,maxZoom:h}=e.getState(),f=typeof(u==null?void 0:u.zoom)<"u"?u.zoom:h,m=c/2-o*f,y=p/2-l*f,x=Ar.translate(m,y).scale(f);n.transform(Bi(i,u==null?void 0:u.duration),x)},fitBounds:(o,l)=>{const{width:u,height:c,minZoom:p,maxZoom:h}=e.getState(),{x:f,y:m,zoom:y}=OE(o,u,c,p,h,(l==null?void 0:l.padding)??.1),x=Ar.translate(f,m).scale(y);n.transform(Bi(i,l==null?void 0:l.duration),x)},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:p}=e.getState();if(!p)return o;const{x:h,y:f}=p.getBoundingClientRect(),m={x:o.x-h,y:o.y-f};return $g(m,l,u,c)},flowToScreenPosition:o=>{const{transform:l,domNode:u}=e.getState();if(!u)return o;const{x:c,y:p}=u.getBoundingClientRect(),h=IE(o,l);return{x:h.x+c,y:h.y+p}},viewportInitialized:!0}:FI,[n,i])};function aa(){const e=BI(),n=Rt(),i=A.useCallback(()=>n.getState().getNodes().map(_=>({..._})),[]),s=A.useCallback(_=>n.getState().nodeInternals.get(_),[]),o=A.useCallback(()=>{const{edges:_=[]}=n.getState();return _.map(S=>({...S}))},[]),l=A.useCallback(_=>{const{edges:S=[]}=n.getState();return S.find(b=>b.id===_)},[]),u=A.useCallback(_=>{const{getNodes:S,setNodes:b,hasDefaultNodes:k,onNodesChange:N}=n.getState(),j=S(),P=typeof _=="function"?_(j):_;if(k)b(P);else if(N){const O=P.length===0?j.map(L=>({type:"remove",id:L.id})):P.map(L=>({item:L,type:"reset"}));N(O)}},[]),c=A.useCallback(_=>{const{edges:S=[],setEdges:b,hasDefaultEdges:k,onEdgesChange:N}=n.getState(),j=typeof _=="function"?_(S):_;if(k)b(j);else if(N){const P=j.length===0?S.map(O=>({type:"remove",id:O.id})):j.map(O=>({item:O,type:"reset"}));N(P)}},[]),p=A.useCallback(_=>{const S=Array.isArray(_)?_:[_],{getNodes:b,setNodes:k,hasDefaultNodes:N,onNodesChange:j}=n.getState();if(N){const O=[...b(),...S];k(O)}else if(j){const P=S.map(O=>({item:O,type:"add"}));j(P)}},[]),h=A.useCallback(_=>{const S=Array.isArray(_)?_:[_],{edges:b=[],setEdges:k,hasDefaultEdges:N,onEdgesChange:j}=n.getState();if(N)k([...b,...S]);else if(j){const P=S.map(O=>({item:O,type:"add"}));j(P)}},[]),f=A.useCallback(()=>{const{getNodes:_,edges:S=[],transform:b}=n.getState(),[k,N,j]=b;return{nodes:_().map(P=>({...P})),edges:S.map(P=>({...P})),viewport:{x:k,y:N,zoom:j}}},[]),m=A.useCallback(({nodes:_,edges:S})=>{const{nodeInternals:b,getNodes:k,edges:N,hasDefaultNodes:j,hasDefaultEdges:P,onNodesDelete:O,onEdgesDelete:L,onNodesChange:B,onEdgesChange:T}=n.getState(),M=(_||[]).map(H=>H.id),q=(S||[]).map(H=>H.id),Y=k().reduce((H,U)=>{const ne=U.parentNode||U.parentId,J=!M.includes(U.id)&&ne&&H.find(G=>G.id===ne);return(typeof U.deletable=="boolean"?U.deletable:!0)&&(M.includes(U.id)||J)&&H.push(U),H},[]),X=N.filter(H=>typeof H.deletable=="boolean"?H.deletable:!0),I=X.filter(H=>q.includes(H.id));if(Y||I){const H=PE(Y,X),U=[...I,...H],ne=U.reduce((J,F)=>(J.includes(F.id)||J.push(F.id),J),[]);if((P||j)&&(P&&n.setState({edges:N.filter(J=>!ne.includes(J.id))}),j&&(Y.forEach(J=>{b.delete(J.id)}),n.setState({nodeInternals:new Map(b)}))),ne.length>0&&(L==null||L(U),T&&T(ne.map(J=>({id:J,type:"remove"})))),Y.length>0&&(O==null||O(Y),B)){const J=Y.map(F=>({id:F.id,type:"remove"}));B(J)}}},[]),y=A.useCallback(_=>{const S=lI(_),b=S?null:n.getState().nodeInternals.get(_.id);return!S&&!b?[null,null,S]:[S?_:Cw(b),b,S]},[]),x=A.useCallback((_,S=!0,b)=>{const[k,N,j]=y(_);return k?(b||n.getState().getNodes()).filter(P=>{if(!j&&(P.id===N.id||!P.positionAbsolute))return!1;const O=Cw(P),L=Pg(O,k);return S&&L>0||L>=k.width*k.height}):[]},[]),C=A.useCallback((_,S,b=!0)=>{const[k]=y(_);if(!k)return!1;const N=Pg(k,S);return b&&N>0||N>=k.width*k.height},[]);return A.useMemo(()=>({...e,getNodes:i,getNode:s,getEdges:o,getEdge:l,setNodes:u,setEdges:c,addNodes:p,addEdges:h,toObject:f,deleteElements:m,getIntersectingNodes:x,isNodeIntersecting:C}),[e,i,s,o,l,u,c,p,h,f,m,x,C])}const UI={actInsideInputWithModifier:!1};var HI=({deleteKeyCode:e,multiSelectionKeyCode:n})=>{const i=Rt(),{deleteElements:s}=aa(),o=ta(e,UI),l=ta(n);A.useEffect(()=>{if(o){const{edges:u,getNodes:c}=i.getState(),p=c().filter(f=>f.selected),h=u.filter(f=>f.selected);s({nodes:p,edges:h}),i.setState({nodesSelectionActive:!1})}},[o]),A.useEffect(()=>{i.setState({multiSelectionActive:l})},[l])};function VI(e){const n=Rt();A.useEffect(()=>{let i;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",Mr.error004())),n.setState({width:o.width||500,height:o.height||500})};return s(),window.addEventListener("resize",s),e.current&&(i=new ResizeObserver(()=>s()),i.observe(e.current)),()=>{window.removeEventListener("resize",s),i&&e.current&&i.unobserve(e.current)}},[])}const dv={position:"absolute",width:"100%",height:"100%",top:0,left:0},WI=(e,n)=>e.x!==n.x||e.y!==n.y||e.zoom!==n.k,bl=e=>({x:e.x,y:e.y,zoom:e.k}),$s=(e,n)=>e.target.closest(`.${n}`),Lw=(e,n)=>n===2&&Array.isArray(e)&&e.includes(2),$w=e=>{const n=e.ctrlKey&&Fl()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*n},GI=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),YI=({onMove:e,onMoveStart:n,onMoveEnd:i,onPaneContextMenu:s,zoomOnScroll:o=!0,zoomOnPinch:l=!0,panOnScroll:u=!1,panOnScrollSpeed:c=.5,panOnScrollMode:p=Hi.Free,zoomOnDoubleClick:h=!0,elementsSelectable:f,panOnDrag:m=!0,defaultViewport:y,translateExtent:x,minZoom:C,maxZoom:_,zoomActivationKeyCode:S,preventScrolling:b=!0,children:k,noWheelClassName:N,noPanClassName:j})=>{const P=A.useRef(),O=Rt(),L=A.useRef(!1),B=A.useRef(!1),T=A.useRef(null),M=A.useRef({x:0,y:0,zoom:0}),{d3Zoom:q,d3Selection:Y,d3ZoomHandler:X,userSelectionActive:I}=Qe(GI,jt),H=ta(S),U=A.useRef(0),ne=A.useRef(!1),J=A.useRef();return VI(T),A.useEffect(()=>{if(T.current){const F=T.current.getBoundingClientRect(),G=xE().scaleExtent([C,_]).translateExtent(x),E=Rn(T.current).call(G),$=Ar.translate(y.x,y.y).scale(Qs(y.zoom,C,_)),se=[[0,0],[F.width,F.height]],D=G.constrain()($,se,x);G.transform(E,D),G.wheelDelta($w),O.setState({d3Zoom:G,d3Selection:E,d3ZoomHandler:E.on("wheel.zoom"),transform:[D.x,D.y,D.k],domNode:T.current.closest(".react-flow")})}},[]),A.useEffect(()=>{Y&&q&&(u&&!H&&!I?Y.on("wheel.zoom",F=>{if($s(F,N))return!1;F.preventDefault(),F.stopImmediatePropagation();const G=Y.property("__zoom").k||1;if(F.ctrlKey&&l){const le=Hn(F),ge=$w(F),de=G*Math.pow(2,ge);q.scaleTo(Y,de,le,F);return}const E=F.deltaMode===1?20:1;let $=p===Hi.Vertical?0:F.deltaX*E,se=p===Hi.Horizontal?0:F.deltaY*E;!Fl()&&F.shiftKey&&p!==Hi.Vertical&&($=F.deltaY*E,se=0),q.translateBy(Y,-($/G)*c,-(se/G)*c,{internal:!0});const D=bl(Y.property("__zoom")),{onViewportChangeStart:Q,onViewportChange:ee,onViewportChangeEnd:oe}=O.getState();clearTimeout(J.current),ne.current||(ne.current=!0,n==null||n(F,D),Q==null||Q(D)),ne.current&&(e==null||e(F,D),ee==null||ee(D),J.current=setTimeout(()=>{i==null||i(F,D),oe==null||oe(D),ne.current=!1},150))},{passive:!1}):typeof X<"u"&&Y.on("wheel.zoom",function(F,G){if(!b&&F.type==="wheel"&&!F.ctrlKey||$s(F,N))return null;F.preventDefault(),X.call(this,F,G)},{passive:!1}))},[I,u,p,Y,q,X,H,l,b,N,n,e,i]),A.useEffect(()=>{q&&q.on("start",F=>{var $,se;if(!F.sourceEvent||F.sourceEvent.internal)return null;U.current=($=F.sourceEvent)==null?void 0:$.button;const{onViewportChangeStart:G}=O.getState(),E=bl(F.transform);L.current=!0,M.current=E,((se=F.sourceEvent)==null?void 0:se.type)==="mousedown"&&O.setState({paneDragging:!0}),G==null||G(E),n==null||n(F.sourceEvent,E)})},[q,n]),A.useEffect(()=>{q&&(I&&!L.current?q.on("zoom",null):I||q.on("zoom",F=>{var E;const{onViewportChange:G}=O.getState();if(O.setState({transform:[F.transform.x,F.transform.y,F.transform.k]}),B.current=!!(s&&Lw(m,U.current??0)),(e||G)&&!((E=F.sourceEvent)!=null&&E.internal)){const $=bl(F.transform);G==null||G($),e==null||e(F.sourceEvent,$)}}))},[I,q,e,m,s]),A.useEffect(()=>{q&&q.on("end",F=>{if(!F.sourceEvent||F.sourceEvent.internal)return null;const{onViewportChangeEnd:G}=O.getState();if(L.current=!1,O.setState({paneDragging:!1}),s&&Lw(m,U.current??0)&&!B.current&&s(F.sourceEvent),B.current=!1,(i||G)&&WI(M.current,F.transform)){const E=bl(F.transform);M.current=E,clearTimeout(P.current),P.current=setTimeout(()=>{G==null||G(E),i==null||i(F.sourceEvent,E)},u?150:0)}})},[q,u,m,i,s]),A.useEffect(()=>{q&&q.filter(F=>{const G=H||o,E=l&&F.ctrlKey;if((m===!0||Array.isArray(m)&&m.includes(1))&&F.button===1&&F.type==="mousedown"&&($s(F,"react-flow__node")||$s(F,"react-flow__edge")))return!0;if(!m&&!G&&!u&&!h&&!l||I||!h&&F.type==="dblclick"||$s(F,N)&&F.type==="wheel"||$s(F,j)&&(F.type!=="wheel"||u&&F.type==="wheel"&&!H)||!l&&F.ctrlKey&&F.type==="wheel"||!G&&!u&&!E&&F.type==="wheel"||!m&&(F.type==="mousedown"||F.type==="touchstart")||Array.isArray(m)&&!m.includes(F.button)&&F.type==="mousedown")return!1;const $=Array.isArray(m)&&m.includes(F.button)||!F.button||F.button<=1;return(!F.ctrlKey||F.type==="wheel")&&$})},[I,q,o,l,u,h,m,f,H]),ae.createElement("div",{className:"react-flow__renderer",ref:T,style:dv},k)},KI=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function XI(){const{userSelectionActive:e,userSelectionRect:n}=Qe(KI,jt);return e&&n?ae.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 i=n.parentNode||n.parentId,s=e.find(o=>o.id===i);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 QI(e,n){if(e.some(s=>s.type==="reset"))return e.filter(s=>s.type==="reset").map(s=>s.item);const i=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},i)}function ZI(e,n){return QI(e,n)}const di=(e,n)=>({id:e,type:"select",selected:n});function Bs(e,n){return e.reduce((i,s)=>{const o=n.includes(s.id);return!s.selected&&o?(s.selected=!0,i.push(di(s.id,!0))):s.selected&&!o&&(s.selected=!1,i.push(di(s.id,!1))),i},[])}const td=(e,n)=>i=>{i.target===n.current&&(e==null||e(i))},JI=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),QE=A.memo(({isSelecting:e,selectionMode:n=ea.Full,panOnDrag:i,onSelectionStart:s,onSelectionEnd:o,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:c,onPaneMouseEnter:p,onPaneMouseMove:h,onPaneMouseLeave:f,children:m})=>{const y=A.useRef(null),x=Rt(),C=A.useRef(0),_=A.useRef(0),S=A.useRef(),{userSelectionActive:b,elementsSelectable:k,dragging:N}=Qe(JI,jt),j=()=>{x.setState({userSelectionActive:!1,userSelectionRect:null}),C.current=0,_.current=0},P=X=>{l==null||l(X),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},O=X=>{if(Array.isArray(i)&&(i!=null&&i.includes(2))){X.preventDefault();return}u==null||u(X)},L=c?X=>c(X):void 0,B=X=>{const{resetSelectedElements:I,domNode:H}=x.getState();if(S.current=H==null?void 0:H.getBoundingClientRect(),!k||!e||X.button!==0||X.target!==y.current||!S.current)return;const{x:U,y:ne}=hi(X,S.current);I(),x.setState({userSelectionRect:{width:0,height:0,startX:U,startY:ne,x:U,y:ne}}),s==null||s(X)},T=X=>{const{userSelectionRect:I,nodeInternals:H,edges:U,transform:ne,onNodesChange:J,onEdgesChange:F,nodeOrigin:G,getNodes:E}=x.getState();if(!e||!S.current||!I)return;x.setState({userSelectionActive:!0,nodesSelectionActive:!1});const $=hi(X,S.current),se=I.startX??0,D=I.startY??0,Q={...I,x:$.x<se?$.x:se,y:$.y<D?$.y:D,width:Math.abs($.x-se),height:Math.abs($.y-D)},ee=E(),oe=ME(H,Q,ne,n===ea.Partial,!0,G),le=PE(oe,U).map(de=>de.id),ge=oe.map(de=>de.id);if(C.current!==ge.length){C.current=ge.length;const de=Bs(ee,ge);de.length&&(J==null||J(de))}if(_.current!==le.length){_.current=le.length;const de=Bs(U,le);de.length&&(F==null||F(de))}x.setState({userSelectionRect:Q})},M=X=>{if(X.button!==0)return;const{userSelectionRect:I}=x.getState();!b&&I&&X.target===y.current&&(P==null||P(X)),x.setState({nodesSelectionActive:C.current>0}),j(),o==null||o(X)},q=X=>{b&&(x.setState({nodesSelectionActive:C.current>0}),o==null||o(X)),j()},Y=k&&(e||b);return ae.createElement("div",{className:Lt(["react-flow__pane",{dragging:N,selection:e}]),onClick:Y?void 0:td(P,y),onContextMenu:td(O,y),onWheel:td(L,y),onMouseEnter:Y?void 0:p,onMouseDown:Y?B:void 0,onMouseMove:Y?T:h,onMouseUp:Y?M:void 0,onMouseLeave:Y?q:f,ref:y,style:dv},m,ae.createElement(XI,null))});QE.displayName="Pane";function ZE(e,n){const i=e.parentNode||e.parentId;if(!i)return!1;const s=n.get(i);return s?s.selected?!0:ZE(s,n):!1}function Fw(e,n,i){let s=e;do{if(s!=null&&s.matches(n))return!0;if(s===i.current)return!1;s=s.parentElement}while(s);return!1}function eM(e,n,i,s){return Array.from(e.values()).filter(o=>(o.selected||o.id===s)&&(!o.parentNode||o.parentId||!ZE(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:i.x-(((l=o.positionAbsolute)==null?void 0:l.x)??0),y:i.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 tM(e,n){return!n||n==="parent"?n:[n[0],[n[1][0]-(e.width||0),n[1][1]-(e.height||0)]]}function JE(e,n,i,s,o=[0,0],l){const u=tM(e,e.extent||s);let c=u;const p=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(p&&e.width&&e.height){const m=i.get(p),{x:y,y:x}=Wi(m,o).positionAbsolute;c=m&&Tn(y)&&Tn(x)&&Tn(m.width)&&Tn(m.height)?[[y+e.width*o[0],x+e.height*o[1]],[y+m.width-e.width+e.width*o[0],x+m.height-e.height+e.height*o[1]]]:c}else l==null||l("005",Mr.error005()),c=u;else if(e.extent&&p&&e.extent!=="parent"){const m=i.get(p),{x:y,y:x}=Wi(m,o).positionAbsolute;c=[[e.extent[0][0]+y,e.extent[0][1]+x],[e.extent[1][0]+y,e.extent[1][1]+x]]}let h={x:0,y:0};if(p){const m=i.get(p);h=Wi(m,o).positionAbsolute}const f=c&&c!=="parent"?iv(n,c):n;return{position:{x:f.x-h.x,y:f.y-h.y},positionAbsolute:f}}function nd({nodeId:e,dragItems:n,nodeInternals:i}){const s=n.map(o=>({...i.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?s.find(o=>o.id===e):s[0],s]}const zw=(e,n,i,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(p=>{const h=p.getBoundingClientRect();return{id:p.getAttribute("data-handleid"),position:p.getAttribute("data-handlepos"),x:(h.left-u.left-c.x)/i,y:(h.top-u.top-c.y)/i,...rv(p)}})};function Fo(e,n,i){return i===void 0?i:s=>{const o=n().nodeInternals.get(e);o&&i(s,{...o})}}function Fg({id:e,store:n,unselect:i=!1,nodeRef:s}){const{addSelectedNodes:o,unselectNodesAndEdges:l,multiSelectionActive:u,nodeInternals:c,onError:p}=n.getState(),h=c.get(e);if(!h){p==null||p("012",Mr.error012(e));return}n.setState({nodesSelectionActive:!1}),h.selected?(i||h.selected&&u)&&(l({nodes:[h],edges:[]}),requestAnimationFrame(()=>{var f;return(f=s==null?void 0:s.current)==null?void 0:f.blur()})):o([e])}function nM(){const e=Rt();return A.useCallback(({sourceEvent:i})=>{const{transform:s,snapGrid:o,snapToGrid:l}=e.getState(),u=i.touches?i.touches[0].clientX:i.clientX,c=i.touches?i.touches[0].clientY:i.clientY,p={x:(u-s[0])/s[2],y:(c-s[1])/s[2]};return{xSnapped:l?o[0]*Math.round(p.x/o[0]):p.x,ySnapped:l?o[1]*Math.round(p.y/o[1]):p.y,...p}},[])}function rd(e){return(n,i,s)=>e==null?void 0:e(n,s)}function eN({nodeRef:e,disabled:n=!1,noDragClassName:i,handleSelector:s,nodeId:o,isSelectable:l,selectNodesOnDrag:u}){const c=Rt(),[p,h]=A.useState(!1),f=A.useRef([]),m=A.useRef({x:null,y:null}),y=A.useRef(0),x=A.useRef(null),C=A.useRef({x:0,y:0}),_=A.useRef(null),S=A.useRef(!1),b=A.useRef(!1),k=A.useRef(!1),N=nM();return A.useEffect(()=>{if(e!=null&&e.current){const j=Rn(e.current),P=({x:B,y:T})=>{const{nodeInternals:M,onNodeDrag:q,onSelectionDrag:Y,updateNodePositions:X,nodeExtent:I,snapGrid:H,snapToGrid:U,nodeOrigin:ne,onError:J}=c.getState();m.current={x:B,y:T};let F=!1,G={x:0,y:0,x2:0,y2:0};if(f.current.length>1&&I){const $=Zl(f.current,ne);G=Jo($)}if(f.current=f.current.map($=>{const se={x:B-$.distance.x,y:T-$.distance.y};U&&(se.x=H[0]*Math.round(se.x/H[0]),se.y=H[1]*Math.round(se.y/H[1]));const D=[[I[0][0],I[0][1]],[I[1][0],I[1][1]]];f.current.length>1&&I&&!$.extent&&(D[0][0]=$.positionAbsolute.x-G.x+I[0][0],D[1][0]=$.positionAbsolute.x+($.width??0)-G.x2+I[1][0],D[0][1]=$.positionAbsolute.y-G.y+I[0][1],D[1][1]=$.positionAbsolute.y+($.height??0)-G.y2+I[1][1]);const Q=JE($,se,M,D,ne,J);return F=F||$.position.x!==Q.position.x||$.position.y!==Q.position.y,$.position=Q.position,$.positionAbsolute=Q.positionAbsolute,$}),!F)return;X(f.current,!0,!0),h(!0);const E=o?q:rd(Y);if(E&&_.current){const[$,se]=nd({nodeId:o,dragItems:f.current,nodeInternals:M});E(_.current,$,se)}},O=()=>{if(!x.current)return;const[B,T]=SE(C.current,x.current);if(B!==0||T!==0){const{transform:M,panBy:q}=c.getState();m.current.x=(m.current.x??0)-B/M[2],m.current.y=(m.current.y??0)-T/M[2],q({x:B,y:T})&&P(m.current)}y.current=requestAnimationFrame(O)},L=B=>{var ne;const{nodeInternals:T,multiSelectionActive:M,nodesDraggable:q,unselectNodesAndEdges:Y,onNodeDragStart:X,onSelectionDragStart:I}=c.getState();b.current=!0;const H=o?X:rd(I);(!u||!l)&&!M&&o&&((ne=T.get(o))!=null&&ne.selected||Y()),o&&l&&u&&Fg({id:o,store:c,nodeRef:e});const U=N(B);if(m.current=U,f.current=eM(T,q,U,o),H&&f.current){const[J,F]=nd({nodeId:o,dragItems:f.current,nodeInternals:T});H(B.sourceEvent,J,F)}};if(n)j.on(".drag",null);else{const B=d2().on("start",T=>{const{domNode:M,nodeDragThreshold:q}=c.getState();q===0&&L(T),k.current=!1;const Y=N(T);m.current=Y,x.current=(M==null?void 0:M.getBoundingClientRect())||null,C.current=hi(T.sourceEvent,x.current)}).on("drag",T=>{var X,I;const M=N(T),{autoPanOnNodeDrag:q,nodeDragThreshold:Y}=c.getState();if(T.sourceEvent.type==="touchmove"&&T.sourceEvent.touches.length>1&&(k.current=!0),!k.current){if(!S.current&&b.current&&q&&(S.current=!0,O()),!b.current){const H=M.xSnapped-(((X=m==null?void 0:m.current)==null?void 0:X.x)??0),U=M.ySnapped-(((I=m==null?void 0:m.current)==null?void 0:I.y)??0);Math.sqrt(H*H+U*U)>Y&&L(T)}(m.current.x!==M.xSnapped||m.current.y!==M.ySnapped)&&f.current&&b.current&&(_.current=T.sourceEvent,C.current=hi(T.sourceEvent,x.current),P(M))}}).on("end",T=>{if(!(!b.current||k.current)&&(h(!1),S.current=!1,b.current=!1,cancelAnimationFrame(y.current),f.current)){const{updateNodePositions:M,nodeInternals:q,onNodeDragStop:Y,onSelectionDragStop:X}=c.getState(),I=o?Y:rd(X);if(M(f.current,!1,!1),I){const[H,U]=nd({nodeId:o,dragItems:f.current,nodeInternals:q});I(T.sourceEvent,H,U)}}}).filter(T=>{const M=T.target;return!T.button&&(!i||!Fw(M,`.${i}`,e))&&(!s||Fw(M,s,e))});return j.call(B),()=>{j.on(".drag",null)}}}},[e,n,i,s,l,c,o,u,N]),p}function tN(){const e=Rt();return A.useCallback(i=>{const{nodeInternals:s,nodeExtent:o,updateNodePositions:l,getNodes:u,snapToGrid:c,snapGrid:p,onError:h,nodesDraggable:f}=e.getState(),m=u().filter(k=>k.selected&&(k.draggable||f&&typeof k.draggable>"u")),y=c?p[0]:5,x=c?p[1]:5,C=i.isShiftPressed?4:1,_=i.x*y*C,S=i.y*x*C,b=m.map(k=>{if(k.positionAbsolute){const N={x:k.positionAbsolute.x+_,y:k.positionAbsolute.y+S};c&&(N.x=p[0]*Math.round(N.x/p[0]),N.y=p[1]*Math.round(N.y/p[1]));const{positionAbsolute:j,position:P}=JE(k,N,s,o,void 0,h);k.position=P,k.positionAbsolute=j}return k});l(b,!0,!1)},[])}const Gs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var zo=e=>{const n=({id:i,type:s,data:o,xPos:l,yPos:u,xPosOrigin:c,yPosOrigin:p,selected:h,onClick:f,onMouseEnter:m,onMouseMove:y,onMouseLeave:x,onContextMenu:C,onDoubleClick:_,style:S,className:b,isDraggable:k,isSelectable:N,isConnectable:j,isFocusable:P,selectNodesOnDrag:O,sourcePosition:L,targetPosition:B,hidden:T,resizeObserver:M,dragHandle:q,zIndex:Y,isParent:X,noDragClassName:I,noPanClassName:H,initialized:U,disableKeyboardA11y:ne,ariaLabel:J,rfId:F,hasHandleBounds:G})=>{const E=Rt(),$=A.useRef(null),se=A.useRef(null),D=A.useRef(L),Q=A.useRef(B),ee=A.useRef(s),oe=N||k||f||m||y||x,le=tN(),ge=Fo(i,E.getState,m),de=Fo(i,E.getState,y),Ae=Fo(i,E.getState,x),He=Fo(i,E.getState,C),Me=Fo(i,E.getState,_),Te=ye=>{const{nodeDragThreshold:we}=E.getState();if(N&&(!O||!k||we>0)&&Fg({id:i,store:E,nodeRef:$}),f){const Ve=E.getState().nodeInternals.get(i);Ve&&f(ye,{...Ve})}},ke=ye=>{if(!Og(ye)&&!ne)if(NE.includes(ye.key)&&N){const we=ye.key==="Escape";Fg({id:i,store:E,unselect:we,nodeRef:$})}else k&&h&&Object.prototype.hasOwnProperty.call(Gs,ye.key)&&(E.setState({ariaLiveMessage:`Moved selected node ${ye.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~l}, y: ${~~u}`}),le({x:Gs[ye.key].x,y:Gs[ye.key].y,isShiftPressed:ye.shiftKey}))};A.useEffect(()=>()=>{se.current&&(M==null||M.unobserve(se.current),se.current=null)},[]),A.useEffect(()=>{if($.current&&!T){const ye=$.current;(!U||!G||se.current!==ye)&&(se.current&&(M==null||M.unobserve(se.current)),M==null||M.observe(ye),se.current=ye)}},[T,U,G]),A.useEffect(()=>{const ye=ee.current!==s,we=D.current!==L,Ve=Q.current!==B;$.current&&(ye||we||Ve)&&(ye&&(ee.current=s),we&&(D.current=L),Ve&&(Q.current=B),E.getState().updateNodeDimensions([{id:i,nodeElement:$.current,forceUpdate:!0}]))},[i,s,L,B]);const Ke=eN({nodeRef:$,disabled:T||!k,noDragClassName:I,handleSelector:q,nodeId:i,isSelectable:N,selectNodesOnDrag:O});return T?null:ae.createElement("div",{className:Lt(["react-flow__node",`react-flow__node-${s}`,{[H]:k},b,{selected:h,selectable:N,parent:X,dragging:Ke}]),ref:$,style:{zIndex:Y,transform:`translate(${c}px,${p}px)`,pointerEvents:oe?"all":"none",visibility:U?"visible":"hidden",...S},"data-id":i,"data-testid":`rf__node-${i}`,onMouseEnter:ge,onMouseMove:de,onMouseLeave:Ae,onContextMenu:He,onClick:Te,onDoubleClick:Me,onKeyDown:P?ke:void 0,tabIndex:P?0:void 0,role:P?"button":void 0,"aria-describedby":ne?void 0:`${WE}-${F}`,"aria-label":J},ae.createElement(mI,{value:i},ae.createElement(e,{id:i,data:o,type:s,xPos:l,yPos:u,selected:h,isConnectable:j,sourcePosition:L,targetPosition:B,dragging:Ke,dragHandle:q,zIndex:Y})))};return n.displayName="NodeWrapper",A.memo(n)};const rM=e=>{const n=e.getNodes().filter(i=>i.selected);return{...Zl(n,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function iM({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:i}){const s=Rt(),{width:o,height:l,x:u,y:c,transformString:p,userSelectionActive:h}=Qe(rM,jt),f=tN(),m=A.useRef(null);if(A.useEffect(()=>{var C;i||(C=m.current)==null||C.focus({preventScroll:!0})},[i]),eN({nodeRef:m}),h||!o||!l)return null;const y=e?C=>{const _=s.getState().getNodes().filter(S=>S.selected);e(C,_)}:void 0,x=C=>{Object.prototype.hasOwnProperty.call(Gs,C.key)&&f({x:Gs[C.key].x,y:Gs[C.key].y,isShiftPressed:C.shiftKey})};return ae.createElement("div",{className:Lt(["react-flow__nodesselection","react-flow__container",n]),style:{transform:p}},ae.createElement("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:i?void 0:-1,onKeyDown:i?void 0:x,style:{width:o,height:l,top:c,left:u}}))}var sM=A.memo(iM);const oM=e=>e.nodesSelectionActive,nN=({children:e,onPaneClick:n,onPaneMouseEnter:i,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,deleteKeyCode:c,onMove:p,onMoveStart:h,onMoveEnd:f,selectionKeyCode:m,selectionOnDrag:y,selectionMode:x,onSelectionStart:C,onSelectionEnd:_,multiSelectionKeyCode:S,panActivationKeyCode:b,zoomActivationKeyCode:k,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:P,panOnScroll:O,panOnScrollSpeed:L,panOnScrollMode:B,zoomOnDoubleClick:T,panOnDrag:M,defaultViewport:q,translateExtent:Y,minZoom:X,maxZoom:I,preventScrolling:H,onSelectionContextMenu:U,noWheelClassName:ne,noPanClassName:J,disableKeyboardA11y:F})=>{const G=Qe(oM),E=ta(m),$=ta(b),se=$||M,D=$||O,Q=E||y&&se!==!0;return HI({deleteKeyCode:c,multiSelectionKeyCode:S}),ae.createElement(YI,{onMove:p,onMoveStart:h,onMoveEnd:f,onPaneContextMenu:l,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:P,panOnScroll:D,panOnScrollSpeed:L,panOnScrollMode:B,zoomOnDoubleClick:T,panOnDrag:!E&&se,defaultViewport:q,translateExtent:Y,minZoom:X,maxZoom:I,zoomActivationKeyCode:k,preventScrolling:H,noWheelClassName:ne,noPanClassName:J},ae.createElement(QE,{onSelectionStart:C,onSelectionEnd:_,onPaneClick:n,onPaneMouseEnter:i,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,panOnDrag:se,isSelecting:!!Q,selectionMode:x},e,G&&ae.createElement(sM,{onSelectionContextMenu:U,noPanClassName:J,disableKeyboardA11y:F})))};nN.displayName="FlowRenderer";var aM=A.memo(nN);function lM(e){return Qe(A.useCallback(i=>e?ME(i.nodeInternals,{x:0,y:0,width:i.width,height:i.height},i.transform,!0):i.getNodes(),[e]))}function uM(e){const n={input:zo(e.input||BE),default:zo(e.default||Dg),output:zo(e.output||HE),group:zo(e.group||cv)},i={},s=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,l)=>(o[l]=zo(e[l]||Dg),o),i);return{...n,...s}}const cM=({x:e,y:n,width:i,height:s,origin:o})=>!i||!s?{x:e,y:n}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:n}:{x:e-i*o[0],y:n-s*o[1]},dM=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),rN=e=>{const{nodesDraggable:n,nodesConnectable:i,nodesFocusable:s,elementsSelectable:o,updateNodeDimensions:l,onError:u}=Qe(dM,jt),c=lM(e.onlyRenderVisibleElements),p=A.useRef(),h=A.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const f=new ResizeObserver(m=>{const y=m.map(x=>({id:x.target.getAttribute("data-id"),nodeElement:x.target,forceUpdate:!0}));l(y)});return p.current=f,f},[]);return A.useEffect(()=>()=>{var f;(f=p==null?void 0:p.current)==null||f.disconnect()},[]),ae.createElement("div",{className:"react-flow__nodes",style:dv},c.map(f=>{var P,O,L;let m=f.type||"default";e.nodeTypes[m]||(u==null||u("003",Mr.error003(m)),m="default");const y=e.nodeTypes[m]||e.nodeTypes.default,x=!!(f.draggable||n&&typeof f.draggable>"u"),C=!!(f.selectable||o&&typeof f.selectable>"u"),_=!!(f.connectable||i&&typeof f.connectable>"u"),S=!!(f.focusable||s&&typeof f.focusable>"u"),b=e.nodeExtent?iv(f.positionAbsolute,e.nodeExtent):f.positionAbsolute,k=(b==null?void 0:b.x)??0,N=(b==null?void 0:b.y)??0,j=cM({x:k,y:N,width:f.width??0,height:f.height??0,origin:e.nodeOrigin});return ae.createElement(y,{key:f.id,id:f.id,className:f.className,style:f.style,type:m,data:f.data,sourcePosition:f.sourcePosition||Ce.Bottom,targetPosition:f.targetPosition||Ce.Top,hidden:f.hidden,xPos:k,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:!!f.selected,isDraggable:x,isSelectable:C,isConnectable:_,isFocusable:S,resizeObserver:h,dragHandle:f.dragHandle,zIndex:((P=f[mt])==null?void 0:P.z)??0,isParent:!!((O=f[mt])!=null&&O.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!f.width&&!!f.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:f.ariaLabel,hasHandleBounds:!!((L=f[mt])!=null&&L.handleBounds)})}))};rN.displayName="NodeRenderer";var fM=A.memo(rN);const hM=(e,n,i)=>i===Ce.Left?e-n:i===Ce.Right?e+n:e,pM=(e,n,i)=>i===Ce.Top?e-n:i===Ce.Bottom?e+n:e,Bw="react-flow__edgeupdater",Uw=({position:e,centerX:n,centerY:i,radius:s=10,onMouseDown:o,onMouseEnter:l,onMouseOut:u,type:c})=>ae.createElement("circle",{onMouseDown:o,onMouseEnter:l,onMouseOut:u,className:Lt([Bw,`${Bw}-${c}`]),cx:hM(n,s,e),cy:pM(i,s,e),r:s,stroke:"transparent",fill:"transparent"}),mM=()=>!0;var Ds=e=>{const n=({id:i,className:s,type:o,data:l,onClick:u,onEdgeDoubleClick:c,selected:p,animated:h,label:f,labelStyle:m,labelShowBg:y,labelBgStyle:x,labelBgPadding:C,labelBgBorderRadius:_,style:S,source:b,target:k,sourceX:N,sourceY:j,targetX:P,targetY:O,sourcePosition:L,targetPosition:B,elementsSelectable:T,hidden:M,sourceHandleId:q,targetHandleId:Y,onContextMenu:X,onMouseEnter:I,onMouseMove:H,onMouseLeave:U,reconnectRadius:ne,onReconnect:J,onReconnectStart:F,onReconnectEnd:G,markerEnd:E,markerStart:$,rfId:se,ariaLabel:D,isFocusable:Q,isReconnectable:ee,pathOptions:oe,interactionWidth:le,disableKeyboardA11y:ge})=>{const de=A.useRef(null),[Ae,He]=A.useState(!1),[Me,Te]=A.useState(!1),ke=Rt(),Ke=A.useMemo(()=>`url('#${Lg($,se)}')`,[$,se]),ye=A.useMemo(()=>`url('#${Lg(E,se)}')`,[E,se]);if(M)return null;const we=Ge=>{var xt;const{edges:De,addSelectedEdges:vt,unselectNodesAndEdges:st,multiSelectionActive:Mn}=ke.getState(),Vt=De.find(cn=>cn.id===i);Vt&&(T&&(ke.setState({nodesSelectionActive:!1}),Vt.selected&&Mn?(st({nodes:[],edges:[Vt]}),(xt=de.current)==null||xt.blur()):vt([i])),u&&u(Ge,Vt))},Ve=Do(i,ke.getState,c),ut=Do(i,ke.getState,X),ct=Do(i,ke.getState,I),We=Do(i,ke.getState,H),$e=Do(i,ke.getState,U),it=(Ge,De)=>{if(Ge.button!==0)return;const{edges:vt,isValidConnection:st}=ke.getState(),Mn=De?k:b,Vt=(De?Y:q)||null,xt=De?"target":"source",cn=st||mM,cr=De,Pn=vt.find(Dt=>Dt.id===i);Te(!0),F==null||F(Ge,Pn,xt);const dn=Dt=>{Te(!1),G==null||G(Dt,Pn,xt)};$E({event:Ge,handleId:Vt,nodeId:Mn,onConnect:Dt=>J==null?void 0:J(Pn,Dt),isTarget:cr,getState:ke.getState,setState:ke.setState,isValidConnection:cn,edgeUpdaterType:xt,onReconnectEnd:dn})},wt=Ge=>it(Ge,!0),et=Ge=>it(Ge,!1),$t=()=>He(!0),gt=()=>He(!1),kt=!T&&!u,Pt=Ge=>{var De;if(!ge&&NE.includes(Ge.key)&&T){const{unselectNodesAndEdges:vt,addSelectedEdges:st,edges:Mn}=ke.getState();Ge.key==="Escape"?((De=de.current)==null||De.blur(),vt({edges:[Mn.find(xt=>xt.id===i)]})):st([i])}};return ae.createElement("g",{className:Lt(["react-flow__edge",`react-flow__edge-${o}`,s,{selected:p,animated:h,inactive:kt,updating:Ae}]),onClick:we,onDoubleClick:Ve,onContextMenu:ut,onMouseEnter:ct,onMouseMove:We,onMouseLeave:$e,onKeyDown:Q?Pt:void 0,tabIndex:Q?0:void 0,role:Q?"button":"img","data-testid":`rf__edge-${i}`,"aria-label":D===null?void 0:D||`Edge from ${b} to ${k}`,"aria-describedby":Q?`${GE}-${se}`:void 0,ref:de},!Me&&ae.createElement(e,{id:i,source:b,target:k,selected:p,animated:h,label:f,labelStyle:m,labelShowBg:y,labelBgStyle:x,labelBgPadding:C,labelBgBorderRadius:_,data:l,style:S,sourceX:N,sourceY:j,targetX:P,targetY:O,sourcePosition:L,targetPosition:B,sourceHandleId:q,targetHandleId:Y,markerStart:Ke,markerEnd:ye,pathOptions:oe,interactionWidth:le}),ee&&ae.createElement(ae.Fragment,null,(ee==="source"||ee===!0)&&ae.createElement(Uw,{position:L,centerX:N,centerY:j,radius:ne,onMouseDown:wt,onMouseEnter:$t,onMouseOut:gt,type:"source"}),(ee==="target"||ee===!0)&&ae.createElement(Uw,{position:B,centerX:P,centerY:O,radius:ne,onMouseDown:et,onMouseEnter:$t,onMouseOut:gt,type:"target"})))};return n.displayName="EdgeWrapper",A.memo(n)};function gM(e){const n={default:Ds(e.default||Bl),straight:Ds(e.bezier||av),step:Ds(e.step||ov),smoothstep:Ds(e.step||Ql),simplebezier:Ds(e.simplebezier||sv)},i={},s=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,l)=>(o[l]=Ds(e[l]||Bl),o),i);return{...n,...s}}function Hw(e,n,i=null){const s=((i==null?void 0:i.x)||0)+n.x,o=((i==null?void 0:i.y)||0)+n.y,l=(i==null?void 0:i.width)||n.width,u=(i==null?void 0:i.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(i=>i.id===n)||null:null}const vM=(e,n,i,s,o,l)=>{const u=Hw(i,e,n),c=Hw(l,s,o);return{sourceX:u.x,sourceY:u.y,targetX:c.x,targetY:c.y}};function yM({sourcePos:e,targetPos:n,sourceWidth:i,sourceHeight:s,targetWidth:o,targetHeight:l,width:u,height:c,transform:p}){const h={x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x+i,n.x+o),y2:Math.max(e.y+s,n.y+l)};h.x===h.x2&&(h.x2+=1),h.y===h.y2&&(h.y2+=1);const f=Jo({x:(0-p[0])/p[2],y:(0-p[1])/p[2],width:u/p[2],height:c/p[2]}),m=Math.max(0,Math.min(f.x2,h.x2)-Math.max(f.x,h.x)),y=Math.max(0,Math.min(f.y2,h.y2)-Math.max(f.y,h.y));return Math.ceil(m*y)>0}function Ww(e){var s,o,l,u,c;const n=((s=e==null?void 0:e[mt])==null?void 0:s.handleBounds)||null,i=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,!!i]}const wM=[{level:0,isMaxLevel:!0,edges:[]}];function xM(e,n,i=!1){let s=-1;const o=e.reduce((u,c)=>{var f,m;const p=Tn(c.zIndex);let h=p?c.zIndex:0;if(i){const y=n.get(c.target),x=n.get(c.source),C=c.selected||(y==null?void 0:y.selected)||(x==null?void 0:x.selected),_=Math.max(((f=x==null?void 0:x[mt])==null?void 0:f.z)||0,((m=y==null?void 0:y[mt])==null?void 0:m.z)||0,1e3);h=(p?c.zIndex:0)+(C?_:0)}return u[h]?u[h].push(c):u[h]=[c],s=h>s?h:s,u},{}),l=Object.entries(o).map(([u,c])=>{const p=+u;return{edges:c,level:p,isMaxLevel:p===s}});return l.length===0?wM:l}function _M(e,n,i){const s=Qe(A.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)&&yM({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 xM(s,n,i)}const SM=({color:e="none",strokeWidth:n=1})=>ae.createElement("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),bM=({color:e="none",strokeWidth:n=1})=>ae.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Gw={[zl.Arrow]:SM,[zl.ArrowClosed]:bM};function kM(e){const n=Rt();return A.useMemo(()=>{var o,l;return Object.prototype.hasOwnProperty.call(Gw,e)?Gw[e]:((l=(o=n.getState()).onError)==null||l.call(o,"009",Mr.error009(e)),null)},[e])}const EM=({id:e,type:n,color:i,width:s=12.5,height:o=12.5,markerUnits:l="strokeWidth",strokeWidth:u,orient:c="auto-start-reverse"})=>{const p=kM(n);return p?ae.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"},ae.createElement(p,{color:i,strokeWidth:u})):null},NM=({defaultColor:e,rfId:n})=>i=>{const s=[];return i.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))},iN=({defaultColor:e,rfId:n})=>{const i=Qe(A.useCallback(NM({defaultColor:e,rfId:n}),[e,n]),(s,o)=>!(s.length!==o.length||s.some((l,u)=>l.id!==o[u].id)));return ae.createElement("defs",null,i.map(s=>ae.createElement(EM,{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})))};iN.displayName="MarkerDefinitions";var CM=A.memo(iN);const jM=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}),sN=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:i,rfId:s,edgeTypes:o,noPanClassName:l,onEdgeContextMenu:u,onEdgeMouseEnter:c,onEdgeMouseMove:p,onEdgeMouseLeave:h,onEdgeClick:f,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:x,onReconnectEnd:C,reconnectRadius:_,children:S,disableKeyboardA11y:b})=>{const{edgesFocusable:k,edgesUpdatable:N,elementsSelectable:j,width:P,height:O,connectionMode:L,nodeInternals:B,onError:T}=Qe(jM,jt),M=_M(n,B,i);return P?ae.createElement(ae.Fragment,null,M.map(({level:q,edges:Y,isMaxLevel:X})=>ae.createElement("svg",{key:q,style:{zIndex:q},width:P,height:O,className:"react-flow__edges react-flow__container"},X&&ae.createElement(CM,{defaultColor:e,rfId:s}),ae.createElement("g",null,Y.map(I=>{const[H,U,ne]=Ww(B.get(I.source)),[J,F,G]=Ww(B.get(I.target));if(!ne||!G)return null;let E=I.type||"default";o[E]||(T==null||T("011",Mr.error011(E)),E="default");const $=o[E]||o.default,se=L===Ki.Strict?F.target:(F.target??[]).concat(F.source??[]),D=Vw(U.source,I.sourceHandle),Q=Vw(se,I.targetHandle),ee=(D==null?void 0:D.position)||Ce.Bottom,oe=(Q==null?void 0:Q.position)||Ce.Top,le=!!(I.focusable||k&&typeof I.focusable>"u"),ge=I.reconnectable||I.updatable,de=typeof y<"u"&&(ge||N&&typeof ge>"u");if(!D||!Q)return T==null||T("008",Mr.error008(D,I)),null;const{sourceX:Ae,sourceY:He,targetX:Me,targetY:Te}=vM(H,D,ee,J,Q,oe);return ae.createElement($,{key:I.id,id:I.id,className:Lt([I.className,l]),type:E,data:I.data,selected:!!I.selected,animated:!!I.animated,hidden:!!I.hidden,label:I.label,labelStyle:I.labelStyle,labelShowBg:I.labelShowBg,labelBgStyle:I.labelBgStyle,labelBgPadding:I.labelBgPadding,labelBgBorderRadius:I.labelBgBorderRadius,style:I.style,source:I.source,target:I.target,sourceHandleId:I.sourceHandle,targetHandleId:I.targetHandle,markerEnd:I.markerEnd,markerStart:I.markerStart,sourceX:Ae,sourceY:He,targetX:Me,targetY:Te,sourcePosition:ee,targetPosition:oe,elementsSelectable:j,onContextMenu:u,onMouseEnter:c,onMouseMove:p,onMouseLeave:h,onClick:f,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:x,onReconnectEnd:C,reconnectRadius:_,rfId:s,ariaLabel:I.ariaLabel,isFocusable:le,isReconnectable:de,pathOptions:"pathOptions"in I?I.pathOptions:void 0,interactionWidth:I.interactionWidth,disableKeyboardA11y:b})})))),S):null};sN.displayName="EdgeRenderer";var RM=A.memo(sN);const TM=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function AM({children:e}){const n=Qe(TM);return ae.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}function IM(e){const n=aa(),i=A.useRef(!1);A.useEffect(()=>{!i.current&&n.viewportInitialized&&e&&(setTimeout(()=>e(n),1),i.current=!0)},[e,n.viewportInitialized])}const MM={[Ce.Left]:Ce.Right,[Ce.Right]:Ce.Left,[Ce.Top]:Ce.Bottom,[Ce.Bottom]:Ce.Top},oN=({nodeId:e,handleType:n,style:i,type:s=fi.Bezier,CustomComponent:o,connectionStatus:l})=>{var O,L,B;const{fromNode:u,handleId:c,toX:p,toY:h,connectionMode:f}=Qe(A.useCallback(T=>({fromNode:T.nodeInternals.get(e),handleId:T.connectionHandleId,toX:(T.connectionPosition.x-T.transform[0])/T.transform[2],toY:(T.connectionPosition.y-T.transform[1])/T.transform[2],connectionMode:T.connectionMode}),[e]),jt),m=(O=u==null?void 0:u[mt])==null?void 0:O.handleBounds;let y=m==null?void 0:m[n];if(f===Ki.Loose&&(y=y||(m==null?void 0:m[n==="source"?"target":"source"])),!u||!y)return null;const x=c?y.find(T=>T.id===c):y[0],C=x?x.x+x.width/2:(u.width??0)/2,_=x?x.y+x.height/2:u.height??0,S=(((L=u.positionAbsolute)==null?void 0:L.x)??0)+C,b=(((B=u.positionAbsolute)==null?void 0:B.y)??0)+_,k=x==null?void 0:x.position,N=k?MM[k]:null;if(!k||!N)return null;if(o)return ae.createElement(o,{connectionLineType:s,connectionLineStyle:i,fromNode:u,fromHandle:x,fromX:S,fromY:b,toX:p,toY:h,fromPosition:k,toPosition:N,connectionStatus:l});let j="";const P={sourceX:S,sourceY:b,sourcePosition:k,targetX:p,targetY:h,targetPosition:N};return s===fi.Bezier?[j]=AE(P):s===fi.Step?[j]=qg({...P,borderRadius:0}):s===fi.SmoothStep?[j]=qg(P):s===fi.SimpleBezier?[j]=TE(P):j=`M${S},${b} ${p},${h}`,ae.createElement("path",{d:j,fill:"none",className:"react-flow__connection-path",style:i})};oN.displayName="ConnectionLine";const PM=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function OM({containerStyle:e,style:n,type:i,component:s}){const{nodeId:o,handleType:l,nodesConnectable:u,width:c,height:p,connectionStatus:h}=Qe(PM,jt);return!(o&&l&&c&&u)?null:ae.createElement("svg",{style:e,width:c,height:p,className:"react-flow__edges react-flow__connectionline react-flow__container"},ae.createElement("g",{className:Lt(["react-flow__connection",h])},ae.createElement(oN,{nodeId:o,handleType:l,style:n,type:i,CustomComponent:s,connectionStatus:h})))}function Yw(e,n){return A.useRef(null),Rt(),A.useMemo(()=>n(e),[e])}const aN=({nodeTypes:e,edgeTypes:n,onMove:i,onMoveStart:s,onMoveEnd:o,onInit:l,onNodeClick:u,onEdgeClick:c,onNodeDoubleClick:p,onEdgeDoubleClick:h,onNodeMouseEnter:f,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:x,onSelectionContextMenu:C,onSelectionStart:_,onSelectionEnd:S,connectionLineType:b,connectionLineStyle:k,connectionLineComponent:N,connectionLineContainerStyle:j,selectionKeyCode:P,selectionOnDrag:O,selectionMode:L,multiSelectionKeyCode:B,panActivationKeyCode:T,zoomActivationKeyCode:M,deleteKeyCode:q,onlyRenderVisibleElements:Y,elementsSelectable:X,selectNodesOnDrag:I,defaultViewport:H,translateExtent:U,minZoom:ne,maxZoom:J,preventScrolling:F,defaultMarkerColor:G,zoomOnScroll:E,zoomOnPinch:$,panOnScroll:se,panOnScrollSpeed:D,panOnScrollMode:Q,zoomOnDoubleClick:ee,panOnDrag:oe,onPaneClick:le,onPaneMouseEnter:ge,onPaneMouseMove:de,onPaneMouseLeave:Ae,onPaneScroll:He,onPaneContextMenu:Me,onEdgeContextMenu:Te,onEdgeMouseEnter:ke,onEdgeMouseMove:Ke,onEdgeMouseLeave:ye,onReconnect:we,onReconnectStart:Ve,onReconnectEnd:ut,reconnectRadius:ct,noDragClassName:We,noWheelClassName:$e,noPanClassName:it,elevateEdgesOnSelect:wt,disableKeyboardA11y:et,nodeOrigin:$t,nodeExtent:gt,rfId:kt})=>{const Pt=Yw(e,uM),Ge=Yw(n,gM);return IM(l),ae.createElement(aM,{onPaneClick:le,onPaneMouseEnter:ge,onPaneMouseMove:de,onPaneMouseLeave:Ae,onPaneContextMenu:Me,onPaneScroll:He,deleteKeyCode:q,selectionKeyCode:P,selectionOnDrag:O,selectionMode:L,onSelectionStart:_,onSelectionEnd:S,multiSelectionKeyCode:B,panActivationKeyCode:T,zoomActivationKeyCode:M,elementsSelectable:X,onMove:i,onMoveStart:s,onMoveEnd:o,zoomOnScroll:E,zoomOnPinch:$,zoomOnDoubleClick:ee,panOnScroll:se,panOnScrollSpeed:D,panOnScrollMode:Q,panOnDrag:oe,defaultViewport:H,translateExtent:U,minZoom:ne,maxZoom:J,onSelectionContextMenu:C,preventScrolling:F,noDragClassName:We,noWheelClassName:$e,noPanClassName:it,disableKeyboardA11y:et},ae.createElement(AM,null,ae.createElement(RM,{edgeTypes:Ge,onEdgeClick:c,onEdgeDoubleClick:h,onlyRenderVisibleElements:Y,onEdgeContextMenu:Te,onEdgeMouseEnter:ke,onEdgeMouseMove:Ke,onEdgeMouseLeave:ye,onReconnect:we,onReconnectStart:Ve,onReconnectEnd:ut,reconnectRadius:ct,defaultMarkerColor:G,noPanClassName:it,elevateEdgesOnSelect:!!wt,disableKeyboardA11y:et,rfId:kt},ae.createElement(OM,{style:k,type:b,component:N,containerStyle:j})),ae.createElement("div",{className:"react-flow__edgelabel-renderer"}),ae.createElement(fM,{nodeTypes:Pt,onNodeClick:u,onNodeDoubleClick:p,onNodeMouseEnter:f,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:x,selectNodesOnDrag:I,onlyRenderVisibleElements:Y,noPanClassName:it,noDragClassName:We,disableKeyboardA11y:et,nodeOrigin:$t,nodeExtent:gt,rfId:kt})))};aN.displayName="GraphView";var qM=A.memo(aN);const zg=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ui={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:Ki.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:uI,isValidConnection:void 0},LM=()=>bR((e,n)=>({...ui,setNodes:i=>{const{nodeInternals:s,nodeOrigin:o,elevateNodesOnSelect:l}=n();e({nodeInternals:ed(i,s,o,l)})},getNodes:()=>Array.from(n().nodeInternals.values()),setEdges:i=>{const{defaultEdgeOptions:s={}}=n();e({edges:i.map(o=>({...s,...o}))})},setDefaultNodesAndEdges:(i,s)=>{const o=typeof i<"u",l=typeof s<"u",u=o?ed(i,new Map,n().nodeOrigin,n().elevateNodesOnSelect):new Map;e({nodeInternals:u,edges:l?s:[],hasDefaultNodes:o,hasDefaultEdges:l})},updateNodeDimensions:i=>{const{onNodesChange:s,nodeInternals:o,fitViewOnInit:l,fitViewOnInitDone:u,fitViewOnInitOptions:c,domNode:p,nodeOrigin:h}=n(),f=p==null?void 0:p.querySelector(".react-flow__viewport");if(!f)return;const m=window.getComputedStyle(f),{m22:y}=new window.DOMMatrixReadOnly(m.transform),x=i.reduce((_,S)=>{const b=o.get(S.id);if(b!=null&&b.hidden)o.set(b.id,{...b,[mt]:{...b[mt],handleBounds:void 0}});else if(b){const k=rv(S.nodeElement);!!(k.width&&k.height&&(b.width!==k.width||b.height!==k.height||S.forceUpdate))&&(o.set(b.id,{...b,[mt]:{...b[mt],handleBounds:{source:zw(".source",S.nodeElement,y,h),target:zw(".target",S.nodeElement,y,h)}},...k}),_.push({id:b.id,type:"dimensions",dimensions:k}))}return _},[]);KE(o,h);const C=u||l&&!u&&XE(n,{initial:!0,...c});e({nodeInternals:new Map(o),fitViewOnInitDone:C}),(x==null?void 0:x.length)>0&&(s==null||s(x))},updateNodePositions:(i,s=!0,o=!1)=>{const{triggerNodeChanges:l}=n(),u=i.map(c=>{const p={id:c.id,type:"position",dragging:o};return s&&(p.positionAbsolute=c.positionAbsolute,p.position=c.position),p});l(u)},triggerNodeChanges:i=>{const{onNodesChange:s,nodeInternals:o,hasDefaultNodes:l,nodeOrigin:u,getNodes:c,elevateNodesOnSelect:p}=n();if(i!=null&&i.length){if(l){const h=ZI(i,c()),f=ed(h,o,u,p);e({nodeInternals:f})}s==null||s(i)}},addSelectedNodes:i=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=i.map(p=>di(p,!0)):(u=Bs(l(),i),c=Bs(o,[])),Sl({changedNodes:u,changedEdges:c,get:n,set:e})},addSelectedEdges:i=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=i.map(p=>di(p,!0)):(u=Bs(o,i),c=Bs(l(),[])),Sl({changedNodes:c,changedEdges:u,get:n,set:e})},unselectNodesAndEdges:({nodes:i,edges:s}={})=>{const{edges:o,getNodes:l}=n(),u=i||l(),c=s||o,p=u.map(f=>(f.selected=!1,di(f.id,!1))),h=c.map(f=>di(f.id,!1));Sl({changedNodes:p,changedEdges:h,get:n,set:e})},setMinZoom:i=>{const{d3Zoom:s,maxZoom:o}=n();s==null||s.scaleExtent([i,o]),e({minZoom:i})},setMaxZoom:i=>{const{d3Zoom:s,minZoom:o}=n();s==null||s.scaleExtent([o,i]),e({maxZoom:i})},setTranslateExtent:i=>{var s;(s=n().d3Zoom)==null||s.translateExtent(i),e({translateExtent:i})},resetSelectedElements:()=>{const{edges:i,getNodes:s}=n(),l=s().filter(c=>c.selected).map(c=>di(c.id,!1)),u=i.filter(c=>c.selected).map(c=>di(c.id,!1));Sl({changedNodes:l,changedEdges:u,get:n,set:e})},setNodeExtent:i=>{const{nodeInternals:s}=n();s.forEach(o=>{o.positionAbsolute=iv(o.position,i)}),e({nodeExtent:i,nodeInternals:new Map(s)})},panBy:i=>{const{transform:s,width:o,height:l,d3Zoom:u,d3Selection:c,translateExtent:p}=n();if(!u||!c||!i.x&&!i.y)return!1;const h=Ar.translate(s[0]+i.x,s[1]+i.y).scale(s[2]),f=[[0,0],[o,l]],m=u==null?void 0:u.constrain()(h,f,p);return u.transform(c,m),s[0]!==m.x||s[1]!==m.y||s[2]!==m.k},cancelConnection:()=>e({connectionNodeId:ui.connectionNodeId,connectionHandleId:ui.connectionHandleId,connectionHandleType:ui.connectionHandleType,connectionStatus:ui.connectionStatus,connectionStartHandle:ui.connectionStartHandle,connectionEndHandle:ui.connectionEndHandle}),reset:()=>e({...ui})}),Object.is),fv=({children:e})=>{const n=A.useRef(null);return n.current||(n.current=LM()),ae.createElement(nI,{value:n.current},e)};fv.displayName="ReactFlowProvider";const lN=({children:e})=>A.useContext(Xl)?ae.createElement(ae.Fragment,null,e):ae.createElement(fv,null,e);lN.displayName="ReactFlowWrapper";const $M={input:BE,default:Dg,output:HE,group:cv},DM={default:Bl,straight:av,step:ov,smoothstep:Ql,simplebezier:sv},FM=[0,0],zM=[15,15],BM={x:0,y:0,zoom:1},UM={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},uN=A.forwardRef(({nodes:e,edges:n,defaultNodes:i,defaultEdges:s,className:o,nodeTypes:l=$M,edgeTypes:u=DM,onNodeClick:c,onEdgeClick:p,onInit:h,onMove:f,onMoveStart:m,onMoveEnd:y,onConnect:x,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,onNodeMouseEnter:k,onNodeMouseMove:N,onNodeMouseLeave:j,onNodeContextMenu:P,onNodeDoubleClick:O,onNodeDragStart:L,onNodeDrag:B,onNodeDragStop:T,onNodesDelete:M,onEdgesDelete:q,onSelectionChange:Y,onSelectionDragStart:X,onSelectionDrag:I,onSelectionDragStop:H,onSelectionContextMenu:U,onSelectionStart:ne,onSelectionEnd:J,connectionMode:F=Ki.Strict,connectionLineType:G=fi.Bezier,connectionLineStyle:E,connectionLineComponent:$,connectionLineContainerStyle:se,deleteKeyCode:D="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:ee=!1,selectionMode:oe=ea.Full,panActivationKeyCode:le="Space",multiSelectionKeyCode:ge=Fl()?"Meta":"Control",zoomActivationKeyCode:de=Fl()?"Meta":"Control",snapToGrid:Ae=!1,snapGrid:He=zM,onlyRenderVisibleElements:Me=!1,selectNodesOnDrag:Te=!0,nodesDraggable:ke,nodesConnectable:Ke,nodesFocusable:ye,nodeOrigin:we=FM,edgesFocusable:Ve,edgesUpdatable:ut,elementsSelectable:ct,defaultViewport:We=BM,minZoom:$e=.5,maxZoom:it=2,translateExtent:wt=zg,preventScrolling:et=!0,nodeExtent:$t,defaultMarkerColor:gt="#b1b1b7",zoomOnScroll:kt=!0,zoomOnPinch:Pt=!0,panOnScroll:Ge=!1,panOnScrollSpeed:De=.5,panOnScrollMode:vt=Hi.Free,zoomOnDoubleClick:st=!0,panOnDrag:Mn=!0,onPaneClick:Vt,onPaneMouseEnter:xt,onPaneMouseMove:cn,onPaneMouseLeave:cr,onPaneScroll:Pn,onPaneContextMenu:dn,children:xn,onEdgeContextMenu:Dt,onEdgeDoubleClick:dr,onEdgeMouseEnter:vi,onEdgeMouseMove:qr,onEdgeMouseLeave:Tt,onEdgeUpdate:Xn,onEdgeUpdateStart:fr,onEdgeUpdateEnd:Wt,onReconnect:Lr,onReconnectStart:Qn,onReconnectEnd:io,reconnectRadius:fn=10,edgeUpdaterRadius:hr=10,onNodesChange:pr,onEdgesChange:yi,noDragClassName:es="nodrag",noWheelClassName:ts="nowheel",noPanClassName:$r="nopan",fitView:Ft=!1,fitViewOptions:ns,connectOnClick:Gt=!0,attributionPosition:wi,proOptions:Dr,defaultEdgeOptions:xi,elevateNodesOnSelect:mr=!0,elevateEdgesOnSelect:Fr=!1,disableKeyboardA11y:_n=!1,autoPanOnConnect:rs=!0,autoPanOnNodeDrag:Ze=!0,connectionRadius:is=20,isValidConnection:_i,onError:zr,style:hn,id:Si,nodeDragThreshold:ss,...gr},Yt)=>{const bi=Si||"1";return ae.createElement("div",{...gr,style:{...hn,...UM},ref:Yt,className:Lt(["react-flow",o]),"data-testid":"rf__wrapper",id:Si},ae.createElement(lN,null,ae.createElement(qM,{onInit:h,onMove:f,onMoveStart:m,onMoveEnd:y,onNodeClick:c,onEdgeClick:p,onNodeMouseEnter:k,onNodeMouseMove:N,onNodeMouseLeave:j,onNodeContextMenu:P,onNodeDoubleClick:O,nodeTypes:l,edgeTypes:u,connectionLineType:G,connectionLineStyle:E,connectionLineComponent:$,connectionLineContainerStyle:se,selectionKeyCode:Q,selectionOnDrag:ee,selectionMode:oe,deleteKeyCode:D,multiSelectionKeyCode:ge,panActivationKeyCode:le,zoomActivationKeyCode:de,onlyRenderVisibleElements:Me,selectNodesOnDrag:Te,defaultViewport:We,translateExtent:wt,minZoom:$e,maxZoom:it,preventScrolling:et,zoomOnScroll:kt,zoomOnPinch:Pt,zoomOnDoubleClick:st,panOnScroll:Ge,panOnScrollSpeed:De,panOnScrollMode:vt,panOnDrag:Mn,onPaneClick:Vt,onPaneMouseEnter:xt,onPaneMouseMove:cn,onPaneMouseLeave:cr,onPaneScroll:Pn,onPaneContextMenu:dn,onSelectionContextMenu:U,onSelectionStart:ne,onSelectionEnd:J,onEdgeContextMenu:Dt,onEdgeDoubleClick:dr,onEdgeMouseEnter:vi,onEdgeMouseMove:qr,onEdgeMouseLeave:Tt,onReconnect:Lr??Xn,onReconnectStart:Qn??fr,onReconnectEnd:io??Wt,reconnectRadius:fn??hr,defaultMarkerColor:gt,noDragClassName:es,noWheelClassName:ts,noPanClassName:$r,elevateEdgesOnSelect:Fr,rfId:bi,disableKeyboardA11y:_n,nodeOrigin:we,nodeExtent:$t}),ae.createElement(II,{nodes:e,edges:n,defaultNodes:i,defaultEdges:s,onConnect:x,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,nodesDraggable:ke,nodesConnectable:Ke,nodesFocusable:ye,edgesFocusable:Ve,edgesUpdatable:ut,elementsSelectable:ct,elevateNodesOnSelect:mr,minZoom:$e,maxZoom:it,nodeExtent:$t,onNodesChange:pr,onEdgesChange:yi,snapToGrid:Ae,snapGrid:He,connectionMode:F,translateExtent:wt,connectOnClick:Gt,defaultEdgeOptions:xi,fitView:Ft,fitViewOptions:ns,onNodesDelete:M,onEdgesDelete:q,onNodeDragStart:L,onNodeDrag:B,onNodeDragStop:T,onSelectionDrag:I,onSelectionDragStart:X,onSelectionDragStop:H,noPanClassName:$r,nodeOrigin:we,rfId:bi,autoPanOnConnect:rs,autoPanOnNodeDrag:Ze,onError:zr,connectionRadius:is,isValidConnection:_i,nodeDragThreshold:ss}),ae.createElement(TI,{onSelectionChange:Y}),xn,ae.createElement(iI,{proOptions:Dr,position:wi}),ae.createElement(LI,{rfId:bi,disableKeyboardA11y:_n})))});uN.displayName="ReactFlow";const HM=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function cN(){return Qe(HM,jt)}const dN=({id:e,x:n,y:i,width:s,height:o,style:l,color:u,strokeColor:c,strokeWidth:p,className:h,borderRadius:f,shapeRendering:m,onClick:y,selected:x})=>{const{background:C,backgroundColor:_}=l||{},S=u||C||_;return ae.createElement("rect",{className:Lt(["react-flow__minimap-node",{selected:x},h]),x:n,y:i,rx:f,ry:f,width:s,height:o,fill:S,stroke:c,strokeWidth:p,shapeRendering:m,onClick:y?b=>y(b,e):void 0})};dN.displayName="MiniMapNode";var VM=A.memo(dN);const WM=e=>e.nodeOrigin,GM=e=>e.getNodes().filter(n=>!n.hidden&&n.width&&n.height),id=e=>e instanceof Function?e:()=>e;function YM({nodeStrokeColor:e="transparent",nodeColor:n="#e2e2e2",nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o=2,nodeComponent:l=VM,onClick:u}){const c=Qe(GM,jt),p=Qe(WM),h=id(n),f=id(e),m=id(i),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return ae.createElement(ae.Fragment,null,c.map(x=>{const{x:C,y:_}=Wi(x,p).positionAbsolute;return ae.createElement(l,{key:x.id,x:C,y:_,width:x.width,height:x.height,style:x.style,selected:x.selected,className:m(x),color:h(x),borderRadius:s,strokeColor:f(x),strokeWidth:o,shapeRendering:y,onClick:u,id:x.id})}))}var KM=A.memo(YM);const XM=200,QM=150,ZM=e=>{const n=e.getNodes(),i={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:i,boundingRect:n.length>0?aI(Zl(n,e.nodeOrigin),i):i,rfId:e.rfId}},JM="react-flow__minimap-desc";function fN({style:e,className:n,nodeStrokeColor:i="transparent",nodeColor:s="#e2e2e2",nodeClassName:o="",nodeBorderRadius:l=5,nodeStrokeWidth:u=2,nodeComponent:c,maskColor:p="rgb(240, 240, 240, 0.6)",maskStrokeColor:h="none",maskStrokeWidth:f=1,position:m="bottom-right",onClick:y,onNodeClick:x,pannable:C=!1,zoomable:_=!1,ariaLabel:S="React Flow mini map",inversePan:b=!1,zoomStep:k=10,offsetScale:N=5}){const j=Rt(),P=A.useRef(null),{boundingRect:O,viewBB:L,rfId:B}=Qe(ZM,jt),T=(e==null?void 0:e.width)??XM,M=(e==null?void 0:e.height)??QM,q=O.width/T,Y=O.height/M,X=Math.max(q,Y),I=X*T,H=X*M,U=N*X,ne=O.x-(I-O.width)/2-U,J=O.y-(H-O.height)/2-U,F=I+U*2,G=H+U*2,E=`${JM}-${B}`,$=A.useRef(0);$.current=X,A.useEffect(()=>{if(P.current){const Q=Rn(P.current),ee=ge=>{const{transform:de,d3Selection:Ae,d3Zoom:He}=j.getState();if(ge.sourceEvent.type!=="wheel"||!Ae||!He)return;const Me=-ge.sourceEvent.deltaY*(ge.sourceEvent.deltaMode===1?.05:ge.sourceEvent.deltaMode?1:.002)*k,Te=de[2]*Math.pow(2,Me);He.scaleTo(Ae,Te)},oe=ge=>{const{transform:de,d3Selection:Ae,d3Zoom:He,translateExtent:Me,width:Te,height:ke}=j.getState();if(ge.sourceEvent.type!=="mousemove"||!Ae||!He)return;const Ke=$.current*Math.max(1,de[2])*(b?-1:1),ye={x:de[0]-ge.sourceEvent.movementX*Ke,y:de[1]-ge.sourceEvent.movementY*Ke},we=[[0,0],[Te,ke]],Ve=Ar.translate(ye.x,ye.y).scale(de[2]),ut=He.constrain()(Ve,we,Me);He.transform(Ae,ut)},le=xE().on("zoom",C?oe:null).on("zoom.wheel",_?ee:null);return Q.call(le),()=>{Q.on("zoom",null)}}},[C,_,b,k]);const se=y?Q=>{const ee=Hn(Q);y(Q,{x:ee[0],y:ee[1]})}:void 0,D=x?(Q,ee)=>{const oe=j.getState().nodeInternals.get(ee);x(Q,oe)}:void 0;return ae.createElement(nv,{position:m,style:e,className:Lt(["react-flow__minimap",n]),"data-testid":"rf__minimap"},ae.createElement("svg",{width:T,height:M,viewBox:`${ne} ${J} ${F} ${G}`,role:"img","aria-labelledby":E,ref:P,onClick:se},S&&ae.createElement("title",{id:E},S),ae.createElement(KM,{onClick:D,nodeColor:s,nodeStrokeColor:i,nodeBorderRadius:l,nodeClassName:o,nodeStrokeWidth:u,nodeComponent:c}),ae.createElement("path",{className:"react-flow__minimap-mask",d:`M${ne-U},${J-U}h${F+U*2}v${G+U*2}h${-F-U*2}z
57
57
  M${L.x},${L.y}h${L.width}v${L.height}h${-L.width}z`,fill:p,fillRule:"evenodd",stroke:h,strokeWidth:f,pointerEvents:"none"})))}fN.displayName="MiniMap";var eP=A.memo(fN);function tP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},ae.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function nP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},ae.createElement("path",{d:"M0 0h32v4.2H0z"}))}function rP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},ae.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 iP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},ae.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 sP(){return ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},ae.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 Us=({children:e,className:n,...i})=>ae.createElement("button",{type:"button",className:Lt(["react-flow__controls-button",n]),...i},e);Us.displayName="ControlButton";const oP=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),hN=({style:e,showZoom:n=!0,showFitView:i=!0,showInteractive:s=!0,fitViewOptions:o,onZoomIn:l,onZoomOut:u,onFitView:c,onInteractiveChange:p,className:h,children:f,position:m="bottom-left"})=>{const y=Rt(),[x,C]=A.useState(!1),{isInteractive:_,minZoomReached:S,maxZoomReached:b}=Qe(oP,jt),{zoomIn:k,zoomOut:N,fitView:j}=aa();if(A.useEffect(()=>{C(!0)},[]),!x)return null;const P=()=>{k(),l==null||l()},O=()=>{N(),u==null||u()},L=()=>{j(o),c==null||c()},B=()=>{y.setState({nodesDraggable:!_,nodesConnectable:!_,elementsSelectable:!_}),p==null||p(!_)};return ae.createElement(nv,{className:Lt(["react-flow__controls",h]),position:m,style:e,"data-testid":"rf__controls"},n&&ae.createElement(ae.Fragment,null,ae.createElement(Us,{onClick:P,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:b},ae.createElement(tP,null)),ae.createElement(Us,{onClick:O,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:S},ae.createElement(nP,null))),i&&ae.createElement(Us,{className:"react-flow__controls-fitview",onClick:L,title:"fit view","aria-label":"fit view"},ae.createElement(rP,null)),s&&ae.createElement(Us,{className:"react-flow__controls-interactive",onClick:B,title:"toggle interactivity","aria-label":"toggle interactivity"},_?ae.createElement(sP,null):ae.createElement(iP,null)),f)};hN.displayName="Controls";var aP=A.memo(hN),Wn;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Wn||(Wn={}));function lP({color:e,dimensions:n,lineWidth:i}){return ae.createElement("path",{stroke:e,strokeWidth:i,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function uP({color:e,radius:n}){return ae.createElement("circle",{cx:n,cy:n,r:n,fill:e})}const cP={[Wn.Dots]:"#91919a",[Wn.Lines]:"#eee",[Wn.Cross]:"#e2e2e2"},dP={[Wn.Dots]:1,[Wn.Lines]:1,[Wn.Cross]:6},fP=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function pN({id:e,variant:n=Wn.Dots,gap:i=20,size:s,lineWidth:o=1,offset:l=2,color:u,style:c,className:p}){const h=A.useRef(null),{transform:f,patternId:m}=Qe(fP,jt),y=u||cP[n],x=s||dP[n],C=n===Wn.Dots,_=n===Wn.Cross,S=Array.isArray(i)?i:[i,i],b=[S[0]*f[2]||1,S[1]*f[2]||1],k=x*f[2],N=_?[k,k]:b,j=C?[k/l,k/l]:[N[0]/l,N[1]/l];return ae.createElement("svg",{className:Lt(["react-flow__background",p]),style:{...c,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:h,"data-testid":"rf__background"},ae.createElement("pattern",{id:m+e,x:f[0]%b[0],y:f[1]%b[1],width:b[0],height:b[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${j[0]},-${j[1]})`},C?ae.createElement(uP,{color:y,radius:k/l}):ae.createElement(lP,{dimensions:N,color:y,lineWidth:o})),ae.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${m+e})`}))}pN.displayName="Background";var hP=A.memo(pN);function mN(){return{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreateTokens:0}}function gN(e,n=0){if(!e||typeof e!="object"||n>6)return null;const i=e;if(typeof i.input_tokens=="number"||typeof i.output_tokens=="number"||typeof i.cache_read_input_tokens=="number"||typeof i.cache_creation_input_tokens=="number")return{inputTokens:Number(i.input_tokens??0),outputTokens:Number(i.output_tokens??0),cacheReadTokens:Number(i.cache_read_input_tokens??0),cacheCreateTokens:Number(i.cache_creation_input_tokens??0)};for(const s of Object.values(i)){const o=gN(s,n+1);if(o)return o}return null}function pP(e,n){e.inputTokens+=n.inputTokens,e.outputTokens+=n.outputTokens,e.cacheReadTokens+=n.cacheReadTokens,e.cacheCreateTokens+=n.cacheCreateTokens}const mP=/^(?:claude[-_]|gpt[-_]|o\d|codex[-_])/i;function vN(e,n=0){if(!e||typeof e!="object"||n>6)return null;const i=e;if(typeof i.model=="string"&&mP.test(i.model))return i.model;for(const s of Object.values(i)){const o=vN(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,seqEpoch:null,totalEvents:0}}function pi(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 Ul(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 Go(e,n,i,s){const o=n;let l=e.agents.get(o);return l||(l={id:o,sessionId:n,label:"session",kind:"root",state:"active",startedAt:i,tools:[],prompts:[],toolCount:0,childCount:0,synthetic:s,inFlightTool:null,usage:mN()},e.agents.set(o,l),l)}function yN(e,n,i,s){const o=hv(n,i),l=e.agents.get(o);if(!l)return null;!l.cwd&&s.cwd&&(l.cwd=s.cwd,l.cwdBasename=pi(s.cwd));const u=Ul(s);return u&&(l.label==="subagent"||!l.label)&&(l.label=u),l}function Kw(e,n,i){const s=n.session_id??"unknown",o=Ug(n);if(o){const p=yN(e,s,o,n);if(p)return p}const l=e.activeSubagentStack.get(s),u=l&&l.length>0?l[l.length-1]:null;if(u){const p=e.agents.get(hv(s,u));if(p)return!p.cwd&&n.cwd&&(p.cwd=n.cwd,p.cwdBasename=pi(n.cwd)),p}const c=Go(e,s,i,!1);return c.synthetic&&(c.synthetic=!1,c.startedAt=i),!c.cwd&&n.cwd&&(c.cwd=n.cwd,c.cwdBasename=pi(n.cwd)),c.label==="session"&&n.cwd&&(c.label=pi(n.cwd)??"session"),c}function gP(e,n,i,s,o){const l=hv(n,i),u=Go(e,n,o,!0);let c=e.agents.get(l);if(c){!c.cwd&&s.cwd&&(c.cwd=s.cwd,c.cwdBasename=pi(s.cwd));const p=Ul(s);return p&&(c.label==="subagent"||!c.label)&&(c.label=p),c}return c={id:l,sessionId:n,label:Ul(s),kind:"subagent",parentId:u.id,state:"active",startedAt:o,tools:[],prompts:[],cwd:s.cwd,cwdBasename:pi(s.cwd),toolCount:0,childCount:0,inFlightTool:null,usage:mN()},e.agents.set(l,c),u.childCount+=1,c}function vP(e,n,i){const s=e.activeSubagentStack.get(n)??[];s.push(i),e.activeSubagentStack.set(n,s)}function yP(e,n,i){const s=e.activeSubagentStack.get(n);if(s){for(let o=s.length-1;o>=0;o--)if(s[o]===i){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 i=JSON.stringify(e);return i.length>n?i.slice(0,n-1)+"…":i}catch{return String(e)}}function Hs(e){let n=null;for(let i=e.tools.length-1;i>=0;i--){const s=e.tools[i];if(s.endedAt==null){n=s;break}}e.inFlightTool=n}const Xw=200,wP=25;function xP(e,n){const i=n.tools;if(i.length>Xw){const s=i.splice(0,i.length-Xw);let o=!1;for(const l of s)e.toolIndex.delete(l.id)&&(o=!0),e.toolOwner.delete(l.id);o&&Hs(n)}for(let s=i.length-wP-1;s>=0;s--){const o=i[s];if(o.trimmed)break;o.input=void 0,o.response=void 0,o.trimmed=!0}}function _P(e,n,i,s){if(e.agents.size<=i)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<=i)break;e.agents.delete(u.id),l++}return l>0}function SP(e,n,i,s){const o=new Map;for(const[h,f]of e.agents){let m=o.get(f.sessionId);m||(m={ids:[],endedAt:0,live:!1},o.set(f.sessionId,m)),m.ids.push(h),f.state==="done"&&f.endedAt!=null?m.endedAt=Math.max(m.endedAt,f.endedAt):m.live=!0}const l=[...o.values()].filter(h=>!h.live&&h.endedAt>0&&n-h.endedAt>s).sort((h,f)=>h.endedAt-f.endedAt);let c=[...o.values()].filter(h=>!h.live).length-i;if(c<=0)return!1;let p=!1;for(const h of l){if(c<=0)break;for(const f of h.ids)e.agents.delete(f);c--,p=!0}return p}function bP(e,n,i){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>i&&(u.endedAt=u.startedAt+i,u.ok=!1,u.errorPreview="stale (no PostToolUse received)",e.toolIndex.delete(u.id),e.toolOwner.delete(u.id),l=!0,s=!0);l&&Hs(o)}return s}function Qw(e,n){const i=n.epoch??null;if(i!==null&&i!==e.seqEpoch)e.seqEpoch=i,e.lastSeq=0;else if(n.seq<=e.lastSeq)return e;const s=n.payload??{},o=n.receivedAt,l=s.hook_event_name??"Unknown";if(l==="__clear")return{...Bg(),lastSeq:n.seq,seqEpoch:e.seqEpoch};e.totalEvents+=1,e.lastSeq=n.seq;const u=s.session_id??"unknown";if(l==="ModelObserved"){const h=typeof s.model=="string"?s.model:null;if(h){const m=e.agents.get(u);m&&(m.model=h)}const f=s.subagentModels;if(f&&typeof f=="object")for(const[m,y]of Object.entries(f)){if(typeof y!="string")continue;const x=`${u}::${m}`,C=e.agents.get(x);C&&(C.model=y)}return e}if(l==="ContextObserved"){const h=s.context??null;if(h){const f=e.agents.get(u);f&&(f.context={msgsUser:Number(h.msgsUser??0),msgsAssistant:Number(h.msgsAssistant??0),toolUses:Number(h.toolUses??0),toolResults:Number(h.toolResults??0),systemReminders:Number(h.systemReminders??0),currentContextTokens:Number(h.currentContextTokens??0),claudeMdFiles:Array.isArray(h.claudeMdFiles)?h.claudeMdFiles:[]})}return e}if(l==="UsageObserved"){const h=s.usage??null;if(h){const f=e.agents.get(u);f&&(f.usage.inputTokens=Number(h.input_tokens??0),f.usage.outputTokens=Number(h.output_tokens??0),f.usage.cacheReadTokens=Number(h.cache_read_input_tokens??h.cached_input_tokens??0),f.usage.cacheCreateTokens=Number(h.cache_creation_input_tokens??0),typeof h.reasoning_output_tokens=="number"&&(f.usage.reasoningOutputTokens=Number(h.reasoning_output_tokens)))}return e}const c=Kw(e,s,o);c.provider||(c.provider=s.provider==="codex"?"codex":"claude"),typeof s.model_context_window=="number"&&s.model_context_window>0&&(c.contextWindow=s.model_context_window);const p=vN(s);switch(p&&(c.model=p),l){case"SessionStart":{const h=Go(e,u,o,!1);h.synthetic=!1,h.state="active",h.startedAt=h.startedAt||o,!h.cwd&&s.cwd&&(h.cwd=s.cwd,h.cwdBasename=pi(s.cwd)),h.label==="session"&&s.cwd&&(h.label=pi(s.cwd)??"session");break}case"UserPromptSubmit":{for(const y of e.agents.values())y.sessionId===u&&y.kind==="subagent"&&y.state==="done"&&y.exitAt==null&&y.endedAt!=null&&y.endedAt<o&&(y.exitAt=o);const h=Go(e,u,o,!1);h.state="active",h.endedAt=void 0,h.exitAt=void 0;const f=Kw(e,s,o);f.state="active",f.exitAt=void 0,f.endedAt=void 0;const m=(typeof s.prompt=="string"?s.prompt:typeof s.message=="string"?s.message:"")??"";m&&(f.prompts.push({at:o,text:m}),f.firstPrompt||(f.firstPrompt=sd(m,120)));break}case"PreToolUse":{const h=s.tool_use_id??`${c.id}:${c.toolCount}`,f={id:h,name:s.tool_name??"?",input:s.tool_input,inputPreview:sd(s.tool_input),agentId:c.id,startedAt:o};c.tools.push(f),c.toolCount+=1,c.state="active",e.toolIndex.set(h,f),e.toolOwner.set(h,c.id),Hs(c),xP(e,c);break}case"PostToolUse":case"PostToolUseFailure":{const h=s.tool_use_id;if(!h)break;let f=e.toolIndex.get(h),m=!1;if(!f)for(const C of e.agents.values()){const _=C.tools.find(S=>S.id===h);if(_){f=_,m=!0;break}}if(!f)break;f.endedAt=o,f.ok=l==="PostToolUse",f.trimmed||(f.response=s.tool_response),l==="PostToolUseFailure"?f.errorPreview=sd(s.tool_response):m&&(f.errorPreview=void 0);const y=gN(s.tool_response);y&&(f.usage=y),e.toolIndex.delete(h);const x=e.toolOwner.get(h)??f.agentId;if(e.toolOwner.delete(h),x){const C=e.agents.get(x);C&&(y&&pP(C.usage,y),Hs(C))}break}case"SubagentStart":{const h=Ug(s);if(!h)break;const f=gP(e,u,h,s,o);f.state="active",f.startedAt=f.startedAt||o,f.exitAt=void 0,f.endedAt=void 0;const m=Ul(s);m&&(f.label=m),vP(e,u,h);break}case"SubagentStop":{const h=Ug(s);if(!h)break;const f=yN(e,u,h,s);if(!f)break;f.state="done",f.endedAt=o,Hs(f),yP(e,u,h);break}case"Stop":case"SessionEnd":{const h=Go(e,u,o,!1);h.state="done",h.endedAt=o,Hs(h),e.activeSubagentStack.delete(u);break}}return e}function pv(e){let n=5381;for(let i=0;i<e.length;i++)n=(n<<5)+n^e.charCodeAt(i);return Math.abs(n)%360}const kP=Date.UTC(2026,8,1);function EP(){return Date.now()<kP?{input:2,output:10,cacheRead:.2,cacheWrite:2.5}:{input:3,output:15,cacheRead:.3,cacheWrite:3.75}}const NP=[{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:EP()},{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 CP(e){return e?/^(?:gpt[-_]|codex[-_]|o\d)/i.test(e):!1}function mv(e){if(!e)return null;for(const n of NP)if(n.match.test(e))return n.rates;return null}function ln(e,n){const i=mv(n);if(!i)return{input:0,output:0,cacheRead:0,cacheWrite:0,total:0};const l=(CP(n)?Math.max(0,e.inputTokens-e.cacheReadTokens):e.inputTokens)*i.input/1e6,u=e.outputTokens*i.output/1e6,c=e.cacheReadTokens*i.cacheRead/1e6,p=e.cacheCreateTokens*i.cacheWrite/1e6;return{input:l,output:u,cacheRead:c,cacheWrite:p,total:l+u+c+p}}const Zw=2e5,jP=1e6,RP=[/\[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],TP=[{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 wN(e){if(!e)return Zw;for(const n of RP)if(n.test(e))return jP;for(const n of TP)if(n.match.test(e))return n.window;return Zw}function ze(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 Hl(e,n){if(e<=0||n<10)return null;const i=e/n,s=i*60;return s>=.01?`${ze(s)}/min`:`${ze(i*3600)}/hr`}function jn(e){return e.toLocaleString()}function AP(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}function IP({agent:e,onClose:n}){var h;const i=e.context,s=e.usage,o=(i==null?void 0:i.currentContextTokens)??0,l=wN(e.model),u=Math.min(100,o/l*100),c=ln(s,e.model),p=s.inputTokens+s.cacheReadTokens+s.cacheCreateTokens;return g.jsx("div",{className:"ctx-modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{className:"ctx-modal",onClick:f=>f.stopPropagation(),role:"dialog","aria-label":"Context breakdown",children:[g.jsxs("header",{className:"ctx-modal-head",children:[g.jsxs("div",{children:[g.jsxs("div",{className:"ctx-modal-title",children:["Context · ",e.label]}),g.jsx("div",{className:"ctx-modal-sub",children:"approximation — CC's /context isn't hook-exposed"})]}),g.jsx("button",{className:"ctx-modal-close",onClick:n,"aria-label":"Close",children:"×"})]}),g.jsxs("section",{className:"ctx-window-row",children:[g.jsx("div",{className:"ctx-window-bar",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(u),children:g.jsx("div",{className:"ctx-window-fill",style:{width:`${u}%`}})}),g.jsxs("div",{className:"ctx-window-meta",children:[g.jsxs("span",{className:"ctx-window-pct",children:[u.toFixed(1),"%"]}),g.jsxs("span",{className:"ctx-window-num",children:[jn(o)," / ",jn(l)," tok (current turn)"]})]})]}),g.jsx("h3",{className:"ctx-section-title",children:"Cumulative usage · whole session"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Un,{label:"input tokens",val:jn(s.inputTokens)}),g.jsx(Un,{label:"output tokens",val:jn(s.outputTokens)}),g.jsx(Un,{label:"cache reads",val:jn(s.cacheReadTokens)}),g.jsx(Un,{label:"cache writes",val:jn(s.cacheCreateTokens)}),g.jsx(Un,{label:"cumulative total",val:jn(p)}),g.jsx(Un,{label:"estimated cost",val:ze(c.total),accent:!0})]}),g.jsx("h3",{className:"ctx-section-title",children:"Transcript composition"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Un,{label:"user messages",val:jn((i==null?void 0:i.msgsUser)??0)}),g.jsx(Un,{label:"assistant messages",val:jn((i==null?void 0:i.msgsAssistant)??0)}),g.jsx(Un,{label:"tool uses",val:jn((i==null?void 0:i.toolUses)??0)}),g.jsx(Un,{label:"tool results",val:jn((i==null?void 0:i.toolResults)??0)}),g.jsx(Un,{label:"system-reminders",val:jn((i==null?void 0:i.systemReminders)??0)})]}),g.jsx("h3",{className:"ctx-section-title",children:"CLAUDE.md files in scope"}),(((h=i==null?void 0:i.claudeMdFiles)==null?void 0:h.length)??0)===0?g.jsx("div",{className:"ctx-empty",children:"No CLAUDE.md files found on the path from cwd to ~/.claude."}):g.jsx("ul",{className:"ctx-md-list",children:i.claudeMdFiles.map(f=>g.jsxs("li",{children:[g.jsx("span",{className:"ctx-md-path",title:f.path,children:f.path}),g.jsx("span",{className:"ctx-md-size",children:AP(f.bytes)})]},f.path))})]})})}function Un({label:e,val:n,accent:i}){return g.jsxs("div",{className:`ctx-row${i?" accent":""}`,children:[g.jsx("span",{className:"ctx-row-label",children:e}),g.jsx("span",{className:"ctx-row-val",children:n})]})}function MP({currentContextTokens:e,modelId:n,size:i=26,onClick:s,title:o}){const l=wN(n),u=Math.min(1,e/l),c=i/2-3,p=i/2,h=2*Math.PI*c,f=h*u,m=u>.9?"var(--err)":u>.7?"var(--inflight)":"var(--accent)";return g.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:g.jsxs("svg",{width:i,height:i,viewBox:`0 0 ${i} ${i}`,children:[g.jsx("circle",{cx:p,cy:p,r:c,stroke:"var(--line)",strokeWidth:"2.5",fill:"none"}),g.jsx("circle",{cx:p,cy:p,r:c,stroke:m,strokeWidth:"2.5",fill:"none",strokeDasharray:`${f} ${h-f}`,strokeDashoffset:h/4,strokeLinecap:"round",style:{transition:"stroke-dasharray 400ms ease"}}),g.jsx("text",{x:p,y:p+3,textAnchor:"middle",fontSize:"8",fill:"var(--text)",fontWeight:"600",children:Math.round(u*100)})]})})}function PP(e,n){const i=mv(n);if(!i)return"no rates for this model";const s=u=>u.toLocaleString(),o=u=>`$${u}/MTok`,l=ln(e,n);return[`model: ${n}`,`input ${s(e.inputTokens).padStart(14)} × ${o(i.input).padEnd(11)} = ${ze(l.input)}`,`output ${s(e.outputTokens).padStart(14)} × ${o(i.output).padEnd(11)} = ${ze(l.output)}`,`cache r ${s(e.cacheReadTokens).padStart(14)} × ${o(i.cacheRead).padEnd(11)} = ${ze(l.cacheRead)}`,`cache w ${s(e.cacheCreateTokens).padStart(14)} × ${o(i.cacheWrite).padEnd(11)} = ${ze(l.cacheWrite)}`,"─────────────────────────────────────────",`total = ${ze(l.total)}`].join(`
58
58
  `)}function OP(e,n,i){const s=(n??i)-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 qP({data:e,selected:n}){var h;const i=e.now??Date.now(),s=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(f=>!f.endedAt).length,u=`hsl(${pv(e.sessionId)} 70% 60%)`,c=((h=e.context)==null?void 0:h.currentContextTokens)??0,p=e.kind==="root"&&c>0;return g.jsxs("div",{className:s,style:{"--accent":u},children:[g.jsx("span",{className:"accent-stripe"}),g.jsx(Zs,{type:"target",position:Ce.Left,style:{background:"transparent",border:"none"}}),g.jsxs("div",{className:"head",children:[g.jsxs("div",{className:"title",children:[g.jsx(LP,{state:e.state}),g.jsx("span",{className:"label",title:e.cwd,children:e.label}),e.synthetic&&g.jsx("span",{className:"synth-tag",title:"No SessionStart captured — synthesised",children:"?"})]}),g.jsxs("div",{className:"head-right",children:[p&&e.onOpenContext&&g.jsx(MP,{currentContextTokens:c,modelId:e.model,onClick:()=>e.onOpenContext(e.sessionId)}),g.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:OP(e.startedAt,e.endedAt,i)})]})]}),g.jsxs("div",{className:"sub",children:[e.kind==="root"?"session":"subagent",e.childCount>0&&g.jsxs("span",{className:"spawn-badge",title:`${e.childCount} subagents spawned`,children:["→ ",e.childCount]}),e.cwdBasename&&e.kind==="subagent"?` · ${e.cwdBasename}`:"",e.model&&g.jsx("span",{className:"model-chip",title:e.model,children:la(e.model)})]}),e.tools.length>0&&g.jsx(DP,{tools:e.tools,now:i}),g.jsxs("div",{className:"meta",children:[g.jsxs("span",{children:[g.jsx("b",{children:e.toolCount})," tools"]}),o>0&&g.jsxs("span",{className:"inflight-meta",children:[g.jsx("b",{children:o})," in-flight"]}),e.usage.inputTokens+e.usage.outputTokens>0&&g.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:[g.jsx("b",{children:$P(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&mv(e.model)&&(()=>{const f=ln(e.usage,e.model);if(f.total<=0)return null;const m=Math.max(0,((e.endedAt??i)-e.startedAt)/1e3),y=e.state==="active"?Hl(f.total,m):null,x=PP(e.usage,e.model)+(y?`
59
- burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:x,children:[g.jsx("b",{children:ze(f.total)}),y&&g.jsx("span",{className:"cost-rate",children:y})]})})()]}),g.jsx(Zs,{type:"source",position:Ce.Right,style:{background:"transparent",border:"none"}})]})}function LP({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function $P(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function DP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const x=n-y.startedAt;if(x<0||x>=6e4)continue;const C=23-Math.floor(x/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),p=132,h=14,f=p/24,m=c/(2500/1e3);return g.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${m.toFixed(1)}/s`,children:[g.jsx("svg",{className:"tool-spark",width:p,height:h,viewBox:`0 0 ${p} ${h}`,"aria-hidden":!0,children:l.map((y,x)=>{const C=y===0?1.5:Math.max(1.5,y/c*h),_=x===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:x*f+.4,y:h-C,width:Math.max(.5,f-1),height:C,rx:.8,className:b},x)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function la(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 i=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(i)return`GPT-${i[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function Jw(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function FP(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 zP({tool:e,onClose:n}){A.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const i=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:g.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${i}`}),g.jsx("span",{className:"modal-tool-name",children:e.name}),g.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",children:FP(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:Jw(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",i==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":Jw(e.response??e.errorPreview)})]})]})]})})}const kl=18,ex=26,BP=12;function UP(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,p=u+o.width,h=c+o.height,f=n.get(l.sessionId);f?(f.minX=Math.min(f.minX,u),f.minY=Math.min(f.minY,c),f.maxX=Math.max(f.maxX,p),f.maxY=Math.max(f.maxY,h),l.kind==="root"&&(f.label=tx(l)??f.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:p,maxY:h,label:tx(l)??l.sessionId})}const i=new Map;for(const o of n.values())i.set(o.label,(i.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(i.get(l.label)??0)>1?`${l.label} · ${HP(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-kl,y:l.minY-kl-ex,w:l.maxX-l.minX+kl*2,h:l.maxY-l.minY+kl*2+ex})}return s}function HP(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function tx(e){if(e.kind==="root")return e.label}function VP(){const{x:e,y:n,zoom:i}=cN(),s=aa(),o=Qe(UP,WP);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(p=>{const h=p.data;return(h==null?void 0:h.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=pv(u.sessionId),p={position:"absolute",left:u.x*i+e,top:u.y*i+n,width:u.w*i,height:u.h*i,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},h={position:"absolute",left:u.x*i+e+16*i,top:(u.y-BP)*i+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,i)})`,transformOrigin:"left top"};return g.jsxs(ae.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:p,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:h,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function WP(e,n){if(e.length!==n.length)return!1;for(let i=0;i<e.length;i++){const s=e[i],o=n[i];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 GP({data:e}){return g.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const xN=600,YP=36,Hg=16,KP=60,XP=6,nx=220,rx=96,QP=28,ZP={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 JP(e){return e.startsWith("mcp__")?"mcp":ZP[e]??"other"}const e3={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 ix(e){return e.startsWith("mcp__")?"🔌":e3[e]??"✨"}const t3={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 _N(e){if(!e)return null;let n=e.trim();if(!n)return null;const i=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(i)return _N(i[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 n3(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(i=>typeof i=="string")){const i=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(i[0]??"")){const s=i.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<i.length)return i[s+1]}return i.join(" ")}return typeof n.script=="string"?n.script:null}const r3=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),i3=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function s3(e,n){return i3.has(e)||e.startsWith("mcp__")?Math.max(rx,34+n.length*7.5):rx}function o3(e,n){if(!r3.has(e))return null;const i=n3(n);if(!i)return null;const s=_N(i);return s?{emoji:t3[s]??"⚙️",label:s,category:"shell",detail:i}:null}const a3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),sx={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:"🗄️"},ox={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 l3(e){const i=e.replace(/\\/g,"/").replace(/\/+$/,""),s=i.lastIndexOf("/");return s>=0?i.slice(s+1):i}function u3(e){const n=e.toLowerCase();if(ox[n])return ox[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const i=n.lastIndexOf(".");if(i>0&&i<n.length-1){const s=n.slice(i+1);if(sx[s])return sx[s]}return"📄"}function c3(e,n){if(!n||typeof n!="object")return null;const i=n;if(e==="apply_patch"&&typeof i.patch=="string"){const s=i.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[1].trim():null}return typeof i.file_path=="string"?i.file_path:typeof i.notebook_path=="string"?i.notebook_path:typeof i.path=="string"?i.path:e==="Glob"&&typeof i.pattern=="string"?i.pattern:null}function d3(e,n){if(!a3.has(e))return null;const i=c3(e,n);if(!i)return null;const s=l3(i);return s?{emoji:e==="LS"?"📂":u3(s),label:s,category:"file",detail:i}:null}const SN={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 bN(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),i=n.indexOf("__");return i<=0?{server:n,method:""}:{server:n.slice(0,i),method:n.slice(i+2)}}function f3(e){let n=5381;for(let i=0;i<e.length;i++)n=(n<<5)+n^e.charCodeAt(i);return Math.abs(n)%360}function h3(e,n){const i=bN(e);if(!i)return null;const{server:s,method:o}=i;if(!o)return null;const l=SN[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function p3(e,n){return o3(e,n)??d3(e,n)??h3(e)}const m3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function g3(e){const n=bN(e);if(n){const s=SN[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:f3(n.server)}}const i=m3[e];return i?{emoji:ix(e),label:i}:{emoji:ix(e),label:e}}function v3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function y3(e,n,i){if(i==null)return 1;const s=n-i;return s<0?1:Math.max(0,1-s/xN)}function w3(e,n,i,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>xN)continue;const p=s.get(c.id)??i.get(c.id);if(!p)continue;const h=c.tools.slice(-4);if(h.length===0)continue;const f=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??nx,nx),x=(m==null?void 0:m.height)??130,C=p.x,_=p.y,S=C+y,b=_+x/2;h.forEach((k,N)=>{const j=N*YP,P=C+y+KP,O=_+XP+j,L=y3(k,l,f),B=k.inputPreview??"",T=v3(k),M=L<.999,q=g3(k.name);u.push({id:k.id,toolId:k.id,agentId:c.id,toolName:k.name,name:q.label,emoji:q.emoji,status:T,category:JP(k.name),mcpHue:q.hue,inputPreview:B,fade:L,fading:M,worldX:P,worldY:O,anchorX:S,anchorY:b,spawnDx:S-P,spawnDy:b-(O+Hg)});const Y=p3(k.name,k.input);if(Y){const X=s3(k.name,q.label),I=P+X+QP,H=O,U=P+X,ne=O+Hg;u.push({id:`sub:${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:Y.label,emoji:Y.emoji,isSub:!0,status:T,category:Y.category,inputPreview:Y.detail??B,fade:L,fading:M,worldX:I,worldY:H,anchorX:U,anchorY:ne,spawnDx:U-I,spawnDy:0})}})}return u}function x3({agents:e,visibleAgentIds:n,positions:i,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:p,onOpenTool:h}){const f=w3(e,n,i,s,o,p),m=c&&c.size>0?f.filter(y=>!c.has(y.category)):f;return g.jsx(_3,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:h})}function _3({bursts:e,dimUnmatched:n,spotlight:i,onOpenTool:s}){const{x:o,y:l,zoom:u}=cN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const p=c.anchorX*u+o,h=c.anchorY*u+l,f=(c.worldX+6)*u+o,m=(c.worldY+Hg)*u+l,y=p+(f-p)*.55,x=n!=null&&!n.has(c.agentId),C=i!=null&&!i.has(c.agentId),_=c.fade*(x||C?.14:1);return g.jsx("path",{d:`M ${p} ${h} Q ${y} ${h}, ${f} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const p=c.worldX*u+o,h=c.worldY*u+l,f={left:`${p}px`,top:`${h}px`,transform:`scale(${u})`,transformOrigin:"left top","--spawn-dx":`${c.spawnDx}px`,"--spawn-dy":`${c.spawnDy}px`},m=c.isSub?`${c.toolName} · ${c.name}`:c.toolName,y=c.inputPreview?`${m} · ${c.inputPreview}`:m,x=s!=null,C=c.mcpHue!=null?{"--cat-accent":`hsl(${c.mcpHue} 65% 65%)`}:{},_=n!=null&&!n.has(c.agentId),S=i!=null&&!i.has(c.agentId),b=_||S?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:f,children:g.jsxs("div",{className:`tool-burst cat-${c.category} status-${c.status}${c.fading?" fading":""}${x?" clickable":""}${c.isSub?" sub":""}${b}`,style:C,title:y,role:x?"button":void 0,tabIndex:x?0:void 0,"aria-label":x?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:x?()=>s(c.toolId):void 0,onKeyDown:x?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),s(c.toolId))}:void 0,children:[g.jsx("span",{className:"tb-emoji",children:c.emoji}),g.jsx("span",{className:"tb-name",children:c.name}),c.status==="inflight"&&g.jsx("span",{className:"tb-spin"}),c.status==="done"&&g.jsx("span",{className:"tb-mark done",children:"✓"}),c.status==="err"&&g.jsx("span",{className:"tb-mark err",children:"×"})]})},c.id)})]})}function S3({state:e,sessionId:n,onClose:i}){const s=A.useMemo(()=>k3(e,n),[e,n]);return s?g.jsx("div",{className:"modal-backdrop",onClick:i,role:"presentation",children:g.jsxs("div",{className:"modal session-summary",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[g.jsxs("div",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),g.jsx("span",{id:"ss-title",className:"modal-tool-name",title:s.cwd??s.sessionId,children:s.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),g.jsx("button",{className:"btn",onClick:i,"aria-label":"Close",children:"×"})]})]}),g.jsxs("div",{className:"modal-body",children:[g.jsxs("section",{className:"ss-hero",children:[g.jsxs("div",{className:"ss-hero-left",children:[g.jsx("div",{className:"ss-cost-label",children:"total spend"}),g.jsx("div",{className:"ss-cost",children:ze(s.cost.total)}),s.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>g.jsx("span",{className:"model-chip",title:o,children:la(o)},o))})]}),g.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(b3,{cost:s.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:ze(s.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:ze(s.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:ze(s.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:ze(s.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Fs,{label:"agents",value:s.agentCount}),g.jsx(Fs,{label:"subagents",value:s.subagentCount}),g.jsx(Fs,{label:"tool calls",value:s.toolCount}),g.jsx(Fs,{label:"prompts",value:s.promptCount}),g.jsx(Fs,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&g.jsx(Fs,{label:"errors",value:s.errCount,tone:"err"})]}),s.topTools.length>0&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Most-used tools"}),g.jsx("div",{className:"ss-top-tools",children:s.topTools.map(([o,l])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:o}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Fs({label:e,value:n,tone:i}){return g.jsxs("div",{className:`ss-stat${i?` tone-${i}`:""}`,children:[g.jsx("div",{className:"ss-stat-value",children:n}),g.jsx("div",{className:"ss-stat-label",children:e})]})}function b3({cost:e}){const n=e.total;if(n<=0)return null;const i=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[i(e.input,"cb-input","input"),i(e.output,"cb-output","output"),i(e.cacheRead,"cb-cache-r","cache read"),i(e.cacheWrite,"cb-cache-w","cache write")]})}function k3(e,n){const i=e.agents.get(n);if(!i)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,p=0,h=0,f=0,m=0,y,x=1/0,C=0;for(const N of s){const j=ln(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"&&m++,p+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),h+=N.usage.inputTokens+N.usage.outputTokens,c+=N.toolCount,x=Math.min(x,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const P of N.tools)u.set(P.name,(u.get(P.name)??0)+1),P.ok===!1&&f++}const _=Math.max(0,C-x),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`,k=Array.from(u.entries()).sort((N,j)=>j[1]-N[1]).slice(0,5);return{sessionId:n,label:i.label||i.cwdBasename||"session",cwd:i.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:m,toolCount:c,promptCount:p,tokensSum:h,errCount:f,topTools:k,firstPrompt:y}}function E3(e,n){const i=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.toolCount,l=ln(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.toolCount,l+=ln(c.usage,c.model).total;const p=c.endedAt??c.startedAt;p>u&&(u=p)}i.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 i.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}),i}function N3(e,n,i){const s=(n??i)-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 C3({state:e,now:n,selectedIds:i,onSelect:s,onClose:o}){const l=A.useMemo(()=>E3(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return g.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h3",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),u>0&&g.jsxs("span",{className:"sl-live-count",children:[u," live"]}),g.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),g.jsxs("div",{className:"sl-rows",children:[l.length===0&&g.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(c=>{const p=i.has(c.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${c.state}${p?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[g.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&g.jsx("span",{className:"model-chip",title:c.modelId,children:la(c.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:ze(c.cost)})}),g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:N3(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function ax(e,n){if(!e)return null;const i=n-Math.floor(e/1e3);return i<10?"just now":i<60?`${i}s ago`:i<3600?`${Math.floor(i/60)}m ago`:`${Math.floor(i/3600)}h ago`}function j3(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 Rr(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function R3({cost:e}){const n=e.total;if(n<=0)return null;const i=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[i(e.input,"cb-input","input"),i(e.output,"cb-output","output"),i(e.cacheRead,"cb-cache-r","cache read"),i(e.cacheWrite,"cb-cache-w","cache write")]})}function T3(e,n){const i=e-n;if(i<=0)return null;const s=Math.floor(i/3600),o=Math.floor(i%3600/60);if(s>23){const l=Math.floor(i/86400),u=Math.floor(i%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function A3(e,n,i,s){const o=Math.max(0,n-s),l=Math.max(0,i-o);if(l<120)return null;const u=Math.min(100,l/i*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);m.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Di({pct:e,label:n,reset:i,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=s?T3(s,u):null,x=s&&o?A3(c,s,o,u):null;return g.jsxs("div",{className:"qb-row",children:[g.jsxs("div",{className:"qb-meta",children:[g.jsxs("span",{className:"qb-label",children:[n,l&&g.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),g.jsx("span",{className:"qb-pct",style:{color:h},children:f})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:h,opacity:c===0?.4:1}}),x&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):i?g.jsxs("span",{className:"qb-reset",children:["resets ",i]}):null,x&&g.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const I3=6e4;function M3(){const[e,n]=A.useState(null),[i,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),I3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:i,refresh:()=>l(!0)}}function P3(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 kN=6e4;function O3(){const[e,n]=A.useState(null),[i,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),kN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:i,refresh:()=>l(!0)}}function q3(){const[e,n]=A.useState(null),i=A.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(s(),i.current=window.setInterval(s,kN),()=>{i.current!=null&&window.clearInterval(i.current)}),[]),{data:e}}function L3({state:e,now:n,onClose:i}){var L,B;const{quota:s,loading:o,refresh:l}=M3(),{data:u,loading:c,refresh:p}=O3(),{data:h}=q3(),[f,m]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const T=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(T)},[]);const{byModel:y,totalCost:x,totalTokens:C,burnRate:_}=A.useMemo(()=>{const T=new Map,M={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let q=0,Y=0,X=0,I=0;for(const F of e.agents.values()){const G=F.model??"__unknown__",E=ln(F.usage,F.model),$=T.get(G);$?($.inputTokens+=F.usage.inputTokens,$.outputTokens+=F.usage.outputTokens,$.cacheReadTokens+=F.usage.cacheReadTokens,$.cacheCreateTokens+=F.usage.cacheCreateTokens,$.cost.total+=E.total,$.cost.input+=E.input,$.cost.output+=E.output,$.cost.cacheRead+=E.cacheRead,$.cost.cacheWrite+=E.cacheWrite,$.agentCount++):T.set(G,{model:G,inputTokens:F.usage.inputTokens,outputTokens:F.usage.outputTokens,cacheReadTokens:F.usage.cacheReadTokens,cacheCreateTokens:F.usage.cacheCreateTokens,cost:{...E},agentCount:1}),M.total+=E.total,M.input+=E.input,M.output+=E.output,M.cacheRead+=E.cacheRead,M.cacheWrite+=E.cacheWrite,q+=F.usage.inputTokens,Y+=F.usage.outputTokens,X+=F.usage.cacheReadTokens,I+=F.usage.cacheCreateTokens}const H=Array.from(T.values()).sort((F,G)=>G.cost.total-F.cost.total);let U=0,ne=0;for(const F of e.agents.values()){if(F.state!=="active")continue;const G=ln(F.usage,F.model);U+=G.total,ne=Math.max(ne,((F.endedAt??n)-F.startedAt)/1e3)}const J=ne>0?Hl(U,ne):null;return{byModel:H,totalCost:M,totalTokens:{in:q,out:Y,cacheR:X,cacheC:I},burnRate:J}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const T=[];for(const M of e.agents.values()){if(M.kind!=="root")continue;let q=ln(M.usage,M.model).total,Y=M.usage.inputTokens,X=M.usage.outputTokens;for(const I of e.agents.values())I.sessionId!==M.sessionId||I.kind==="root"||(q+=ln(I.usage,I.model).total,Y+=I.usage.inputTokens,X+=I.usage.outputTokens);T.push({sessionId:M.sessionId,label:M.label||M.cwdBasename||"session",state:M.state,cost:q,inputTokens:Y,outputTokens:X})}return T.sort((M,q)=>q.cost-M.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=C.in+C.out,N=o||c,j=ax(s==null?void 0:s.fetchedAt,f),P=ax(u==null?void 0:u.fetchedAt,f),O=()=>{l(),p()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:O,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:i,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",j&&!o&&g.jsx("span",{className:"up-section-age",title:j3(s==null?void 0:s.source),children:j})]}),s!=null&&s.ok?g.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&g.jsx(Di,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:f}),s.week7dPct!=null&&g.jsx(Di,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:f}),s.weekSonnetPct!=null&&g.jsx(Di,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:f}),s.weekOpusPct!=null&&g.jsx(Di,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:f})]}):(s==null?void 0:s.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),P&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:P})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(L=u.windows)==null?void 0:L.map(T=>g.jsx(Di,{label:T.label,pct:T.pct,reset:T.reset??void 0,resetAt:T.resetAt??void 0,windowSec:T.windowSec??void 0,limitReached:u.limitReached&&T.pct>=100,nowSec:f},T.id)),(B=u.extraWindows)==null?void 0:B.map(T=>g.jsx(Di,{label:T.label,pct:T.pct,reset:T.reset??void 0,resetAt:T.resetAt??void 0,windowSec:T.windowSec??void 0,nowSec:f},T.id)),u.creditLimit&&g.jsx(Di,{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:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Rr(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.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&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.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?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:P3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:ze(x.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(R3,{cost:x}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]}),C.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Rr(C.cacheR)]}),C.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Rr(C.cacheC)]})]}),y.filter(T=>T.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(T=>T.cost.total>0).map(T=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:T.model,children:la(T.model)}),g.jsx("td",{className:"up-num",children:Rr(T.inputTokens+T.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:ze(T.cost.total)})]},T.model))})]})]}),S.filter(T=>T.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(T=>T.cost>0).map(T=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${T.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:T.label}),g.jsx("span",{className:"up-session-tokens",children:Rr(T.inputTokens+T.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:ze(T.cost)})]},T.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const lx=18,$3=1100,zs=(e,n)=>{const i=Math.sin(e*12.9898+n*78.233)*43758.5453;return i-Math.floor(i)},D3=Array.from({length:lx},(e,n)=>{const i=-72+144*n/(lx-1)+(zs(n,1)-.5)*9,s=(i-90)*(Math.PI/180),o=(54+32*Math.cos(i*Math.PI/180))*(.74+zs(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+zs(n,3)*260),delay:Math.round(zs(n,4)*90),dur:760+Math.round(zs(n,5)*260),scale:.8+zs(n,6)*.45,hue:n%4,round:n%3===0}});function ux({anchor:e,lifetimeMs:n=$3}){var l;const[i,s]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.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 p=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!i?null:tI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${i.x}px`,top:`${i.y}px`},"aria-hidden":!0,children:D3.map((u,c)=>g.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 EN=new Set(["awaiting_url","awaiting_code","registering"]);function F3(e){return e!=null&&EN.has(e)}function z3(e){return e!=null&&e!=="done"&&!EN.has(e)}const B3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",U3="the sign-in did not complete";function H3({state:e,serverError:n,localError:i}){const s=e==="idle";return{title:s?"Sign-in ended":"Sign-in failed",message:i||n||(s?B3:U3)}}const V3=1500;async function El(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const W3={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?W3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Vg=ae.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Vg.displayName="SuccessMark";function G3({onClose:e,onChanged:n}){const[i,s]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,m]=A.useState(!1),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),N=A.useRef(null),j=A.useCallback(()=>{S.current&&El({action:"login-cancel"}).catch(()=>{}),e()},[e]);A.useEffect(()=>{const q=Y=>{Y.key==="Escape"&&j()};return window.addEventListener("keydown",q),()=>window.removeEventListener("keydown",q)},[j]);const P=A.useCallback(async()=>{m(!0),x(null),S.current=!0;const q=await El({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){x(od(q,"could not start the sign-in"));return}l(q)},[]);A.useEffect(()=>{if(!F3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const Y=await fetch("/api/claude-accounts/login");Y.ok&&l(await Y.json())}catch{}},V3);return()=>window.clearInterval(q)},[o]),A.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=b.current)==null||q.focus()),(o==null?void 0:o.state)==="done"&&n()},[o==null?void 0:o.state,n]),A.useEffect(()=>{var q;i==="paste"&&((q=k.current)==null||q.focus())},[i]);const O=A.useCallback(async()=>{var Y;m(!0),x(null);const q=await El({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){x(od(q,"the code was not accepted")),q!=null&&q.state&&l(q),(Y=b.current)==null||Y.select();return}c(""),l(q)},[u,o]),L=A.useCallback(async()=>{m(!0),x(null);const q=await El({action:"import",blob:p}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){x(od(q,"the import failed"));return}h(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[p,n]),B=(o==null?void 0:o.state)==="done"?o.account:null,T=z3(o==null?void 0:o.state)||!!(y&&S.current&&!f),M=H3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:j,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":i==="login",className:`aa-tab${i==="login"?" on":""}`,onClick:()=>s("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":i==="paste",className:`aa-tab${i==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:i==="login"?B?g.jsxs("div",{className:"aa-done",children:[g.jsx(Vg,{ref:N}),g.jsx(ux,{anchor:N}),g.jsx("h4",{children:B.added?`Account ${B.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:B.email}),B.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.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"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!f&&O()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!u.trim()||o.state==="registering",onClick:O,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.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."})]})]}):T?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:M.title}),g.jsx("p",{className:"aa-err",children:M.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),P()},children:"Try again"})]}):f||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.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."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:P,disabled:f,children:"Open the sign-in page"})})]}):C?g.jsxs("div",{className:"aa-done",children:[g.jsx(Vg,{ref:N}),C.added&&g.jsx(ux,{anchor:N}),g.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:C.added?g.jsxs(g.Fragment,{children:[C.email?g.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."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:p,onChange:q=>h(q.target.value),onKeyDown:q=>{q.key==="Enter"&&p.trim()&&!f&&L()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:L,children:f?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.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 Y3=15e3,K3=[70,80,85,90,95];function X3(e,n){const i=e-n;if(i<=0)return null;const s=Math.floor(i/86400),o=Math.floor(i%86400/3600),l=Math.floor(i%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function cx(e,n){const i=n-Math.floor(e/1e3);return i<60?"just now":i<3600?`${Math.floor(i/60)}m ago`:i<86400?`${Math.floor(i/3600)}h ago`:`${Math.floor(i/86400)}d ago`}function Q3(e,n){if(!e)return"";const i=Math.floor(e/1e3)-n;return i<=0?" · due":i<60?` · next in ${i}s`:` · next in ${Math.round(i/60)}m`}function Z3(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 J3({lane:e,nowSec:n}){const i=Math.min(100,Math.max(0,e.pct)),s=i>=90?"var(--err)":i>=70?"var(--warn)":"var(--accent)",o=e.resetAt?X3(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${i===0?1.5:i}%`,background:s,opacity:i===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[i,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function eO(e){const n=e.map(s=>s.num),i=n.length?Math.max(...n):0;return[...new Set([...n,i+1])].sort((s,o)=>s-o)}async function tO(e){var i;let n=!1;try{n=await Promise.race([((i=navigator.clipboard)==null?void 0:i.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 nO(e,n){const i=Math.round(e/1e3)-n;return i<=0?{text:"expired",tone:"gone"}:i<60?{text:`expires in ${i}s`,tone:"soon"}:{text:`expires in ${Math.round(i/60)}m`,tone:"ok"}}function rO({onClose:e}){var J,F,G;const[n,i]=A.useState(null),[s,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(null),[h,f]=A.useState(null),[m,y]=A.useState(()=>Math.floor(Date.now()/1e3)),x=A.useRef(null),[C,_]=A.useState(null),[S,b]=A.useState(!1),[k,N]=A.useState(""),[j,P]=A.useState(null),[O,L]=A.useState(null),[B,T]=A.useState(!1),M=A.useCallback(async(E=!1)=>{try{const[$,se]=await Promise.all([fetch(`/api/claude-accounts${E?"?refresh=1":""}`),fetch("/api/cswap-auto")]);$.ok&&i(await $.json()),se.ok&&o(await se.json())}catch{}},[]),q=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]),Y=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]);A.useEffect(()=>(M(!0),x.current=window.setInterval(()=>M(!1),Y3),()=>{x.current!=null&&window.clearInterval(x.current)}),[M]),A.useEffect(()=>{const E=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(E)},[]);const X=((J=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:J.value)??"90",I=(F=n==null?void 0:n.accounts)==null?void 0:F.find(E=>E.active),H=I!=null&&I.lanes.length?Math.max(...I.lanes.map(E=>E.pct)):null,U=H!=null&&H>=Number(X)-15,ne=async E=>{p(E),f(null);try{const se=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:E})})).json().catch(()=>null);se!=null&&se.ok||f((se==null?void 0:se.output)||(se==null?void 0:se.reason)||"switch failed"),await M(!0)}catch{f("server unreachable")}finally{p(null)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.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:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>M(!0),title:"Reload from claude-swap",children:"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(G=n.accounts)==null?void 0:G.map(E=>g.jsxs("div",{className:`ap-account${E.active?" active":""}${E.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:E.num}),E.alias&&g.jsx("span",{className:"ap-alias",children:E.alias}),g.jsx("span",{className:"ap-email",title:E.org??void 0,children:E.email}),g.jsx("button",{type:"button",className:`ap-more${C===E.num?" on":""}`,"aria-label":`Manage account ${E.num}`,"aria-expanded":C===E.num,title:"Share, rename, move, remove",onClick:()=>{_(C===E.num?null:E.num),N(E.alias??""),P(null),L(null),T(!1)},children:"⋯"}),E.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||E.disabled,onClick:()=>ne(E.num),title:E.disabled?"Held out of rotation":`Switch to ${E.alias??E.email}`,children:c===E.num?"…":"switch"})]}),E.lanes.length>0?E.lanes.map($=>g.jsx(J3,{lane:$,nowSec:m},$.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[E.error&&(()=>{const $=Z3(E.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:$.hint,children:$.text}),$.fixable&&g.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))&&!E.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>q({action:"account",account:E.num,enabled:E.disabled},`rot-${E.num}`).then(()=>M(!0)),title:E.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:E.disabled?"held out":"in rotation"}),E.fetchedAt?g.jsxs("span",{className:`ap-age${E.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 ",cx(E.fetchedAt,m),Q3(E.nextAt,m)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===E.num&&g.jsxs("div",{className:"ap-manage",children:[g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"name"}),g.jsx("input",{className:"ap-manage-input",type:"text",value:k,onChange:$=>N($.target.value),onKeyDown:$=>{$.key==="Enter"&&Y({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>M(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${E.num}`}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||k.trim()===(E.alias??""),onClick:()=>Y({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>M(!0)),title:"A short name to show instead of the email",children:"save"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{"aria-label":`Slot for account ${E.num}`,value:String(E.num),disabled:l!=null,onChange:$=>Y({action:"move",account:E.num,slot:Number($.target.value)},`move-${E.num}`).then(()=>M(!0)),children:eO(n.accounts??[]).map($=>g.jsx("option",{value:$,children:$},$))})}),g.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.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()=>{T(!1);const $=await Y({action:"share",account:E.num},`share-${E.num}`);$!=null&&$.ok&&L({num:E.num,blob:$.blob,expiresAt:$.expiresAt})},children:"share…"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${j===E.num?" armed":""}`,disabled:l!=null,title:j===E.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(j!==E.num){P(E.num),window.setTimeout(()=>P($=>$===E.num?null:$),4e3);return}P(null),Y({action:"remove",account:E.num},`rm-${E.num}`).then(()=>{_(null),M(!0)})},children:j===E.num?"confirm remove":"remove"})]}),(O==null?void 0:O.num)===E.num&&(()=>{const $=nO(O.expiresAt,m),se=$.tone==="gone";return g.jsxs("div",{className:`ap-share${se?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:O.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(se){T(!1);const D=await Y({action:"share",account:E.num},`share-${E.num}`);D!=null&&D.ok&&L({num:E.num,blob:D.blob,expiresAt:D.expiresAt});return}await tO(O.blob)&&(T(!0),window.setTimeout(()=>T(!1),1800))},children:se?"make a new share":B?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${$.tone}`,children:$.text})]})]})]})})()]})]},E.num)),(s==null?void 0:s.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[H!=null&&g.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(H),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:X,disabled:l!=null,onChange:E=>q({action:"setting",key:"autoswitch.threshold",value:E.target.value},"threshold").then(()=>M(!0)),children:K3.map(E=>g.jsxs("option",{value:E,children:[E,"%"]},E))})}),g.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>q({action:"enable",enabled:!s.enabled},"enable").then(()=>M(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.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&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",cx(s.lastTick.at,m)]})})]}),h&&g.jsx("div",{className:"ap-failure",children:h}),g.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."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.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&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),S&&g.jsx(G3,{onClose:()=>b(!1),onChanged:()=>M(!0)})]})}const iO=3e4;function sO({bundle:e,running:n,lastTried:i}){return!n||e===n?!1:i!==n}function oO(e){const n=e.thresholdMs??iO;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 aO(e){return e.ctrlKey||e.metaKey||e.altKey}function dx(e,n){if(n.size!==0)for(const i of Array.from(e.keys()))n.has(i)||e.delete(i)}const lO=40,uO=120;function cO(e,n){let i=null,s=0,o=Number.NEGATIVE_INFINITY;const l=()=>{i=null,o=n.now(),e()},u=()=>{i!=null&&(n.clearTimeout(i),i=null)},c=(p,h,f)=>{if(i!=null){if(s<=p)return;u()}const m=Math.min(f,Math.max(0,p-h));s=p,i=n.setTimeout(l,m)};return{live(p=lO){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=uO){u(),s=n.now()+p,i=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function dO(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function Fi(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 fx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function Nl(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 fO(e){return new Date(Date.now()-(e-1)*864e5).toISOString().slice(0,10).replace(/-/g,"")}const hO=[7,14,30,90];function pO(e){const[n,i]=A.useState(null),[s,o]=A.useState(!1),l=A.useRef(dO()).current,u=(c=!1)=>{const p=l.begin();o(!0);const f=`/api/ccusage?since=${fO(e)}${c?"&refresh=1":""}`;fetch(f).then(m=>m.json()).then(m=>{p()&&i(m)}).catch(()=>{p()&&i({ok:!1,error:"request failed"})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{data:n,loading:s,reload:()=>u(!0)}}function mO({onClose:e}){var b,k;const[n,i]=A.useState(30),[s,o]=A.useState(null),{data:l,loading:u,reload:c}=pO(n);A.useEffect(()=>{const N=j=>{j.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const p=l!=null&&l.ok?l.days??[]:[],h=A.useMemo(()=>p.reduce((N,j)=>Math.max(N,j.totalCost),0),[p]),{totalCost:f,totalTok:m,inOut:y,cacheRead:x,modelCosts:C}=A.useMemo(()=>{let N=0,j=0,P=0,O=0;const L=new Map;for(const B of p){N+=B.totalCost,j+=B.totalTokens,P+=B.inputTokens+B.outputTokens,O+=B.cacheReadTokens;for(const T of B.modelBreakdowns)L.set(T.modelName,(L.get(T.modelName)??0)+T.cost)}return{totalCost:N,totalTok:j,inOut:P,cacheRead:O,modelCosts:L}},[p]),_=A.useMemo(()=>Array.from(C.entries()).sort((N,j)=>j[1]-N[1]),[C]),S=s?p.find(N=>N.period===s)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:hO.map(N=>g.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{i(N),o(null)},children:[N,"d"]},N))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&p.length===0?g.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?g.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):p.length===0?g.jsx("div",{className:"uh-status",children:"no usage in this range"}):g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(Cl,{label:"total cost",val:ze(f),accent:!0}),g.jsx(Cl,{label:"tokens",val:Fi(m)}),g.jsx(Cl,{label:"input+output",val:Fi(y)}),g.jsx(Cl,{label:"cache reads",val:Fi(x)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(N=>{const j=h>0?N.totalCost/h*100:0,P=N.period===s;return g.jsxs("button",{className:`uh-bar-col${P?" sel":""}`,onClick:()=>o(P?null:N.period),title:`${N.period} · ${ze(N.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(j,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((O,L)=>L.cost-O.cost).map(O=>{const L=N.totalCost>0?O.cost/N.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${L}%`,background:Nl(O.modelName)}},O.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),g.jsx("div",{className:"uh-legend",children:_.map(([N,j])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Nl(N)}}),fx(N)," ",g.jsx("span",{className:"uh-legend-cost",children:ze(j)})]},N))}),S&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:S.period}),g.jsx("span",{className:"uh-detail-cost",children:ze(S.totalCost)}),(k=(b=S.metadata)==null?void 0:b.agents)!=null&&k.length?g.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(jl,{label:"input",val:Fi(S.inputTokens)}),g.jsx(jl,{label:"output",val:Fi(S.outputTokens)}),g.jsx(jl,{label:"cache write",val:Fi(S.cacheCreationTokens)}),g.jsx(jl,{label:"cache read",val:Fi(S.cacheReadTokens)})]}),g.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 g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Nl(N.modelName)}}),fx(N.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${j}%`,background:Nl(N.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:ze(N.cost)})]},N.modelName)})})]})]})]})})}function Cl({label:e,val:n,accent:i}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${i?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function jl({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.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,hx;function gO(){if(hx)return ad;hx=1;function e(){this.__data__=[],this.size=0}return ad=e,ad}var ld,px;function Js(){if(px)return ld;px=1;function e(n,i){return n===i||n!==n&&i!==i}return ld=e,ld}var ud,mx;function Jl(){if(mx)return ud;mx=1;var e=Js();function n(i,s){for(var o=i.length;o--;)if(e(i[o][0],s))return o;return-1}return ud=n,ud}var cd,gx;function vO(){if(gx)return cd;gx=1;var e=Jl(),n=Array.prototype,i=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():i.call(l,u,1),--this.size,!0}return cd=s,cd}var dd,vx;function yO(){if(vx)return dd;vx=1;var e=Jl();function n(i){var s=this.__data__,o=e(s,i);return o<0?void 0:s[o][1]}return dd=n,dd}var fd,yx;function wO(){if(yx)return fd;yx=1;var e=Jl();function n(i){return e(this.__data__,i)>-1}return fd=n,fd}var hd,wx;function xO(){if(wx)return hd;wx=1;var e=Jl();function n(i,s){var o=this.__data__,l=e(o,i);return l<0?(++this.size,o.push([i,s])):o[l][1]=s,this}return hd=n,hd}var pd,xx;function eu(){if(xx)return pd;xx=1;var e=gO(),n=vO(),i=yO(),s=wO(),o=xO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=i,l.prototype.has=s,l.prototype.set=o,pd=l,pd}var md,_x;function _O(){if(_x)return md;_x=1;var e=eu();function n(){this.__data__=new e,this.size=0}return md=n,md}var gd,Sx;function SO(){if(Sx)return gd;Sx=1;function e(n){var i=this.__data__,s=i.delete(n);return this.size=i.size,s}return gd=e,gd}var vd,bx;function bO(){if(bx)return vd;bx=1;function e(n){return this.__data__.get(n)}return vd=e,vd}var yd,kx;function kO(){if(kx)return yd;kx=1;function e(n){return this.__data__.has(n)}return yd=e,yd}var wd,Ex;function NN(){if(Ex)return wd;Ex=1;var e=typeof hl=="object"&&hl&&hl.Object===Object&&hl;return wd=e,wd}var xd,Nx;function Kn(){if(Nx)return xd;Nx=1;var e=NN(),n=typeof self=="object"&&self&&self.Object===Object&&self,i=e||n||Function("return this")();return xd=i,xd}var _d,Cx;function eo(){if(Cx)return _d;Cx=1;var e=Kn(),n=e.Symbol;return _d=n,_d}var Sd,jx;function EO(){if(jx)return Sd;jx=1;var e=eo(),n=Object.prototype,i=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=i.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=s.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Sd=l,Sd}var bd,Rx;function NO(){if(Rx)return bd;Rx=1;var e=Object.prototype,n=e.toString;function i(s){return n.call(s)}return bd=i,bd}var kd,Tx;function Xi(){if(Tx)return kd;Tx=1;var e=eo(),n=EO(),i=NO(),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):i(c)}return kd=u,kd}var Ed,Ax;function An(){if(Ax)return Ed;Ax=1;function e(n){var i=typeof n;return n!=null&&(i=="object"||i=="function")}return Ed=e,Ed}var Nd,Ix;function ua(){if(Ix)return Nd;Ix=1;var e=Xi(),n=An(),i="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==s||p==o||p==i||p==l}return Nd=u,Nd}var Cd,Mx;function CO(){if(Mx)return Cd;Mx=1;var e=Kn(),n=e["__core-js_shared__"];return Cd=n,Cd}var jd,Px;function jO(){if(Px)return jd;Px=1;var e=CO(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function i(s){return!!n&&n in s}return jd=i,jd}var Rd,Ox;function CN(){if(Ox)return Rd;Ox=1;var e=Function.prototype,n=e.toString;function i(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Rd=i,Rd}var Td,qx;function RO(){if(qx)return Td;qx=1;var e=ua(),n=jO(),i=An(),s=CN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!i(y)||n(y))return!1;var x=e(y)?f:l;return x.test(s(y))}return Td=m,Td}var Ad,Lx;function TO(){if(Lx)return Ad;Lx=1;function e(n,i){return n==null?void 0:n[i]}return Ad=e,Ad}var Id,$x;function Qi(){if($x)return Id;$x=1;var e=RO(),n=TO();function i(s,o){var l=n(s,o);return e(l)?l:void 0}return Id=i,Id}var Md,Dx;function vv(){if(Dx)return Md;Dx=1;var e=Qi(),n=Kn(),i=e(n,"Map");return Md=i,Md}var Pd,Fx;function tu(){if(Fx)return Pd;Fx=1;var e=Qi(),n=e(Object,"create");return Pd=n,Pd}var Od,zx;function AO(){if(zx)return Od;zx=1;var e=tu();function n(){this.__data__=e?e(null):{},this.size=0}return Od=n,Od}var qd,Bx;function IO(){if(Bx)return qd;Bx=1;function e(n){var i=this.has(n)&&delete this.__data__[n];return this.size-=i?1:0,i}return qd=e,qd}var Ld,Ux;function MO(){if(Ux)return Ld;Ux=1;var e=tu(),n="__lodash_hash_undefined__",i=Object.prototype,s=i.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,Hx;function PO(){if(Hx)return $d;Hx=1;var e=tu(),n=Object.prototype,i=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:i.call(l,o)}return $d=s,$d}var Dd,Vx;function OO(){if(Vx)return Dd;Vx=1;var e=tu(),n="__lodash_hash_undefined__";function i(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=i,Dd}var Fd,Wx;function qO(){if(Wx)return Fd;Wx=1;var e=AO(),n=IO(),i=MO(),s=PO(),o=OO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=i,l.prototype.has=s,l.prototype.set=o,Fd=l,Fd}var zd,Gx;function LO(){if(Gx)return zd;Gx=1;var e=qO(),n=eu(),i=vv();function s(){this.size=0,this.__data__={hash:new e,map:new(i||n),string:new e}}return zd=s,zd}var Bd,Yx;function $O(){if(Yx)return Bd;Yx=1;function e(n){var i=typeof n;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?n!=="__proto__":n===null}return Bd=e,Bd}var Ud,Kx;function nu(){if(Kx)return Ud;Kx=1;var e=$O();function n(i,s){var o=i.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Ud=n,Ud}var Hd,Xx;function DO(){if(Xx)return Hd;Xx=1;var e=nu();function n(i){var s=e(this,i).delete(i);return this.size-=s?1:0,s}return Hd=n,Hd}var Vd,Qx;function FO(){if(Qx)return Vd;Qx=1;var e=nu();function n(i){return e(this,i).get(i)}return Vd=n,Vd}var Wd,Zx;function zO(){if(Zx)return Wd;Zx=1;var e=nu();function n(i){return e(this,i).has(i)}return Wd=n,Wd}var Gd,Jx;function BO(){if(Jx)return Gd;Jx=1;var e=nu();function n(i,s){var o=e(this,i),l=o.size;return o.set(i,s),this.size+=o.size==l?0:1,this}return Gd=n,Gd}var Yd,e_;function yv(){if(e_)return Yd;e_=1;var e=LO(),n=DO(),i=FO(),s=zO(),o=BO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=i,l.prototype.has=s,l.prototype.set=o,Yd=l,Yd}var Kd,t_;function UO(){if(t_)return Kd;t_=1;var e=eu(),n=vv(),i=yv(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<s-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new i(p)}return c.set(l,u),this.size=c.size,this}return Kd=o,Kd}var Xd,n_;function ru(){if(n_)return Xd;n_=1;var e=eu(),n=_O(),i=SO(),s=bO(),o=kO(),l=UO();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=i,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,Xd=u,Xd}var Qd,r_;function wv(){if(r_)return Qd;r_=1;function e(n,i){for(var s=-1,o=n==null?0:n.length;++s<o&&i(n[s],s,n)!==!1;);return n}return Qd=e,Qd}var Zd,i_;function jN(){if(i_)return Zd;i_=1;var e=Qi(),n=(function(){try{var i=e(Object,"defineProperty");return i({},"",{}),i}catch{}})();return Zd=n,Zd}var Jd,s_;function iu(){if(s_)return Jd;s_=1;var e=jN();function n(i,s,o){s=="__proto__"&&e?e(i,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):i[s]=o}return Jd=n,Jd}var ef,o_;function su(){if(o_)return ef;o_=1;var e=iu(),n=Js(),i=Object.prototype,s=i.hasOwnProperty;function o(l,u,c){var p=l[u];(!(s.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return ef=o,ef}var tf,a_;function ca(){if(a_)return tf;a_=1;var e=su(),n=iu();function i(s,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],m=u?u(l[f],s[f],f,l,s):void 0;m===void 0&&(m=s[f]),c?n(l,f,m):e(l,f,m)}return l}return tf=i,tf}var nf,l_;function HO(){if(l_)return nf;l_=1;function e(n,i){for(var s=-1,o=Array(n);++s<n;)o[s]=i(s);return o}return nf=e,nf}var rf,u_;function ur(){if(u_)return rf;u_=1;function e(n){return n!=null&&typeof n=="object"}return rf=e,rf}var sf,c_;function VO(){if(c_)return sf;c_=1;var e=Xi(),n=ur(),i="[object Arguments]";function s(o){return n(o)&&e(o)==i}return sf=s,sf}var of,d_;function da(){if(d_)return of;d_=1;var e=VO(),n=ur(),i=Object.prototype,s=i.hasOwnProperty,o=i.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,f_;function bt(){if(f_)return af;f_=1;var e=Array.isArray;return af=e,af}var Ho={exports:{}},lf,h_;function WO(){if(h_)return lf;h_=1;function e(){return!1}return lf=e,lf}Ho.exports;var p_;function to(){return p_||(p_=1,(function(e,n){var i=Kn(),s=WO(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?i.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||s;e.exports=h})(Ho,Ho.exports)),Ho.exports}var uf,m_;function ou(){if(m_)return uf;m_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function i(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=i,uf}var cf,g_;function xv(){if(g_)return cf;g_=1;var e=9007199254740991;function n(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=e}return cf=n,cf}var df,v_;function GO(){if(v_)return df;v_=1;var e=Xi(),n=xv(),i=ur(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",m="[object Object]",y="[object RegExp]",x="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",N="[object Float64Array]",j="[object Int8Array]",P="[object Int16Array]",O="[object Int32Array]",L="[object Uint8Array]",B="[object Uint8ClampedArray]",T="[object Uint16Array]",M="[object Uint32Array]",q={};q[k]=q[N]=q[j]=q[P]=q[O]=q[L]=q[B]=q[T]=q[M]=!0,q[s]=q[o]=q[S]=q[l]=q[b]=q[u]=q[c]=q[p]=q[h]=q[f]=q[m]=q[y]=q[x]=q[C]=q[_]=!1;function Y(X){return i(X)&&n(X.length)&&!!q[e(X)]}return df=Y,df}var ff,y_;function au(){if(y_)return ff;y_=1;function e(n){return function(i){return n(i)}}return ff=e,ff}var Vo={exports:{}};Vo.exports;var w_;function _v(){return w_||(w_=1,(function(e,n){var i=NN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&i.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Vo,Vo.exports)),Vo.exports}var hf,x_;function fa(){if(x_)return hf;x_=1;var e=GO(),n=au(),i=_v(),s=i&&i.isTypedArray,o=s?n(s):e;return hf=o,hf}var pf,__;function RN(){if(__)return pf;__=1;var e=HO(),n=da(),i=bt(),s=to(),o=ou(),l=fa(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var m=i(h),y=!m&&n(h),x=!m&&!y&&s(h),C=!m&&!y&&!x&&l(h),_=m||y||x||C,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return pf=p,pf}var mf,S_;function lu(){if(S_)return mf;S_=1;var e=Object.prototype;function n(i){var s=i&&i.constructor,o=typeof s=="function"&&s.prototype||e;return i===o}return mf=n,mf}var gf,b_;function TN(){if(b_)return gf;b_=1;function e(n,i){return function(s){return n(i(s))}}return gf=e,gf}var vf,k_;function YO(){if(k_)return vf;k_=1;var e=TN(),n=e(Object.keys,Object);return vf=n,vf}var yf,E_;function Sv(){if(E_)return yf;E_=1;var e=lu(),n=YO(),i=Object.prototype,s=i.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,N_;function Pr(){if(N_)return wf;N_=1;var e=ua(),n=xv();function i(s){return s!=null&&n(s.length)&&!e(s)}return wf=i,wf}var xf,C_;function gi(){if(C_)return xf;C_=1;var e=RN(),n=Sv(),i=Pr();function s(o){return i(o)?e(o):n(o)}return xf=s,xf}var _f,j_;function KO(){if(j_)return _f;j_=1;var e=ca(),n=gi();function i(s,o){return s&&e(o,n(o),s)}return _f=i,_f}var Sf,R_;function XO(){if(R_)return Sf;R_=1;function e(n){var i=[];if(n!=null)for(var s in Object(n))i.push(s);return i}return Sf=e,Sf}var bf,T_;function QO(){if(T_)return bf;T_=1;var e=An(),n=lu(),i=XO(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return i(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return bf=l,bf}var kf,A_;function Zi(){if(A_)return kf;A_=1;var e=RN(),n=QO(),i=Pr();function s(o){return i(o)?e(o,!0):n(o)}return kf=s,kf}var Ef,I_;function ZO(){if(I_)return Ef;I_=1;var e=ca(),n=Zi();function i(s,o){return s&&e(o,n(o),s)}return Ef=i,Ef}var Wo={exports:{}};Wo.exports;var M_;function AN(){return M_||(M_=1,(function(e,n){var i=Kn(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?i.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var m=h.length,y=c?c(m):new h.constructor(m);return h.copy(y),y}e.exports=p})(Wo,Wo.exports)),Wo.exports}var Nf,P_;function IN(){if(P_)return Nf;P_=1;function e(n,i){var s=-1,o=n.length;for(i||(i=Array(o));++s<o;)i[s]=n[s];return i}return Nf=e,Nf}var Cf,O_;function MN(){if(O_)return Cf;O_=1;function e(n,i){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];i(c,s,n)&&(u[l++]=c)}return u}return Cf=e,Cf}var jf,q_;function PN(){if(q_)return jf;q_=1;function e(){return[]}return jf=e,jf}var Rf,L_;function bv(){if(L_)return Rf;L_=1;var e=MN(),n=PN(),i=Object.prototype,s=i.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,$_;function JO(){if($_)return Tf;$_=1;var e=ca(),n=bv();function i(s,o){return e(s,n(s),o)}return Tf=i,Tf}var Af,D_;function kv(){if(D_)return Af;D_=1;function e(n,i){for(var s=-1,o=i.length,l=n.length;++s<o;)n[l+s]=i[s];return n}return Af=e,Af}var If,F_;function uu(){if(F_)return If;F_=1;var e=TN(),n=e(Object.getPrototypeOf,Object);return If=n,If}var Mf,z_;function ON(){if(z_)return Mf;z_=1;var e=kv(),n=uu(),i=bv(),s=PN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,i(u)),u=n(u);return c}:s;return Mf=l,Mf}var Pf,B_;function eq(){if(B_)return Pf;B_=1;var e=ca(),n=ON();function i(s,o){return e(s,n(s),o)}return Pf=i,Pf}var Of,U_;function qN(){if(U_)return Of;U_=1;var e=kv(),n=bt();function i(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return Of=i,Of}var qf,H_;function LN(){if(H_)return qf;H_=1;var e=qN(),n=bv(),i=gi();function s(o){return e(o,i,n)}return qf=s,qf}var Lf,V_;function tq(){if(V_)return Lf;V_=1;var e=qN(),n=ON(),i=Zi();function s(o){return e(o,i,n)}return Lf=s,Lf}var $f,W_;function nq(){if(W_)return $f;W_=1;var e=Qi(),n=Kn(),i=e(n,"DataView");return $f=i,$f}var Df,G_;function rq(){if(G_)return Df;G_=1;var e=Qi(),n=Kn(),i=e(n,"Promise");return Df=i,Df}var Ff,Y_;function $N(){if(Y_)return Ff;Y_=1;var e=Qi(),n=Kn(),i=e(n,"Set");return Ff=i,Ff}var zf,K_;function iq(){if(K_)return zf;K_=1;var e=Qi(),n=Kn(),i=e(n,"WeakMap");return zf=i,zf}var Bf,X_;function no(){if(X_)return Bf;X_=1;var e=nq(),n=vv(),i=rq(),s=$N(),o=iq(),l=Xi(),u=CN(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",m="[object WeakMap]",y="[object DataView]",x=u(e),C=u(n),_=u(i),S=u(s),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||i&&k(i.resolve())!=h||s&&k(new s)!=f||o&&k(new o)!=m)&&(k=function(N){var j=l(N),P=j==p?N.constructor:void 0,O=P?u(P):"";if(O)switch(O){case x:return y;case C:return c;case _:return h;case S:return f;case b:return m}return j}),Bf=k,Bf}var Uf,Q_;function sq(){if(Q_)return Uf;Q_=1;var e=Object.prototype,n=e.hasOwnProperty;function i(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=i,Uf}var Hf,Z_;function DN(){if(Z_)return Hf;Z_=1;var e=Kn(),n=e.Uint8Array;return Hf=n,Hf}var Vf,J_;function Ev(){if(J_)return Vf;J_=1;var e=DN();function n(i){var s=new i.constructor(i.byteLength);return new e(s).set(new e(i)),s}return Vf=n,Vf}var Wf,e1;function oq(){if(e1)return Wf;e1=1;var e=Ev();function n(i,s){var o=s?e(i.buffer):i.buffer;return new i.constructor(o,i.byteOffset,i.byteLength)}return Wf=n,Wf}var Gf,t1;function aq(){if(t1)return Gf;t1=1;var e=/\w*$/;function n(i){var s=new i.constructor(i.source,e.exec(i));return s.lastIndex=i.lastIndex,s}return Gf=n,Gf}var Yf,n1;function lq(){if(n1)return Yf;n1=1;var e=eo(),n=e?e.prototype:void 0,i=n?n.valueOf:void 0;function s(o){return i?Object(i.call(o)):{}}return Yf=s,Yf}var Kf,r1;function FN(){if(r1)return Kf;r1=1;var e=Ev();function n(i,s){var o=s?e(i.buffer):i.buffer;return new i.constructor(o,i.byteOffset,i.length)}return Kf=n,Kf}var Xf,i1;function uq(){if(i1)return Xf;i1=1;var e=Ev(),n=oq(),i=aq(),s=lq(),o=FN(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",m="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",N="[object Int32Array]",j="[object Uint8Array]",P="[object Uint8ClampedArray]",O="[object Uint16Array]",L="[object Uint32Array]";function B(T,M,q){var Y=T.constructor;switch(M){case x:return e(T);case l:case u:return new Y(+T);case C:return n(T,q);case _:case S:case b:case k:case N:case j:case P:case O:case L:return o(T,q);case c:return new Y;case p:case m:return new Y(T);case h:return i(T);case f:return new Y;case y:return s(T)}}return Xf=B,Xf}var Qf,s1;function zN(){if(s1)return Qf;s1=1;var e=An(),n=Object.create,i=(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=i,Qf}var Zf,o1;function BN(){if(o1)return Zf;o1=1;var e=zN(),n=uu(),i=lu();function s(o){return typeof o.constructor=="function"&&!i(o)?e(n(o)):{}}return Zf=s,Zf}var Jf,a1;function cq(){if(a1)return Jf;a1=1;var e=no(),n=ur(),i="[object Map]";function s(o){return n(o)&&e(o)==i}return Jf=s,Jf}var eh,l1;function dq(){if(l1)return eh;l1=1;var e=cq(),n=au(),i=_v(),s=i&&i.isMap,o=s?n(s):e;return eh=o,eh}var th,u1;function fq(){if(u1)return th;u1=1;var e=no(),n=ur(),i="[object Set]";function s(o){return n(o)&&e(o)==i}return th=s,th}var nh,c1;function hq(){if(c1)return nh;c1=1;var e=fq(),n=au(),i=_v(),s=i&&i.isSet,o=s?n(s):e;return nh=o,nh}var rh,d1;function UN(){if(d1)return rh;d1=1;var e=ru(),n=wv(),i=su(),s=KO(),o=ZO(),l=AN(),u=IN(),c=JO(),p=eq(),h=LN(),f=tq(),m=no(),y=sq(),x=uq(),C=BN(),_=bt(),S=to(),b=dq(),k=An(),N=hq(),j=gi(),P=Zi(),O=1,L=2,B=4,T="[object Arguments]",M="[object Array]",q="[object Boolean]",Y="[object Date]",X="[object Error]",I="[object Function]",H="[object GeneratorFunction]",U="[object Map]",ne="[object Number]",J="[object Object]",F="[object RegExp]",G="[object Set]",E="[object String]",$="[object Symbol]",se="[object WeakMap]",D="[object ArrayBuffer]",Q="[object DataView]",ee="[object Float32Array]",oe="[object Float64Array]",le="[object Int8Array]",ge="[object Int16Array]",de="[object Int32Array]",Ae="[object Uint8Array]",He="[object Uint8ClampedArray]",Me="[object Uint16Array]",Te="[object Uint32Array]",ke={};ke[T]=ke[M]=ke[D]=ke[Q]=ke[q]=ke[Y]=ke[ee]=ke[oe]=ke[le]=ke[ge]=ke[de]=ke[U]=ke[ne]=ke[J]=ke[F]=ke[G]=ke[E]=ke[$]=ke[Ae]=ke[He]=ke[Me]=ke[Te]=!0,ke[X]=ke[I]=ke[se]=!1;function Ke(ye,we,Ve,ut,ct,We){var $e,it=we&O,wt=we&L,et=we&B;if(Ve&&($e=ct?Ve(ye,ut,ct,We):Ve(ye)),$e!==void 0)return $e;if(!k(ye))return ye;var $t=_(ye);if($t){if($e=y(ye),!it)return u(ye,$e)}else{var gt=m(ye),kt=gt==I||gt==H;if(S(ye))return l(ye,it);if(gt==J||gt==T||kt&&!ct){if($e=wt||kt?{}:C(ye),!it)return wt?p(ye,o($e,ye)):c(ye,s($e,ye))}else{if(!ke[gt])return ct?ye:{};$e=x(ye,gt,it)}}We||(We=new e);var Pt=We.get(ye);if(Pt)return Pt;We.set(ye,$e),N(ye)?ye.forEach(function(vt){$e.add(Ke(vt,we,Ve,vt,ye,We))}):b(ye)&&ye.forEach(function(vt,st){$e.set(st,Ke(vt,we,Ve,st,ye,We))});var Ge=et?wt?f:h:wt?P:j,De=$t?void 0:Ge(ye);return n(De||ye,function(vt,st){De&&(st=vt,vt=ye[st]),i($e,st,Ke(vt,we,Ve,st,ye,We))}),$e}return rh=Ke,rh}var ih,f1;function pq(){if(f1)return ih;f1=1;var e=UN(),n=4;function i(s){return e(s,n)}return ih=i,ih}var sh,h1;function Nv(){if(h1)return sh;h1=1;function e(n){return function(){return n}}return sh=e,sh}var oh,p1;function mq(){if(p1)return oh;p1=1;function e(n){return function(i,s,o){for(var l=-1,u=Object(i),c=o(i),p=c.length;p--;){var h=c[n?p:++l];if(s(u[h],h,u)===!1)break}return i}}return oh=e,oh}var ah,m1;function Cv(){if(m1)return ah;m1=1;var e=mq(),n=e();return ah=n,ah}var lh,g1;function jv(){if(g1)return lh;g1=1;var e=Cv(),n=gi();function i(s,o){return s&&e(s,o,n)}return lh=i,lh}var uh,v1;function gq(){if(v1)return uh;v1=1;var e=Pr();function n(i,s){return function(o,l){if(o==null)return o;if(!e(o))return i(o,l);for(var u=o.length,c=s?u:-1,p=Object(o);(s?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return uh=n,uh}var ch,y1;function cu(){if(y1)return ch;y1=1;var e=jv(),n=gq(),i=n(e);return ch=i,ch}var dh,w1;function Ji(){if(w1)return dh;w1=1;function e(n){return n}return dh=e,dh}var fh,x1;function HN(){if(x1)return fh;x1=1;var e=Ji();function n(i){return typeof i=="function"?i:e}return fh=n,fh}var hh,_1;function VN(){if(_1)return hh;_1=1;var e=wv(),n=cu(),i=HN(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,i(u))}return hh=o,hh}var ph,S1;function WN(){return S1||(S1=1,ph=VN()),ph}var mh,b1;function vq(){if(b1)return mh;b1=1;var e=cu();function n(i,s){var o=[];return e(i,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return mh=n,mh}var gh,k1;function yq(){if(k1)return gh;k1=1;var e="__lodash_hash_undefined__";function n(i){return this.__data__.set(i,e),this}return gh=n,gh}var vh,E1;function wq(){if(E1)return vh;E1=1;function e(n){return this.__data__.has(n)}return vh=e,vh}var yh,N1;function GN(){if(N1)return yh;N1=1;var e=yv(),n=yq(),i=wq();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=i,yh=s,yh}var wh,C1;function xq(){if(C1)return wh;C1=1;function e(n,i){for(var s=-1,o=n==null?0:n.length;++s<o;)if(i(n[s],s,n))return!0;return!1}return wh=e,wh}var xh,j1;function YN(){if(j1)return xh;j1=1;function e(n,i){return n.has(i)}return xh=e,xh}var _h,R1;function KN(){if(R1)return _h;R1=1;var e=GN(),n=xq(),i=YN(),s=1,o=2;function l(u,c,p,h,f,m){var y=p&s,x=u.length,C=c.length;if(x!=C&&!(y&&C>x))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,N=p&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<x;){var j=u[b],P=c[b];if(h)var O=y?h(P,j,b,c,u,m):h(j,P,b,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(N){if(!n(c,function(L,B){if(!i(N,B)&&(j===L||f(j,L,p,h,m)))return N.push(B)})){k=!1;break}}else if(!(j===P||f(j,P,p,h,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return _h=l,_h}var Sh,T1;function _q(){if(T1)return Sh;T1=1;function e(n){var i=-1,s=Array(n.size);return n.forEach(function(o,l){s[++i]=[l,o]}),s}return Sh=e,Sh}var bh,A1;function Rv(){if(A1)return bh;A1=1;function e(n){var i=-1,s=Array(n.size);return n.forEach(function(o){s[++i]=o}),s}return bh=e,bh}var kh,I1;function Sq(){if(I1)return kh;I1=1;var e=eo(),n=DN(),i=Js(),s=KN(),o=_q(),l=Rv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",m="[object Map]",y="[object Number]",x="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",N=e?e.prototype:void 0,j=N?N.valueOf:void 0;function P(O,L,B,T,M,q,Y){switch(B){case k:if(O.byteLength!=L.byteLength||O.byteOffset!=L.byteOffset)return!1;O=O.buffer,L=L.buffer;case b:return!(O.byteLength!=L.byteLength||!q(new n(O),new n(L)));case p:case h:case y:return i(+O,+L);case f:return O.name==L.name&&O.message==L.message;case x:case _:return O==L+"";case m:var X=o;case C:var I=T&u;if(X||(X=l),O.size!=L.size&&!I)return!1;var H=Y.get(O);if(H)return H==L;T|=c,Y.set(O,L);var U=s(X(O),X(L),T,M,q,Y);return Y.delete(O),U;case S:if(j)return j.call(O)==j.call(L)}return!1}return kh=P,kh}var Eh,M1;function bq(){if(M1)return Eh;M1=1;var e=LN(),n=1,i=Object.prototype,s=i.hasOwnProperty;function o(l,u,c,p,h,f){var m=c&n,y=e(l),x=y.length,C=e(u),_=C.length;if(x!=_&&!m)return!1;for(var S=x;S--;){var b=y[S];if(!(m?b in u:s.call(u,b)))return!1}var k=f.get(l),N=f.get(u);if(k&&N)return k==u&&N==l;var j=!0;f.set(l,u),f.set(u,l);for(var P=m;++S<x;){b=y[S];var O=l[b],L=u[b];if(p)var B=m?p(L,O,b,u,l,f):p(O,L,b,l,u,f);if(!(B===void 0?O===L||h(O,L,c,p,f):B)){j=!1;break}P||(P=b=="constructor")}if(j&&!P){var T=l.constructor,M=u.constructor;T!=M&&"constructor"in l&&"constructor"in u&&!(typeof T=="function"&&T instanceof T&&typeof M=="function"&&M instanceof M)&&(j=!1)}return f.delete(l),f.delete(u),j}return Eh=o,Eh}var Nh,P1;function kq(){if(P1)return Nh;P1=1;var e=ru(),n=KN(),i=Sq(),s=bq(),o=no(),l=bt(),u=to(),c=fa(),p=1,h="[object Arguments]",f="[object Array]",m="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function C(_,S,b,k,N,j){var P=l(_),O=l(S),L=P?f:o(_),B=O?f:o(S);L=L==h?m:L,B=B==h?m:B;var T=L==m,M=B==m,q=L==B;if(q&&u(_)){if(!u(S))return!1;P=!0,T=!1}if(q&&!T)return j||(j=new e),P||c(_)?n(_,S,b,k,N,j):i(_,S,L,b,k,N,j);if(!(b&p)){var Y=T&&x.call(_,"__wrapped__"),X=M&&x.call(S,"__wrapped__");if(Y||X){var I=Y?_.value():_,H=X?S.value():S;return j||(j=new e),N(I,H,b,k,j)}}return q?(j||(j=new e),s(_,S,b,k,N,j)):!1}return Nh=C,Nh}var Ch,O1;function XN(){if(O1)return Ch;O1=1;var e=kq(),n=ur();function i(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,i,c)}return Ch=i,Ch}var jh,q1;function Eq(){if(q1)return jh;q1=1;var e=ru(),n=XN(),i=1,s=2;function o(l,u,c,p){var h=c.length,f=h,m=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],C=l[x],_=y[1];if(m&&y[2]){if(C===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(C,_,x,l,u,S);if(!(b===void 0?n(_,C,i|s,p,S):b))return!1}}return!0}return jh=o,jh}var Rh,L1;function QN(){if(L1)return Rh;L1=1;var e=An();function n(i){return i===i&&!e(i)}return Rh=n,Rh}var Th,$1;function Nq(){if($1)return Th;$1=1;var e=QN(),n=gi();function i(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=i,Th}var Ah,D1;function ZN(){if(D1)return Ah;D1=1;function e(n,i){return function(s){return s==null?!1:s[n]===i&&(i!==void 0||n in Object(s))}}return Ah=e,Ah}var Ih,F1;function Cq(){if(F1)return Ih;F1=1;var e=Eq(),n=Nq(),i=ZN();function s(o){var l=n(o);return l.length==1&&l[0][2]?i(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Ih=s,Ih}var Mh,z1;function ro(){if(z1)return Mh;z1=1;var e=Xi(),n=ur(),i="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==i}return Mh=s,Mh}var Ph,B1;function Tv(){if(B1)return Ph;B1=1;var e=bt(),n=ro(),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\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)||!i.test(l)||u!=null&&l in Object(u)}return Ph=o,Ph}var Oh,U1;function jq(){if(U1)return Oh;U1=1;var e=yv(),n="Expected a function";function i(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],p=l.cache;if(p.has(c))return p.get(c);var h=s.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(i.Cache||e),l}return i.Cache=e,Oh=i,Oh}var qh,H1;function Rq(){if(H1)return qh;H1=1;var e=jq(),n=500;function i(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return qh=i,qh}var Lh,V1;function Tq(){if(V1)return Lh;V1=1;var e=Rq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(i,"$1"):c||u)}),l});return Lh=s,Lh}var $h,W1;function du(){if(W1)return $h;W1=1;function e(n,i){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=i(n[s],s,n);return l}return $h=e,$h}var Dh,G1;function Aq(){if(G1)return Dh;G1=1;var e=eo(),n=du(),i=bt(),s=ro(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(i(c))return n(c,u)+"";if(s(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return Dh=u,Dh}var Fh,Y1;function JN(){if(Y1)return Fh;Y1=1;var e=Aq();function n(i){return i==null?"":e(i)}return Fh=n,Fh}var zh,K1;function fu(){if(K1)return zh;K1=1;var e=bt(),n=Tv(),i=Tq(),s=JN();function o(l,u){return e(l)?l:n(l,u)?[l]:i(s(l))}return zh=o,zh}var Bh,X1;function ha(){if(X1)return Bh;X1=1;var e=ro();function n(i){if(typeof i=="string"||e(i))return i;var s=i+"";return s=="0"&&1/i==-1/0?"-0":s}return Bh=n,Bh}var Uh,Q1;function hu(){if(Q1)return Uh;Q1=1;var e=fu(),n=ha();function i(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=i,Uh}var Hh,Z1;function Iq(){if(Z1)return Hh;Z1=1;var e=hu();function n(i,s,o){var l=i==null?void 0:e(i,s);return l===void 0?o:l}return Hh=n,Hh}var Vh,J1;function Mq(){if(J1)return Vh;J1=1;function e(n,i){return n!=null&&i in Object(n)}return Vh=e,Vh}var Wh,eS;function eC(){if(eS)return Wh;eS=1;var e=fu(),n=da(),i=bt(),s=ou(),o=xv(),l=ha();function u(c,p,h){p=e(p,c);for(var f=-1,m=p.length,y=!1;++f<m;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&s(x,m)&&(i(c)||n(c)))}return Wh=u,Wh}var Gh,tS;function tC(){if(tS)return Gh;tS=1;var e=Mq(),n=eC();function i(s,o){return s!=null&&n(s,o,e)}return Gh=i,Gh}var Yh,nS;function Pq(){if(nS)return Yh;nS=1;var e=XN(),n=Iq(),i=tC(),s=Tv(),o=QN(),l=ZN(),u=ha(),c=1,p=2;function h(f,m){return s(f)&&o(m)?l(u(f),m):function(y){var x=n(y,f);return x===void 0&&x===m?i(y,f):e(m,x,c|p)}}return Yh=h,Yh}var Kh,rS;function nC(){if(rS)return Kh;rS=1;function e(n){return function(i){return i==null?void 0:i[n]}}return Kh=e,Kh}var Xh,iS;function Oq(){if(iS)return Xh;iS=1;var e=hu();function n(i){return function(s){return e(s,i)}}return Xh=n,Xh}var Qh,sS;function qq(){if(sS)return Qh;sS=1;var e=nC(),n=Oq(),i=Tv(),s=ha();function o(l){return i(l)?e(s(l)):n(l)}return Qh=o,Qh}var Zh,oS;function Or(){if(oS)return Zh;oS=1;var e=Cq(),n=Pq(),i=Ji(),s=bt(),o=qq();function l(u){return typeof u=="function"?u:u==null?i:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return Zh=l,Zh}var Jh,aS;function rC(){if(aS)return Jh;aS=1;var e=MN(),n=vq(),i=Or(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,i(u,3))}return Jh=o,Jh}var ep,lS;function Lq(){if(lS)return ep;lS=1;var e=Object.prototype,n=e.hasOwnProperty;function i(s,o){return s!=null&&n.call(s,o)}return ep=i,ep}var tp,uS;function iC(){if(uS)return tp;uS=1;var e=Lq(),n=eC();function i(s,o){return s!=null&&n(s,o,e)}return tp=i,tp}var np,cS;function $q(){if(cS)return np;cS=1;var e=Sv(),n=no(),i=da(),s=bt(),o=Pr(),l=to(),u=lu(),c=fa(),p="[object Map]",h="[object Set]",f=Object.prototype,m=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(s(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||i(x)))return!x.length;var C=n(x);if(C==p||C==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(m.call(x,_))return!1;return!0}return np=y,np}var rp,dS;function sC(){if(dS)return rp;dS=1;function e(n){return n===void 0}return rp=e,rp}var ip,fS;function oC(){if(fS)return ip;fS=1;var e=cu(),n=Pr();function i(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,p,h){u[++l]=o(c,p,h)}),u}return ip=i,ip}var sp,hS;function aC(){if(hS)return sp;hS=1;var e=du(),n=Or(),i=oC(),s=bt();function o(l,u){var c=s(l)?e:i;return c(l,n(u,3))}return sp=o,sp}var op,pS;function Dq(){if(pS)return op;pS=1;function e(n,i,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=i(s,n[l],l,n);return s}return op=e,op}var ap,mS;function Fq(){if(mS)return ap;mS=1;function e(n,i,s,o,l){return l(n,function(u,c,p){s=o?(o=!1,u):i(s,u,c,p)}),s}return ap=e,ap}var lp,gS;function lC(){if(gS)return lp;gS=1;var e=Dq(),n=cu(),i=Or(),s=Fq(),o=bt();function l(u,c,p){var h=o(u)?e:s,f=arguments.length<3;return h(u,i(c,4),p,f,n)}return lp=l,lp}var up,vS;function zq(){if(vS)return up;vS=1;var e=Xi(),n=bt(),i=ur(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&i(l)&&e(l)==s}return up=o,up}var cp,yS;function Bq(){if(yS)return cp;yS=1;var e=nC(),n=e("length");return cp=n,cp}var dp,wS;function Uq(){if(wS)return dp;wS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",i="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+i+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return dp=p,dp}var fp,xS;function Hq(){if(xS)return fp;xS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",i="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+i+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",C=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,m,y].join("|")+")"+_+C+")*",b=_+C+S,k="(?:"+[f+c+"?",c,m,y,u].join("|")+")",N=RegExp(p+"(?="+p+")|"+k+b,"g");function j(P){for(var O=N.lastIndex=0;N.test(P);)++O;return O}return fp=j,fp}var hp,_S;function Vq(){if(_S)return hp;_S=1;var e=Bq(),n=Uq(),i=Hq();function s(o){return n(o)?i(o):e(o)}return hp=s,hp}var pp,SS;function Wq(){if(SS)return pp;SS=1;var e=Sv(),n=no(),i=Pr(),s=zq(),o=Vq(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(i(p))return s(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return pp=c,pp}var mp,bS;function Gq(){if(bS)return mp;bS=1;var e=wv(),n=zN(),i=jv(),s=Or(),o=uu(),l=bt(),u=to(),c=ua(),p=An(),h=fa();function f(m,y,x){var C=l(m),_=C||u(m)||h(m);if(y=s(y,4),x==null){var S=m&&m.constructor;_?x=C?new S:[]:p(m)?x=c(S)?n(o(m)):{}:x={}}return(_?e:i)(m,function(b,k,N){return y(x,b,k,N)}),x}return mp=f,mp}var gp,kS;function Yq(){if(kS)return gp;kS=1;var e=eo(),n=da(),i=bt(),s=e?e.isConcatSpreadable:void 0;function o(l){return i(l)||n(l)||!!(s&&l&&l[s])}return gp=o,gp}var vp,ES;function Av(){if(ES)return vp;ES=1;var e=kv(),n=Yq();function i(s,o,l,u,c){var p=-1,h=s.length;for(l||(l=n),c||(c=[]);++p<h;){var f=s[p];o>0&&l(f)?o>1?i(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return vp=i,vp}var yp,NS;function Kq(){if(NS)return yp;NS=1;function e(n,i,s){switch(s.length){case 0:return n.call(i);case 1:return n.call(i,s[0]);case 2:return n.call(i,s[0],s[1]);case 3:return n.call(i,s[0],s[1],s[2])}return n.apply(i,s)}return yp=e,yp}var wp,CS;function uC(){if(CS)return wp;CS=1;var e=Kq(),n=Math.max;function i(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(s,this,f)}}return wp=i,wp}var xp,jS;function Xq(){if(jS)return xp;jS=1;var e=Nv(),n=jN(),i=Ji(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:i;return xp=s,xp}var _p,RS;function Qq(){if(RS)return _p;RS=1;var e=800,n=16,i=Date.now;function s(o){var l=0,u=0;return function(){var c=i(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return _p=s,_p}var Sp,TS;function cC(){if(TS)return Sp;TS=1;var e=Xq(),n=Qq(),i=n(e);return Sp=i,Sp}var bp,AS;function pu(){if(AS)return bp;AS=1;var e=Ji(),n=uC(),i=cC();function s(o,l){return i(n(o,l,e),o+"")}return bp=s,bp}var kp,IS;function dC(){if(IS)return kp;IS=1;function e(n,i,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(i(n[u],u,n))return u;return-1}return kp=e,kp}var Ep,MS;function Zq(){if(MS)return Ep;MS=1;function e(n){return n!==n}return Ep=e,Ep}var Np,PS;function Jq(){if(PS)return Np;PS=1;function e(n,i,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===i)return o;return-1}return Np=e,Np}var Cp,OS;function eL(){if(OS)return Cp;OS=1;var e=dC(),n=Zq(),i=Jq();function s(o,l,u){return l===l?i(o,l,u):e(o,n,u)}return Cp=s,Cp}var jp,qS;function tL(){if(qS)return jp;qS=1;var e=eL();function n(i,s){var o=i==null?0:i.length;return!!o&&e(i,s,0)>-1}return jp=n,jp}var Rp,LS;function nL(){if(LS)return Rp;LS=1;function e(n,i,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(i,n[o]))return!0;return!1}return Rp=e,Rp}var Tp,$S;function rL(){if($S)return Tp;$S=1;function e(){}return Tp=e,Tp}var Ap,DS;function iL(){if(DS)return Ap;DS=1;var e=$N(),n=rL(),i=Rv(),s=1/0,o=e&&1/i(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return Ap=o,Ap}var Ip,FS;function sL(){if(FS)return Ip;FS=1;var e=GN(),n=tL(),i=nL(),s=YN(),o=iL(),l=Rv(),u=200;function c(p,h,f){var m=-1,y=n,x=p.length,C=!0,_=[],S=_;if(f)C=!1,y=i;else if(x>=u){var b=h?null:o(p);if(b)return l(b);C=!1,y=s,S=new e}else S=h?[]:_;e:for(;++m<x;){var k=p[m],N=h?h(k):k;if(k=f||k!==0?k:0,C&&N===N){for(var j=S.length;j--;)if(S[j]===N)continue e;h&&S.push(N),_.push(k)}else y(S,N,f)||(S!==_&&S.push(N),_.push(k))}return _}return Ip=c,Ip}var Mp,zS;function fC(){if(zS)return Mp;zS=1;var e=Pr(),n=ur();function i(s){return n(s)&&e(s)}return Mp=i,Mp}var Pp,BS;function oL(){if(BS)return Pp;BS=1;var e=Av(),n=pu(),i=sL(),s=fC(),o=n(function(l){return i(e(l,1,s,!0))});return Pp=o,Pp}var Op,US;function aL(){if(US)return Op;US=1;var e=du();function n(i,s){return e(s,function(o){return i[o]})}return Op=n,Op}var qp,HS;function hC(){if(HS)return qp;HS=1;var e=aL(),n=gi();function i(s){return s==null?[]:e(s,n(s))}return qp=i,qp}var Lp,VS;function In(){if(VS)return Lp;VS=1;var e;if(typeof gv=="function")try{e={clone:pq(),constant:Nv(),each:WN(),filter:rC(),has:iC(),isArray:bt(),isEmpty:$q(),isFunction:ua(),isUndefined:sC(),keys:gi(),map:aC(),reduce:lC(),size:Wq(),transform:Gq(),union:oL(),values:hC()}}catch{}return e||(e=window._),Lp=e,Lp}var $p,WS;function Iv(){if(WS)return $p;WS=1;var e=In();$p=o;var n="\0",i="\0",s="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.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[i]={}),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(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._in[m])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._out[m])})},o.prototype.setNodes=function(f,m){var y=arguments,x=this;return e.each(f,function(C){y.length>1?x.setNode(C,m):x.setNode(C)}),this},o.prototype.setNode=function(f,m){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=m),this):(this._nodes[f]=arguments.length>1?m:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=i,this._children[f]={},this._children[i][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var m=this;if(e.has(this._nodes,f)){var y=function(x){m.removeEdge(m._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){m.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=i;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===f)throw new Error("Setting "+m+" as parent of "+f+" would create a cycle");this.setNode(m)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=m,this._children[m][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var m=this._parent[f];if(m!==i)return m}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=i),this._isCompound){var m=this._children[f];if(m)return e.keys(m)}else{if(f===i)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var m=this._preds[f];if(m)return e.keys(m)},o.prototype.successors=function(f){var m=this._sucs[f];if(m)return e.keys(m)},o.prototype.neighbors=function(f){var m=this.predecessors(f);if(m)return e.union(m,this.successors(f))},o.prototype.isLeaf=function(f){var m;return this.isDirected()?m=this.successors(f):m=this.neighbors(f),m.length===0},o.prototype.filterNodes=function(f){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var x={};function C(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(x[_]=S,S):S in x?x[S]:C(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,C(_))}),m},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,m){var y=this,x=arguments;return e.reduce(f,function(C,_){return x.length>1?y.setEdge(C,_,m):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var f,m,y,x,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,m=_.w,y=_.name,arguments.length===2&&(x=arguments[1],C=!0)):(f=_,m=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],C=!0)),f=""+f,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,m,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(m),this._edgeLabels[S]=C?x:this._defaultEdgeLabelFn(f,m,y);var b=p(this._isDirected,f,m,y);return f=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],f),l(this._sucs[f],m),this._in[m][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y),C=this._edgeObjs[x];return C&&(f=C.v,m=C.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[m],f),u(this._sucs[f],m),delete this._in[m][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,m){var y=this._in[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.v===m}):x}},o.prototype.outEdges=function(f,m){var y=this._out[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.w===m}):x}},o.prototype.nodeEdges=function(f,m){var y=this.inEdges(f,m);if(y)return y.concat(this.outEdges(f,m))};function l(f,m){f[m]?f[m]++:f[m]=1}function u(f,m){--f[m]||delete f[m]}function c(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(x)?n:x)}function p(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return x&&(b.name=x),b}function h(f,m){return c(f,m.v,m.w,m.name)}return $p}var Dp,GS;function lL(){return GS||(GS=1,Dp="2.1.8"),Dp}var Fp,YS;function uL(){return YS||(YS=1,Fp={Graph:Iv(),version:lL()}),Fp}var zp,KS;function cL(){if(KS)return zp;KS=1;var e=In(),n=Iv();zp={write:i,read:l};function i(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 p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return zp}var Bp,XS;function dL(){if(XS)return Bp;XS=1;var e=In();Bp=n;function n(i){var s={},o=[],l;function u(c){e.has(s,c)||(s[c]=!0,l.push(c),e.each(i.successors(c),u),e.each(i.predecessors(c),u))}return e.each(i.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return Bp}var Up,QS;function pC(){if(QS)return Up;QS=1;var e=In();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(i){return i.key})},n.prototype.has=function(i){return e.has(this._keyIndices,i)},n.prototype.priority=function(i){var s=this._keyIndices[i];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(i,s){var o=this._keyIndices;if(i=String(i),!e.has(o,i)){var l=this._arr,u=l.length;return o[i]=u,l.push({key:i,priority:s}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var i=this._arr.pop();return delete this._keyIndices[i.key],this._heapify(0),i.key},n.prototype.decrease=function(i,s){var o=this._keyIndices[i];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+i+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(i){var s=this._arr,o=2*i,l=o+1,u=i;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!==i&&(this._swap(i,u),this._heapify(u)))},n.prototype._decrease=function(i){for(var s=this._arr,o=s[i].priority,l;i!==0&&(l=i>>1,!(s[l].priority<o));)this._swap(i,l),i=l},n.prototype._swap=function(i,s){var o=this._arr,l=this._keyIndices,u=o[i],c=o[s];o[i]=c,o[s]=u,l[c.key]=i,l[u.key]=s},Up}var Hp,ZS;function mC(){if(ZS)return Hp;ZS=1;var e=In(),n=pC();Hp=s;var i=e.constant(1);function s(l,u,c,p){return o(l,String(u),c||i,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,m,y,x=function(C){var _=C.v!==m?C.v:C.w,S=h[_],b=c(C),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,f.decrease(_,k))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;h[C]={distance:_},f.add(C,_)});f.size()>0&&(m=f.removeMin(),y=h[m],y.distance!==Number.POSITIVE_INFINITY);)p(m).forEach(x);return h}return Hp}var Vp,JS;function fL(){if(JS)return Vp;JS=1;var e=mC(),n=In();Vp=i;function i(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Vp}var Wp,eb;function gC(){if(eb)return Wp;eb=1;var e=In();Wp=n;function n(i){var s=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:s,index:s++};if(o.push(p),i.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],m;do m=o.pop(),l[m].onStack=!1,f.push(m);while(p!==m);u.push(f)}}return i.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return Wp}var Gp,tb;function hL(){if(tb)return Gp;tb=1;var e=In(),n=gC();Gp=i;function i(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return Gp}var Yp,nb;function pL(){if(nb)return Yp;nb=1;var e=In();Yp=i;var n=e.constant(1);function i(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var m=f.v===h?f.w:f.v,y=l(f);c[h][m]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(m){var y=c[m];p.forEach(function(x){var C=y[h],_=f[x],S=y[x],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return Yp}var Kp,rb;function vC(){if(rb)return Kp;rb=1;var e=In();Kp=n,n.CycleException=i;function n(s){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new i;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(s.predecessors(p),c),delete l[p],u.push(p))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new i;return u}function i(){}return i.prototype=new Error,Kp}var Xp,ib;function mL(){if(ib)return Xp;ib=1;var e=vC();Xp=n;function n(i){try{e(i)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return Xp}var Qp,sb;function yC(){if(sb)return Qp;sb=1;var e=In();Qp=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],p={};return e.each(o,function(h){if(!s.hasNode(h))throw new Error("Graph does not have node: "+h);i(s,h,l==="post",p,u,c)}),c}function i(s,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){i(s,h,l,u,c,p)}),l&&p.push(o))}return Qp}var Zp,ob;function gL(){if(ob)return Zp;ob=1;var e=yC();Zp=n;function n(i,s){return e(i,s,"post")}return Zp}var Jp,ab;function vL(){if(ab)return Jp;ab=1;var e=yC();Jp=n;function n(i,s){return e(i,s,"pre")}return Jp}var em,lb;function yL(){if(lb)return em;lb=1;var e=In(),n=Iv(),i=pC();em=s;function s(o,l){var u=new n,c={},p=new i,h;function f(y){var x=y.v===h?y.w:y.v,C=p.priority(x);if(C!==void 0){var _=l(y);_<C&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var m=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(h).forEach(f)}return u}return em}var tm,ub;function wL(){return ub||(ub=1,tm={components:dL(),dijkstra:mC(),dijkstraAll:fL(),findCycles:hL(),floydWarshall:pL(),isAcyclic:mL(),postorder:gL(),preorder:vL(),prim:yL(),tarjan:gC(),topsort:vC()}),tm}var nm,cb;function xL(){if(cb)return nm;cb=1;var e=uL();return nm={Graph:e.Graph,json:cL(),alg:wL(),version:e.version},nm}var rm,db;function Gn(){if(db)return rm;db=1;var e;if(typeof gv=="function")try{e=xL()}catch{}return e||(e=window.graphlib),rm=e,rm}var im,fb;function _L(){if(fb)return im;fb=1;var e=UN(),n=1,i=4;function s(o){return e(o,n|i)}return im=s,im}var sm,hb;function mu(){if(hb)return sm;hb=1;var e=Js(),n=Pr(),i=ou(),s=An();function o(l,u,c){if(!s(c))return!1;var p=typeof u;return(p=="number"?n(c)&&i(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return sm=o,sm}var om,pb;function SL(){if(pb)return om;pb=1;var e=pu(),n=Js(),i=mu(),s=Zi(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,m=f>2?p[2]:void 0;for(m&&i(p[0],p[1],m)&&(f=1);++h<f;)for(var y=p[h],x=s(y),C=-1,_=x.length;++C<_;){var S=x[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,mb;function bL(){if(mb)return am;mb=1;var e=Or(),n=Pr(),i=gi();function s(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=i(l),u=function(m){return h(p[m],m,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return am=s,am}var lm,gb;function kL(){if(gb)return lm;gb=1;var e=/\s/;function n(i){for(var s=i.length;s--&&e.test(i.charAt(s)););return s}return lm=n,lm}var um,vb;function EL(){if(vb)return um;vb=1;var e=kL(),n=/^\s+/;function i(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return um=i,um}var cm,yb;function NL(){if(yb)return cm;yb=1;var e=EL(),n=An(),i=ro(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(i(h))return s;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var m=l.test(h);return m||u.test(h)?c(h.slice(2),m?2:8):o.test(h)?s:+h}return cm=p,cm}var dm,wb;function wC(){if(wb)return dm;wb=1;var e=NL(),n=1/0,i=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*i}return o===o?o:0}return dm=s,dm}var fm,xb;function CL(){if(xb)return fm;xb=1;var e=wC();function n(i){var s=e(i),o=s%1;return s===s?o?s-o:s:0}return fm=n,fm}var hm,_b;function jL(){if(_b)return hm;_b=1;var e=dC(),n=Or(),i=CL(),s=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:i(c);return h<0&&(h=s(p+h,0)),e(l,n(u,3),h)}return hm=o,hm}var pm,Sb;function RL(){if(Sb)return pm;Sb=1;var e=bL(),n=jL(),i=e(n);return pm=i,pm}var mm,bb;function xC(){if(bb)return mm;bb=1;var e=Av();function n(i){var s=i==null?0:i.length;return s?e(i,1):[]}return mm=n,mm}var gm,kb;function TL(){if(kb)return gm;kb=1;var e=Cv(),n=HN(),i=Zi();function s(o,l){return o==null?o:e(o,n(l),i)}return gm=s,gm}var vm,Eb;function AL(){if(Eb)return vm;Eb=1;function e(n){var i=n==null?0:n.length;return i?n[i-1]:void 0}return vm=e,vm}var ym,Nb;function IL(){if(Nb)return ym;Nb=1;var e=iu(),n=jv(),i=Or();function s(o,l){var u={};return l=i(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return ym=s,ym}var wm,Cb;function Mv(){if(Cb)return wm;Cb=1;var e=ro();function n(i,s,o){for(var l=-1,u=i.length;++l<u;){var c=i[l],p=s(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return wm=n,wm}var xm,jb;function ML(){if(jb)return xm;jb=1;function e(n,i){return n>i}return xm=e,xm}var _m,Rb;function PL(){if(Rb)return _m;Rb=1;var e=Mv(),n=ML(),i=Ji();function s(o){return o&&o.length?e(o,i,n):void 0}return _m=s,_m}var Sm,Tb;function _C(){if(Tb)return Sm;Tb=1;var e=iu(),n=Js();function i(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Sm=i,Sm}var bm,Ab;function OL(){if(Ab)return bm;Ab=1;var e=Xi(),n=uu(),i=ur(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!i(f)||e(f)!=s)return!1;var m=n(f);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return bm=h,bm}var km,Ib;function SC(){if(Ib)return km;Ib=1;function e(n,i){if(!(i==="constructor"&&typeof n[i]=="function")&&i!="__proto__")return n[i]}return km=e,km}var Em,Mb;function qL(){if(Mb)return Em;Mb=1;var e=ca(),n=Zi();function i(s){return e(s,n(s))}return Em=i,Em}var Nm,Pb;function LL(){if(Pb)return Nm;Pb=1;var e=_C(),n=AN(),i=FN(),s=IN(),o=BN(),l=da(),u=bt(),c=fC(),p=to(),h=ua(),f=An(),m=OL(),y=fa(),x=SC(),C=qL();function _(S,b,k,N,j,P,O){var L=x(S,k),B=x(b,k),T=O.get(B);if(T){e(S,k,T);return}var M=P?P(L,B,k+"",S,b,O):void 0,q=M===void 0;if(q){var Y=u(B),X=!Y&&p(B),I=!Y&&!X&&y(B);M=B,Y||X||I?u(L)?M=L:c(L)?M=s(L):X?(q=!1,M=n(B,!0)):I?(q=!1,M=i(B,!0)):M=[]:m(B)||l(B)?(M=L,l(L)?M=C(L):(!f(L)||h(L))&&(M=o(B))):q=!1}q&&(O.set(B,M),j(M,B,N,P,O),O.delete(B)),e(S,k,M)}return Nm=_,Nm}var Cm,Ob;function $L(){if(Ob)return Cm;Ob=1;var e=ru(),n=_C(),i=Cv(),s=LL(),o=An(),l=Zi(),u=SC();function c(p,h,f,m,y){p!==h&&i(h,function(x,C){if(y||(y=new e),o(x))s(p,h,C,f,c,m,y);else{var _=m?m(u(p,C),x,C+"",p,h,y):void 0;_===void 0&&(_=x),n(p,C,_)}},l)}return Cm=c,Cm}var jm,qb;function DL(){if(qb)return jm;qb=1;var e=pu(),n=mu();function i(s){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=s.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&s(o,f,u,p)}return o})}return jm=i,jm}var Rm,Lb;function FL(){if(Lb)return Rm;Lb=1;var e=$L(),n=DL(),i=n(function(s,o,l){e(s,o,l)});return Rm=i,Rm}var Tm,$b;function bC(){if($b)return Tm;$b=1;function e(n,i){return n<i}return Tm=e,Tm}var Am,Db;function zL(){if(Db)return Am;Db=1;var e=Mv(),n=bC(),i=Ji();function s(o){return o&&o.length?e(o,i,n):void 0}return Am=s,Am}var Im,Fb;function BL(){if(Fb)return Im;Fb=1;var e=Mv(),n=Or(),i=bC();function s(o,l){return o&&o.length?e(o,n(l,2),i):void 0}return Im=s,Im}var Mm,zb;function UL(){if(zb)return Mm;zb=1;var e=Kn(),n=function(){return e.Date.now()};return Mm=n,Mm}var Pm,Bb;function HL(){if(Bb)return Pm;Bb=1;var e=su(),n=fu(),i=ou(),s=An(),o=ha();function l(u,c,p,h){if(!s(u))return u;c=n(c,u);for(var f=-1,m=c.length,y=m-1,x=u;x!=null&&++f<m;){var C=o(c[f]),_=p;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(f!=y){var S=x[C];_=h?h(S,C,x):void 0,_===void 0&&(_=s(S)?S:i(c[f+1])?[]:{})}e(x,C,_),x=x[C]}return u}return Pm=l,Pm}var Om,Ub;function VL(){if(Ub)return Om;Ub=1;var e=hu(),n=HL(),i=fu();function s(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],m=e(o,f);u(m,f)&&n(h,i(f,o),m)}return h}return Om=s,Om}var qm,Hb;function WL(){if(Hb)return qm;Hb=1;var e=VL(),n=tC();function i(s,o){return e(s,o,function(l,u){return n(s,u)})}return qm=i,qm}var Lm,Vb;function GL(){if(Vb)return Lm;Vb=1;var e=xC(),n=uC(),i=cC();function s(o){return i(n(o,void 0,e),o+"")}return Lm=s,Lm}var $m,Wb;function YL(){if(Wb)return $m;Wb=1;var e=WL(),n=GL(),i=n(function(s,o){return s==null?{}:e(s,o)});return $m=i,$m}var Dm,Gb;function KL(){if(Gb)return Dm;Gb=1;var e=Math.ceil,n=Math.max;function i(s,o,l,u){for(var c=-1,p=n(e((o-s)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=s,s+=l;return h}return Dm=i,Dm}var Fm,Yb;function XL(){if(Yb)return Fm;Yb=1;var e=KL(),n=mu(),i=wC();function s(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=i(l),u===void 0?(u=l,l=0):u=i(u),c=c===void 0?l<u?1:-1:i(c),e(l,u,c,o)}}return Fm=s,Fm}var zm,Kb;function QL(){if(Kb)return zm;Kb=1;var e=XL(),n=e();return zm=n,zm}var Bm,Xb;function ZL(){if(Xb)return Bm;Xb=1;function e(n,i){var s=n.length;for(n.sort(i);s--;)n[s]=n[s].value;return n}return Bm=e,Bm}var Um,Qb;function JL(){if(Qb)return Um;Qb=1;var e=ro();function n(i,s){if(i!==s){var o=i!==void 0,l=i===null,u=i===i,c=e(i),p=s!==void 0,h=s===null,f=s===s,m=e(s);if(!h&&!m&&!c&&i>s||c&&p&&f&&!h&&!m||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!m&&i<s||m&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return Um=n,Um}var Hm,Zb;function e$(){if(Zb)return Hm;Zb=1;var e=JL();function n(i,s,o){for(var l=-1,u=i.criteria,c=s.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var m=o[l];return f*(m=="desc"?-1:1)}}return i.index-s.index}return Hm=n,Hm}var Vm,Jb;function t$(){if(Jb)return Vm;Jb=1;var e=du(),n=hu(),i=Or(),s=oC(),o=ZL(),l=au(),u=e$(),c=Ji(),p=bt();function h(f,m,y){m.length?m=e(m,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var x=-1;m=e(m,l(i));var C=s(f,function(_,S,b){var k=e(m,function(N){return N(_)});return{criteria:k,index:++x,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Vm=h,Vm}var Wm,ek;function n$(){if(ek)return Wm;ek=1;var e=Av(),n=t$(),i=pu(),s=mu(),o=i(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,tk;function r$(){if(tk)return Gm;tk=1;var e=JN(),n=0;function i(s){var o=++n;return e(s)+o}return Gm=i,Gm}var Ym,nk;function i$(){if(nk)return Ym;nk=1;function e(n,i,s){for(var o=-1,l=n.length,u=i.length,c={};++o<l;){var p=o<u?i[o]:void 0;s(c,n[o],p)}return c}return Ym=e,Ym}var Km,rk;function s$(){if(rk)return Km;rk=1;var e=su(),n=i$();function i(s,o){return n(s||[],o||[],e)}return Km=i,Km}var Xm,ik;function lt(){if(ik)return Xm;ik=1;var e;if(typeof gv=="function")try{e={cloneDeep:_L(),constant:Nv(),defaults:SL(),each:WN(),filter:rC(),find:RL(),flatten:xC(),forEach:VN(),forIn:TL(),has:iC(),isUndefined:sC(),last:AL(),map:aC(),mapValues:IL(),max:PL(),merge:FL(),min:zL(),minBy:BL(),now:UL(),pick:YL(),range:QL(),reduce:lC(),sortBy:n$(),uniqueId:r$(),values:hC(),zipObject:s$()}}catch{}return e||(e=window._),Xm=e,Xm}var Qm,sk;function o$(){if(sk)return Qm;sk=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,i)),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 i(s,o){if(s!=="_next"&&s!=="_prev")return o}return Qm}var Zm,ok;function a$(){if(ok)return Zm;ok=1;var e=lt(),n=Gn().Graph,i=o$();Zm=o;var s=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var m=c(h,f||s),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,m){for(var y=[],x=f[f.length-1],C=f[0],_;h.nodeCount();){for(;_=C.dequeue();)u(h,f,m,_);for(;_=x.dequeue();)u(h,f,m,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,m,_,!0));break}}}return y}function u(h,f,m,y,x){var C=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&C.push({v:_.v,w:_.w}),b.out-=S,p(f,m,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,m,k)}),h.removeNode(y.v),C}function c(h,f){var m=new n,y=0,x=0;e.forEach(h.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=f(S),N=b+k;m.setEdge(S.v,S.w,N),x=Math.max(x,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var C=e.range(x+y+3).map(function(){return new i}),_=y+1;return e.forEach(m.nodes(),function(S){p(C,_,m.node(S))}),{graph:m,buckets:C,zeroIdx:_}}function p(h,f,m){m.out?m.in?h[m.out-m.in+f].enqueue(m):h[h.length-1].enqueue(m):h[0].enqueue(m)}return Zm}var Jm,ak;function l$(){if(ak)return Jm;ak=1;var e=lt(),n=a$();Jm={run:i,undo:o};function i(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function s(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(m){e.has(c,m.w)?u.push(m):h(m.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return Jm}var eg,lk;function un(){if(lk)return eg;lk=1;var e=lt(),n=Gn().Graph;eg={addDummyNode:i,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:m,maxRank:y,partition:x,time:C,notime:_};function i(S,b,k,N){var j;do j=e.uniqueId(N);while(S.hasNode(j));return k.dummy=b,S.setNode(j,k),j}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var N=b.edge(k.v,k.w)||{weight:0,minlen:1},j=S.edge(k);b.setEdge(k.v,k.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(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.outEdges(k),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(k){var N={};return e.forEach(S.inEdges(k),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 k=S.x,N=S.y,j=b.x-k,P=b.y-N,O=S.width/2,L=S.height/2;if(!j&&!P)throw new Error("Not possible to find intersection inside of the rectangle");var B,T;return Math.abs(P)*O>Math.abs(j)*L?(P<0&&(L=-L),B=L*j/P,T=L):(j<0&&(O=-O),B=O,T=O*P/j),{x:k+B,y:N+T}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var N=S.node(k),j=N.rank;e.isUndefined(j)||(b[j][N.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var N=S.node(k);e.has(N,"rank")&&(N.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(P){return S.node(P).rank})),k=[];e.forEach(S.nodes(),function(P){var O=S.node(P).rank-b;k[O]||(k[O]=[]),k[O].push(P)});var N=0,j=S.graph().nodeRankFactor;e.forEach(k,function(P,O){e.isUndefined(P)&&O%j!==0?--N:N&&e.forEach(P,function(L){S.node(L).rank+=N})})}function m(S,b,k,N){var j={width:0,height:0};return arguments.length>=4&&(j.rank=k,j.order=N),i(S,"border",j,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?k.lhs.push(N):k.rhs.push(N)}),k}function C(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return eg}var tg,uk;function u$(){if(uk)return tg;uk=1;var e=lt(),n=un();tg={run:i,undo:o};function i(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,m=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var C,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},C=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,h,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return tg}var ng,ck;function Vl(){if(ck)return ng;ck=1;var e=lt();ng={longestPath:n,slack:i};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 p=e.min(e.map(s.outEdges(u),function(h){return l(h.w)-s.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(s.sources(),l)}function i(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return ng}var rg,dk;function kC(){if(dk)return rg;dk=1;var e=lt(),n=Gn().Graph,i=Vl().slack;rg=s;function s(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var m,y;o(p,c)<f;)m=l(p,c),y=p.hasNode(m.v)?i(c,m):-i(c,m),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(m){var y=m.v,x=f===y?m.w:y;!c.hasNode(x)&&!i(p,m)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return i(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return rg}var ig,fk;function c$(){if(fk)return ig;fk=1;var e=lt(),n=kC(),i=Vl().slack,s=Vl().longestPath,o=Gn().alg.preorder,l=Gn().alg.postorder,u=un().simplify;ig=c,c.initLowLimValues=m,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var j=n(N);m(j),p(j,N);for(var P,O;P=x(j);)O=C(j,N,P),_(j,N,P,O)}function p(N,j){var P=l(N,N.nodes());P=P.slice(0,P.length-1),e.forEach(P,function(O){h(N,j,O)})}function h(N,j,P){var O=N.node(P),L=O.parent;N.edge(P,L).cutvalue=f(N,j,P)}function f(N,j,P){var O=N.node(P),L=O.parent,B=!0,T=j.edge(P,L),M=0;return T||(B=!1,T=j.edge(L,P)),M=T.weight,e.forEach(j.nodeEdges(P),function(q){var Y=q.v===P,X=Y?q.w:q.v;if(X!==L){var I=Y===B,H=j.edge(q).weight;if(M+=I?H:-H,b(N,P,X)){var U=N.edge(P,X).cutvalue;M+=I?-U:U}}}),M}function m(N,j){arguments.length<2&&(j=N.nodes()[0]),y(N,{},1,j)}function y(N,j,P,O,L){var B=P,T=N.node(O);return j[O]=!0,e.forEach(N.neighbors(O),function(M){e.has(j,M)||(P=y(N,j,P,M,O))}),T.low=B,T.lim=P++,L?T.parent=L:delete T.parent,P}function x(N){return e.find(N.edges(),function(j){return N.edge(j).cutvalue<0})}function C(N,j,P){var O=P.v,L=P.w;j.hasEdge(O,L)||(O=P.w,L=P.v);var B=N.node(O),T=N.node(L),M=B,q=!1;B.lim>T.lim&&(M=T,q=!0);var Y=e.filter(j.edges(),function(X){return q===k(N,N.node(X.v),M)&&q!==k(N,N.node(X.w),M)});return e.minBy(Y,function(X){return i(j,X)})}function _(N,j,P,O){var L=P.v,B=P.w;N.removeEdge(L,B),N.setEdge(O.v,O.w,{}),m(N),p(N,j),S(N,j)}function S(N,j){var P=e.find(N.nodes(),function(L){return!j.node(L).parent}),O=o(N,P);O=O.slice(1),e.forEach(O,function(L){var B=N.node(L).parent,T=j.edge(L,B),M=!1;T||(T=j.edge(B,L),M=!0),j.node(L).rank=j.node(B).rank+(M?T.minlen:-T.minlen)})}function b(N,j,P){return N.hasEdge(j,P)}function k(N,j,P){return P.low<=j.lim&&j.lim<=P.lim}return ig}var sg,hk;function d$(){if(hk)return sg;hk=1;var e=Vl(),n=e.longestPath,i=kC(),s=c$();sg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),i(p)}function c(p){s(p)}return sg}var og,pk;function f$(){if(pk)return og;pk=1;var e=lt();og=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=i(o,l,p.v,p.w),f=h.path,m=h.lca,y=0,x=f[y],C=!0;u!==p.w;){if(c=o.node(u),C){for(;(x=f[y])!==m&&o.node(x).maxRank<c.rank;)y++;x===m&&(C=!1)}if(!C){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function i(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||m>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function s(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return og}var ag,mk;function h$(){if(mk)return ag;mk=1;var e=lt(),n=un();ag={run:i,cleanup:u};function i(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,m=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(x){s(c,p,m,y,f,h,x)}),c.graph().nodeRankFactor=m}function s(c,p,h,f,m,y,x){var C=c.children(x);if(!C.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(C,function(k){s(c,p,h,f,m,y,k);var N=c.node(k),j=N.borderTop?N.borderTop:k,P=N.borderBottom?N.borderBottom:k,O=N.borderTop?f:2*f,L=j!==P?1:m-y[x]+1;c.setEdge(_,j,{weight:O,minlen:L,nestingEdge:!0}),c.setEdge(P,S,{weight:O,minlen:L,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:m+y[x]})}function o(c){var p={};function h(f,m){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,m+1)}),p[f]=m}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return ag}var lg,gk;function p$(){if(gk)return lg;gk=1;var e=lt(),n=un();lg=i;function i(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)s(o,"borderLeft","_bl",u,p,h),s(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function s(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},m=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return lg}var ug,vk;function m$(){if(vk)return ug;vk=1;var e=lt();ug={adjust:n,undo:i};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&s(h)}function i(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),s(h))}function s(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,p),e.has(m,"x")&&p(m)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return ug}var cg,yk;function g$(){if(yk)return cg;yk=1;var e=lt();cg=n;function n(i){var s={},o=e.filter(i.nodes(),function(h){return!i.children(h).length}),l=e.max(e.map(o,function(h){return i.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(s,h)){s[h]=!0;var f=i.node(h);u[f.rank].push(h),e.forEach(i.successors(h),c)}}var p=e.sortBy(o,function(h){return i.node(h).rank});return e.forEach(p,c),u}return cg}var dg,wk;function v$(){if(wk)return dg;wk=1;var e=lt();dg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=i(s,o[u-1],o[u]);return l}function i(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(x){return{pos:u[x.w],weight:s.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var C=0;x>0;)x%2&&(C+=f[x+1]),x=x-1>>1,f[x]+=y.weight;m+=y.weight*C})),m}return dg}var fg,xk;function y$(){if(xk)return fg;xk=1;var e=lt();fg=n;function n(i,s){return e.map(s,function(o){var l=i.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=i.edge(p),f=i.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return fg}var hg,_k;function w$(){if(_k)return hg;_k=1;var e=lt();hg=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return i(c)}function i(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&s(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["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,Sk;function x$(){if(Sk)return pg;Sk=1;var e=lt(),n=un();pg=i;function i(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],m=0,y=0,x=0;p.sort(o(!!u)),x=s(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,x=s(f,h,x)});var C={vs:e.flatten(f,!0)};return y&&(C.barycenter=m/y,C.weight=y),C}function s(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.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,bk;function _$(){if(bk)return mg;bk=1;var e=lt(),n=y$(),i=w$(),s=x$();mg=o;function o(c,p,h,f){var m=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};x&&(m=e.filter(m,function(P){return P!==x&&P!==C}));var S=n(c,m);e.forEach(S,function(P){if(c.children(P.v).length){var O=o(c,P.v,h,f);_[P.v]=O,e.has(O,"barycenter")&&u(P,O)}});var b=i(S,h);l(b,_);var k=s(b,f);if(x&&(k.vs=e.flatten([x,k.vs,C],!0),c.predecessors(x).length)){var N=c.node(c.predecessors(x)[0]),j=c.node(c.predecessors(C)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+N.order+j.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return mg}var gg,kk;function S$(){if(kk)return gg;kk=1;var e=lt(),n=Gn().Graph;gg=i;function i(o,l,u){var c=s(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),m=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,m||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,C=p.edge(x,h),_=e.isUndefined(C)?0:C.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return gg}var vg,Ek;function b$(){if(Ek)return vg;Ek=1;var e=lt();vg=n;function n(i,s,o){var l={},u;e.forEach(o,function(c){for(var p=i.parent(c),h,f;p;){if(h=i.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){s.setEdge(f,p);return}p=h}})}return vg}var yg,Nk;function k$(){if(Nk)return yg;Nk=1;var e=lt(),n=g$(),i=v$(),s=_$(),o=S$(),l=b$(),u=Gn().Graph,c=un();yg=p;function p(y){var x=c.maxRank(y),C=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,N=0,j=0;j<4;++N,++j){f(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var P=i(y,S);P<b&&(j=0,k=e.cloneDeep(S),b=P)}m(y,k)}function h(y,x,C){return e.map(x,function(_){return o(y,_,C)})}function f(y,x){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,x);e.forEach(b.vs,function(k,N){_.node(k).order=N}),l(_,C,b.vs)})}function m(y,x){e.forEach(x,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return yg}var wg,Ck;function E$(){if(Ck)return wg;Ck=1;var e=lt(),n=Gn().Graph,i=un();wg={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:m,balance:x};function s(b,k){var N={};function j(P,O){var L=0,B=0,T=P.length,M=e.last(O);return e.forEach(O,function(q,Y){var X=l(b,q),I=X?b.node(X).order:T;(X||q===M)&&(e.forEach(O.slice(B,Y+1),function(H){e.forEach(b.predecessors(H),function(U){var ne=b.node(U),J=ne.order;(J<L||I<J)&&!(ne.dummy&&b.node(H).dummy)&&u(N,U,H)})}),B=Y+1,L=I)}),O}return e.reduce(k,j),N}function o(b,k){var N={};function j(O,L,B,T,M){var q;e.forEach(e.range(L,B),function(Y){q=O[Y],b.node(q).dummy&&e.forEach(b.predecessors(q),function(X){var I=b.node(X);I.dummy&&(I.order<T||I.order>M)&&u(N,X,q)})})}function P(O,L){var B=-1,T,M=0;return e.forEach(L,function(q,Y){if(b.node(q).dummy==="border"){var X=b.predecessors(q);X.length&&(T=b.node(X[0]).order,j(L,M,Y,B,T),M=Y,B=T)}j(L,M,L.length,T,O.length)}),L}return e.reduce(k,P),N}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(N){return b.node(N).dummy})}function u(b,k,N){if(k>N){var j=k;k=N,N=j}var P=b[k];P||(b[k]=P={}),P[N]=!0}function c(b,k,N){if(k>N){var j=k;k=N,N=j}return e.has(b[k],N)}function p(b,k,N,j){var P={},O={},L={};return e.forEach(k,function(B){e.forEach(B,function(T,M){P[T]=T,O[T]=T,L[T]=M})}),e.forEach(k,function(B){var T=-1;e.forEach(B,function(M){var q=j(M);if(q.length){q=e.sortBy(q,function(U){return L[U]});for(var Y=(q.length-1)/2,X=Math.floor(Y),I=Math.ceil(Y);X<=I;++X){var H=q[X];O[M]===M&&T<L[H]&&!c(N,M,H)&&(O[H]=M,O[M]=P[M]=P[H],T=L[H])}}})}),{root:P,align:O}}function h(b,k,N,j,P){var O={},L=f(b,k,N,P),B=P?"borderLeft":"borderRight";function T(Y,X){for(var I=L.nodes(),H=I.pop(),U={};H;)U[H]?Y(H):(U[H]=!0,I.push(H),I=I.concat(X(H))),H=I.pop()}function M(Y){O[Y]=L.inEdges(Y).reduce(function(X,I){return Math.max(X,O[I.v]+L.edge(I))},0)}function q(Y){var X=L.outEdges(Y).reduce(function(H,U){return Math.min(H,O[U.w]-L.edge(U))},Number.POSITIVE_INFINITY),I=b.node(Y);X!==Number.POSITIVE_INFINITY&&I.borderType!==B&&(O[Y]=Math.max(O[Y],X))}return T(M,L.predecessors.bind(L)),T(q,L.successors.bind(L)),e.forEach(j,function(Y){O[Y]=O[N[Y]]}),O}function f(b,k,N,j){var P=new n,O=b.graph(),L=_(O.nodesep,O.edgesep,j);return e.forEach(k,function(B){var T;e.forEach(B,function(M){var q=N[M];if(P.setNode(q),T){var Y=N[T],X=P.edge(Y,q);P.setEdge(Y,q,Math.max(L(b,M,T),X||0))}T=M})}),P}function m(b,k){return e.minBy(e.values(k),function(N){var j=Number.NEGATIVE_INFINITY,P=Number.POSITIVE_INFINITY;return e.forIn(N,function(O,L){var B=S(b,L)/2;j=Math.max(O+B,j),P=Math.min(O-B,P)}),j-P})}function y(b,k){var N=e.values(k),j=e.min(N),P=e.max(N);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(L){var B=O+L,T=b[B],M;if(T!==k){var q=e.values(T);M=L==="l"?j-e.min(q):P-e.max(q),M&&(b[B]=e.mapValues(T,function(Y){return Y+M}))}})})}function x(b,k){return e.mapValues(b.ul,function(N,j){if(k)return b[k.toLowerCase()][j];var P=e.sortBy(e.map(b,j));return(P[1]+P[2])/2})}function C(b){var k=i.buildLayerMatrix(b),N=e.merge(s(b,k),o(b,k)),j={},P;e.forEach(["u","d"],function(L){P=L==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(B){B==="r"&&(P=e.map(P,function(Y){return e.values(Y).reverse()}));var T=(L==="u"?b.predecessors:b.successors).bind(b),M=p(b,P,N,T),q=h(b,P,M.root,M.align,B==="r");B==="r"&&(q=e.mapValues(q,function(Y){return-Y})),j[L+B]=q})});var O=m(b,j);return y(j,O),x(j,b.graph().align)}function _(b,k,N){return function(j,P,O){var L=j.node(P),B=j.node(O),T=0,M;if(T+=L.width/2,e.has(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":M=-L.width/2;break;case"r":M=L.width/2;break}if(M&&(T+=N?M:-M),M=0,T+=(L.dummy?k:b)/2,T+=(B.dummy?k:b)/2,T+=B.width/2,e.has(B,"labelpos"))switch(B.labelpos.toLowerCase()){case"l":M=B.width/2;break;case"r":M=-B.width/2;break}return M&&(T+=N?M:-M),M=0,T}}function S(b,k){return b.node(k).width}return wg}var xg,jk;function N$(){if(jk)return xg;jk=1;var e=lt(),n=un(),i=E$().positionX;xg=s;function s(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(i(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(m){return l.node(m).height}));e.forEach(h,function(m){l.node(m).y=p+f/2}),p+=f+c})}return xg}var _g,Rk;function C$(){if(Rk)return _g;Rk=1;var e=lt(),n=l$(),i=u$(),s=d$(),o=un().normalizeRanks,l=f$(),u=un().removeEmptyRanks,c=h$(),p=p$(),h=m$(),f=k$(),m=N$(),y=un(),x=Gn().Graph;_g=C;function C(D,Q){var ee=Q&&Q.debugTiming?y.time:y.notime;ee("layout",function(){var oe=ee(" buildLayoutGraph",function(){return T(D)});ee(" runLayout",function(){_(oe,ee)}),ee(" updateInputGraph",function(){S(D,oe)})})}function _(D,Q){Q(" makeSpaceForEdgeLabels",function(){M(D)}),Q(" removeSelfEdges",function(){F(D)}),Q(" acyclic",function(){n.run(D)}),Q(" nestingGraph.run",function(){c.run(D)}),Q(" rank",function(){s(y.asNonCompoundGraph(D))}),Q(" injectEdgeLabelProxies",function(){q(D)}),Q(" removeEmptyRanks",function(){u(D)}),Q(" nestingGraph.cleanup",function(){c.cleanup(D)}),Q(" normalizeRanks",function(){o(D)}),Q(" assignRankMinMax",function(){Y(D)}),Q(" removeEdgeLabelProxies",function(){X(D)}),Q(" normalize.run",function(){i.run(D)}),Q(" parentDummyChains",function(){l(D)}),Q(" addBorderSegments",function(){p(D)}),Q(" order",function(){f(D)}),Q(" insertSelfEdges",function(){G(D)}),Q(" adjustCoordinateSystem",function(){h.adjust(D)}),Q(" position",function(){m(D)}),Q(" positionSelfEdges",function(){E(D)}),Q(" removeBorderNodes",function(){J(D)}),Q(" normalize.undo",function(){i.undo(D)}),Q(" fixupEdgeLabelCoords",function(){U(D)}),Q(" undoCoordinateSystem",function(){h.undo(D)}),Q(" translateGraph",function(){I(D)}),Q(" assignNodeIntersects",function(){H(D)}),Q(" reversePoints",function(){ne(D)}),Q(" acyclic.undo",function(){n.undo(D)})}function S(D,Q){e.forEach(D.nodes(),function(ee){var oe=D.node(ee),le=Q.node(ee);oe&&(oe.x=le.x,oe.y=le.y,Q.children(ee).length&&(oe.width=le.width,oe.height=le.height))}),e.forEach(D.edges(),function(ee){var oe=D.edge(ee),le=Q.edge(ee);oe.points=le.points,e.has(le,"x")&&(oe.x=le.x,oe.y=le.y)}),D.graph().width=Q.graph().width,D.graph().height=Q.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],j=["width","height"],P={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],L={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},B=["labelpos"];function T(D){var Q=new x({multigraph:!0,compound:!0}),ee=se(D.graph());return Q.setGraph(e.merge({},k,$(ee,b),e.pick(ee,N))),e.forEach(D.nodes(),function(oe){var le=se(D.node(oe));Q.setNode(oe,e.defaults($(le,j),P)),Q.setParent(oe,D.parent(oe))}),e.forEach(D.edges(),function(oe){var le=se(D.edge(oe));Q.setEdge(oe,e.merge({},L,$(le,O),e.pick(le,B)))}),Q}function M(D){var Q=D.graph();Q.ranksep/=2,e.forEach(D.edges(),function(ee){var oe=D.edge(ee);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function q(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q);if(ee.width&&ee.height){var oe=D.node(Q.v),le=D.node(Q.w),ge={rank:(le.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode(D,"edge-proxy",ge,"_ep")}})}function Y(D){var Q=0;e.forEach(D.nodes(),function(ee){var oe=D.node(ee);oe.borderTop&&(oe.minRank=D.node(oe.borderTop).rank,oe.maxRank=D.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),D.graph().maxRank=Q}function X(D){e.forEach(D.nodes(),function(Q){var ee=D.node(Q);ee.dummy==="edge-proxy"&&(D.edge(ee.e).labelRank=ee.rank,D.removeNode(Q))})}function I(D){var Q=Number.POSITIVE_INFINITY,ee=0,oe=Number.POSITIVE_INFINITY,le=0,ge=D.graph(),de=ge.marginx||0,Ae=ge.marginy||0;function He(Me){var Te=Me.x,ke=Me.y,Ke=Me.width,ye=Me.height;Q=Math.min(Q,Te-Ke/2),ee=Math.max(ee,Te+Ke/2),oe=Math.min(oe,ke-ye/2),le=Math.max(le,ke+ye/2)}e.forEach(D.nodes(),function(Me){He(D.node(Me))}),e.forEach(D.edges(),function(Me){var Te=D.edge(Me);e.has(Te,"x")&&He(Te)}),Q-=de,oe-=Ae,e.forEach(D.nodes(),function(Me){var Te=D.node(Me);Te.x-=Q,Te.y-=oe}),e.forEach(D.edges(),function(Me){var Te=D.edge(Me);e.forEach(Te.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(Te,"x")&&(Te.x-=Q),e.has(Te,"y")&&(Te.y-=oe)}),ge.width=ee-Q+de,ge.height=le-oe+Ae}function H(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q),oe=D.node(Q.v),le=D.node(Q.w),ge,de;ee.points?(ge=ee.points[0],de=ee.points[ee.points.length-1]):(ee.points=[],ge=le,de=oe),ee.points.unshift(y.intersectRect(oe,ge)),ee.points.push(y.intersectRect(le,de))})}function U(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q);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(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q);ee.reversed&&ee.points.reverse()})}function J(D){e.forEach(D.nodes(),function(Q){if(D.children(Q).length){var ee=D.node(Q),oe=D.node(ee.borderTop),le=D.node(ee.borderBottom),ge=D.node(e.last(ee.borderLeft)),de=D.node(e.last(ee.borderRight));ee.width=Math.abs(de.x-ge.x),ee.height=Math.abs(le.y-oe.y),ee.x=ge.x+ee.width/2,ee.y=oe.y+ee.height/2}}),e.forEach(D.nodes(),function(Q){D.node(Q).dummy==="border"&&D.removeNode(Q)})}function F(D){e.forEach(D.edges(),function(Q){if(Q.v===Q.w){var ee=D.node(Q.v);ee.selfEdges||(ee.selfEdges=[]),ee.selfEdges.push({e:Q,label:D.edge(Q)}),D.removeEdge(Q)}})}function G(D){var Q=y.buildLayerMatrix(D);e.forEach(Q,function(ee){var oe=0;e.forEach(ee,function(le,ge){var de=D.node(le);de.order=ge+oe,e.forEach(de.selfEdges,function(Ae){y.addDummyNode(D,"selfedge",{width:Ae.label.width,height:Ae.label.height,rank:de.rank,order:ge+ ++oe,e:Ae.e,label:Ae.label},"_se")}),delete de.selfEdges})})}function E(D){e.forEach(D.nodes(),function(Q){var ee=D.node(Q);if(ee.dummy==="selfedge"){var oe=D.node(ee.e.v),le=oe.x+oe.width/2,ge=oe.y,de=ee.x-le,Ae=oe.height/2;D.setEdge(ee.e,ee.label),D.removeNode(Q),ee.label.points=[{x:le+2*de/3,y:ge-Ae},{x:le+5*de/6,y:ge-Ae},{x:le+de,y:ge},{x:le+5*de/6,y:ge+Ae},{x:le+2*de/3,y:ge+Ae}],ee.label.x=ee.x,ee.label.y=ee.y}})}function $(D,Q){return e.mapValues(e.pick(D,Q),Number)}function se(D){var Q={};return e.forEach(D,function(ee,oe){Q[oe.toLowerCase()]=ee}),Q}return _g}var Sg,Tk;function j$(){if(Tk)return Sg;Tk=1;var e=lt(),n=un(),i=Gn().Graph;Sg={debugOrdering:s};function s(o){var l=n.buildLayerMatrix(o),u=new i({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,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,m){return u.setEdge(f,m,{style:"invis"}),m})}),u}return Sg}var bg,Ak;function R$(){return Ak||(Ak=1,bg="0.8.5"),bg}var kg,Ik;function T$(){return Ik||(Ik=1,kg={graphlib:Gn(),layout:C$(),debug:j$(),util:{time:un().time,notime:un().notime},version:R$()}),kg}var A$=T$();const Mk=Kg(A$),mi=240,Gi=130,Ys=74,gu=72,Pk=Ys+gu;function I$(e){let n=mi;for(const i of e.values())n=Math.max(n,i.width);return n}const EC=420,M$=2;function na(e){var i;return((i=e.data)==null?void 0:i.sessionId)??"_default"}function Ok(e,n){return((n==null?void 0:n.get(e))??0)>0?EC:0}function qk(e,n){const i=(n==null?void 0:n.get(e))??0;return i>0?6+i*36:0}function P$(e,n,i,s,o,l){const u=new Mk.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:i,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const k=s.get(b);u.setNode(b,{width:((k==null?void 0:k.width)??mi)+Ok(b,l),height:Math.max((k==null?void 0:k.height)??Gi,qk(b,l))})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);Mk.layout(u);const h=new Map;let f=1/0,m=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??mi,P=(N==null?void 0:N.height)??Gi,O=j+Ok(b,l),L=Math.max(P,qk(b,l)),B=k.x-O/2,T=k.y-L/2;h.set(b,{x:B,y:T}),B<f&&(f=B),T<m&&(m=T),B+j>y&&(y=B+j),T+P>x&&(x=T+P)}if(Number.isFinite(f)&&Number.isFinite(m))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-m});const C=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??mi,P=(N==null?void 0:N.height)??Gi;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+j,maxY:k.y+P}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+j),maxY:Math.max(S.maxY,k.y+P)}}return{positions:h,width:C,height:_,pinnedBox:S}}function O$(e,n,i={}){const s=i.direction??"LR",o=i.pinned??new Map,l=i.measured??new Map,u=i.lanes,c=new Map;for(const b of e){const k=na(b),N=c.get(k);N?N.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...P$(c.get(b),n,s,l,o,u)})),f=I$(l),m=i.availableHeight&&i.availableHeight>0?i.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let N=0;for(const j of h)k.length<b&&N>0&&N+j.height>m&&(k.push([]),N=0),k[k.length-1].push(j),N+=j.height+Pk;return k},x=b=>b.reduce((k,N)=>Math.max(k,N.width),0)+EC;let C=y(i.availableWidth?M$:1);C.length>1&&C.reduce((k,N)=>k+x(N),0)+f*(C.length-1)>(i.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){const k=x(b);let N=0;for(const{positions:j,height:P,pinnedBox:O}of b){for(const[B,T]of j)_.set(B,{x:T.x+S,y:T.y+N});let L=N+P;O&&O.maxY>L&&O.minX<S+k&&S<O.maxX&&(L=O.maxY),N=L+Pk}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const N=_.get(b.id);return N?{...b,position:N}:b})}function q$(e,n,i,s){const l=Ys+gu,u=60,c=y=>{const x=s.get(y);return{w:(x==null?void 0:x.width)??mi,h:(x==null?void 0:x.height)??Gi}},p=new Map(e.map(y=>[y.id,na(y)])),h=[],f=e.map(y=>({id:y.id,pos:i.get(y.id)??n.get(y.id)})).filter(y=>y.pos!=null).sort((y,x)=>y.pos.y-x.pos.y||y.pos.x-x.pos.x||y.id.localeCompare(x.id)),m=[];for(const{id:y,pos:x}of f){const{w:C,h:_}=c(y),S=p.get(y)??"_default";if(i.has(y)){h.push({x:x.x,y:x.y,w:C,h:_,sid:S});continue}let b=x.y;for(let k=0;k<h.length+1;k++){const N=h.find(j=>{const P=j.sid===S?24:u,O=j.sid===S?24:l;return x.x<j.x+j.w+P&&j.x<x.x+C+P&&b<j.y+j.h+O&&j.y<b+_+O});if(!N)break;b=N.y+N.h+(N.sid===S?24:l)}b!==x.y&&(n.set(y,{x:x.x,y:b}),m.push(y)),h.push({x:x.x,y:b,w:C,h:_,sid:S})}return m}function L$(e,n,i,s,o){const l=C=>{const _=s.get(C);return{w:(_==null?void 0:_.width)??mi,h:(_==null?void 0:_.height)??Gi}},u=C=>i.get(C)??n.get(C),c=new Map;for(const C of e){if(!u(C.id))continue;const _=na(C),S=c.get(_);S?S.push(C):c.set(_,[C])}const p=new Set;for(const[C,_]of c)_.every(S=>o.has(S.id)&&!i.has(S.id))&&p.add(C);const h=new Map,f=[];for(const C of e){const _=u(C.id);if(!_)continue;const{w:S,h:b}=l(C.id),k=na(C);p.has(k)?(h.get(k)??h.set(k,[]).get(k)).push(C):f.push({x:_.x,y:_.y,w:S,h:b})}if(h.size===0)return[];const m=Ys+gu,y=(C,_,S,b)=>f.some(k=>C<k.x+k.w+Ys&&k.x<C+S+Ys&&_<k.y+k.h+m&&k.y<_+b+m),x=[];for(const C of[...h.keys()].sort()){const _=h.get(C);let S=1/0,b=1/0,k=-1/0,N=-1/0;for(const M of _){const q=u(M.id),{w:Y,h:X}=l(M.id);S=Math.min(S,q.x),b=Math.min(b,q.y),k=Math.max(k,q.x+Y),N=Math.max(N,q.y+X)}const j=k-S,P=N-b,O=[...new Set(f.map(M=>Math.round(M.x)))].sort((M,q)=>M-q),L=O.length?O:[S],B=[0,...f.map(M=>M.y+M.h+m)].sort((M,q)=>M-q);let T=null;e:for(const M of L)for(const q of B){if(q>=b)break;if(!y(M,q,j,P)){T={x:M,y:q};break e}}if(T){const M=T.x-S,q=T.y-b;for(const Y of _){const X=u(Y.id);n.set(Y.id,{x:X.x+M,y:X.y+q})}x.push(C)}for(const M of _){const q=u(M.id),{w:Y,h:X}=l(M.id);f.push({x:q.x,y:q.y,w:Y,h:X})}}return x}function $$(e,n,i,s,o,l=!1){const p=Ys+gu+1,h=8,f=1.75,m=200,y=.7,x=.01,C=T=>{const M=s.get(T);return{w:(M==null?void 0:M.width)??mi,h:(M==null?void 0:M.height)??Gi}},_=T=>i.get(T)??n.get(T),S=new Map;for(const T of e){if(!_(T.id))continue;const M=na(T),q=S.get(M);q?q.push(T):S.set(M,[T])}const b=[],k=new Set,N=new Set,j=o.size===0;for(const T of[...S.keys()].sort()){const M=S.get(T);let q=1/0,Y=1/0,X=-1/0,I=-1/0,H=!1;for(const F of M){const G=_(F.id),{w:E,h:$}=C(F.id);q=Math.min(q,G.x),Y=Math.min(Y,G.y),X=Math.max(X,G.x+E),I=Math.max(I,G.y+$),i.has(F.id)&&(H=!0)}const U=X-q,ne=I-Y;N.add(T);const J=o.get(T);J&&(U>J.w+h||ne>J.h+h)&&k.add(T),o.set(T,{w:U,h:ne}),b.push({sid:T,members:M.map(F=>F.id),x:q,y:Y,w:U,h:ne,anchored:H,mass:1})}for(const T of[...o.keys()])N.has(T)||o.delete(T);if(l||j)return[];let P=!1;for(let T=0;T<b.length&&!P;T++)for(let M=T+1;M<b.length;M++){const q=b[T],Y=b[M];if(!(q.anchored&&Y.anchored)&&Math.abs(q.x+q.w/2-(Y.x+Y.w/2))<(q.w+Y.w)/2+61&&Math.abs(q.y+q.h/2-(Y.y+Y.h/2))<(q.h+Y.h)/2+p){P=!0;break}}if(k.size===0&&!P)return[];if(k.size>0)for(const T of b)k.has(T.sid)&&(T.mass=8);else for(const T of b)T.mass=Math.max(1,T.w*T.h/(mi*Gi));const O=new Map(b.map(T=>[T.sid,T.x])),L=new Map(b.map(T=>[T.sid,T.y]));for(let T=0;T<m;T++){const M=new Map,q=new Map;let Y=0;for(let X=0;X<b.length;X++)for(let I=X+1;I<b.length;I++){const H=b[X],U=b[I];if(H.anchored&&U.anchored)continue;const ne=H.x+H.w/2,J=H.y+H.h/2,F=U.x+U.w/2,G=U.y+U.h/2,E=(H.w+U.w)/2+61-Math.abs(ne-F),$=(H.h+U.h)/2+p-Math.abs(J-G);if(E<=0||$<=0)continue;const se=(We,$e)=>!We.anchored&&!($e<0&&We.x<=0),D=(We,$e)=>!We.anchored&&!($e<0&&We.y<=0),Q=(We,$e,it)=>{const wt=We===$e,et=wt?H.sid<U.sid?-1:1:Math.sign(We-$e);return it(H,et)||it(U,-et)?et:wt&&(it(H,-et)||it(U,et))?-et:0},ee=Q(ne,F,se),oe=Q(J,G,D),le=ee!==0,ge=oe!==0;if(!le&&!ge)continue;const de=le&&(!ge||E*f<$),[Ae,He,Me,Te]=de?[ee,E,M,se]:[oe,$,q,D],ke=Te(H,Ae),Ke=Te(U,-Ae),ye=H.mass,we=U.mass,Ve=ke?Ke?we/(ye+we):1:0,ut=Ke?ke?ye/(ye+we):1:0,ct=He*y;Me.set(H.sid,(Me.get(H.sid)??0)+Ae*ct*Ve),Me.set(U.sid,(Me.get(U.sid)??0)-Ae*ct*ut),Y+=ct}for(const X of b)X.anchored||(X.x=Math.max(0,X.x+(M.get(X.sid)??0)),X.y=Math.max(0,X.y+(q.get(X.sid)??0)));if(Y<x)break}const B=[];for(const T of b){const M=T.x-O.get(T.sid),q=T.y-L.get(T.sid);if(!(Math.abs(M)<1&&Math.abs(q)<1)){for(const Y of T.members){if(i.has(Y))continue;const X=n.get(Y);X&&n.set(Y,{x:X.x+M,y:X.y+q})}B.push(T.sid)}}return B}const D$=600;function Wg(e,n){return!(e.exitAt!=null&&n-e.exitAt>D$||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function F$(e,n){const i=new Set;for(const s of e.agents.values())Wg(s,n)&&i.add(s.id);return i}function z$(e,n,i=0){return e.right+i>n.left&&e.left-i<n.right&&e.bottom+i>n.top&&e.top-i<n.bottom}function B$(e,n,i=0){if(!e)return!1;for(const s of n)if(z$(e,s,i))return!0;return!1}function zi(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function U$(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const H$={agent:qP,sessionGroup:GP},V$=420,Rl=18,W$=9e4,G$=200,Y$=5*6e4,K$=6,X$=2*6e4,Pv="agent-dag.layout",Ov="agent-dag.viewport",NC="agent-dag.summariesDismissed",CC="agent-dag.sessionListOpen",jC="agent-dag.detailOpen",RC="agent-dag.usagePanelOpen",Lk="agent-dag.accountsPanelOpen",$k="agent-dag.versionNoticeDismissed",Q$=15*6e4,Dk={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 Z$(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 Fk="agent-dag.autoRestart",zk="agent-dag.bundleReloadedFor";function J$(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(CC)==="1"}catch{return!1}}function e4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CC,e?"1":"0")}catch{}}function t4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(jC)==="1"}catch{return!1}}function n4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(jC,e?"1":"0")}catch{}}function r4(){if(typeof window>"u")return!0;const e=window.localStorage.getItem(RC);try{return e===null?!0:e==="1"}catch{return!0}}function i4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(RC,e?"1":"0")}catch{}}function s4(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(NC);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(i=>typeof i=="string"):[])}catch{return new Set}}function Bk(e){if(!(typeof window>"u"))try{const n=Array.from(e),i=n.length>200?n.slice(-200):n;window.localStorage.setItem(NC,JSON.stringify(i))}catch{}}function o4(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Pv);if(!n)return e;const i=JSON.parse(n);if(!("v"in i)){const o=Object.entries(i).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(i.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(i.pins)?i.pins:[]}}catch{return e}}function Eg(e,n){if(!(typeof window>"u"))try{const i={};for(const[s,o]of e)i[s]=o;for(const[s,o]of n)i[s]=o;window.localStorage.setItem(Pv,JSON.stringify({v:2,positions:i,pins:Array.from(n.keys())}))}catch{}}function a4(){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 l4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Ov,JSON.stringify(e))}catch{}}function Uk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Pv)}catch{}try{window.localStorage.removeItem(Ov)}catch{}}}function u4(e,n){const i=e.agents.get(n);if(!i)return;const s=[];for(const f of e.agents.values())f.sessionId===n&&s.push(f);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:i.label,cwd:i.cwd,startedAt:i.startedAt,endedAt:i.endedAt,model:i.model,agents:s.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),p=document.createElement("a"),h=(i.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`agents-deck-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Gg={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Yg={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},c4={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 TC(e){return e.startsWith("mcp__")?"mcp":c4[e]??"other"}function AC(e,n){var s,o,l;if(!n)return!0;const i=n.toLowerCase();if(e.label.toLowerCase().includes(i)||(s=e.cwd)!=null&&s.toLowerCase().includes(i)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(i)||e.sessionId.toLowerCase().includes(i)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(i))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(i))return!0;return!1}function d4(e,n){if(!n)return null;const i=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||i.has(l.parentId))break;i.add(l.parentId),s=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&i.has(l.parentId)&&!i.has(l.id)&&(i.add(l.id),o=!0)}return i}function f4(e,n,i,s,o,l,u,c,p,h,f,m,y,x,C,_,S,b){const k=[],N=[],j=new Set;if(l)for(const M of e.agents.values())AC(M,l)&&j.add(M.id);for(const M of e.agents.values()){if(!S.has(M.id))continue;const q=l?!j.has(M.id):!1,Y=M.exitAt!=null,X=_!=null&&!_.has(M.id),I=[q?"rf-dim":"",Y?"rf-exiting":"",X?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,H=u.get(M.id);if(k.push({id:M.id,type:"agent",position:{x:0,y:0},data:{...M,now:n,dim:q,onOpenContext:b},className:I,...H?{width:H.width,height:H.height}:null}),M.parentId&&S.has(M.parentId)){const U=pv(M.sessionId),ne=M.state==="active"?`hsl(${U} 80% 72%)`:`hsl(${U} 50% 55%)`,J=l&&!j.has(M.id)&&!j.has(M.parentId),F=Y,G=C.size>0&&(C.has(M.id)||C.has(M.parentId)),E=_!=null&&!_.has(M.id)&&!_.has(M.parentId),$=M.state==="active"?2:1.5,se=G?$+1.5:$,D=J||F?.2:E?.12:1,Q=[F?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${M.parentId}->${M.id}`,source:M.parentId,target:M.id,animated:(M.state==="active"||G)&&!J&&!F,type:"smoothstep",style:{stroke:ne,strokeWidth:se,opacity:D,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:Q})}}const P=new Map;for(const M of e.agents.values())M.tools.length>0&&P.set(M.id,Math.min(4,M.tools.length));const O=k.filter(M=>!o.has(M.id)&&!m.has(M.id));if(O.length>0||y!==x.current){if(O.length>0){const M=O$(k,N,{direction:"LR",pinned:o,measured:u,availableWidth:i,availableHeight:s,lanes:P});for(const q of M)m.has(q.id)||m.set(q.id,q.position);L$(k,m,o,u,new Set(O.map(q=>q.id)))}q$(k,m,o,u),x.current=y}const L=$$(k,m,o,u,c,!h||f);L.length>0&&p(L),dx(m,e.agents),dx(o,e.agents);const B=[];let T=!1;for(const M of k){let q=o.get(M.id)??m.get(M.id);q||(q={x:0,y:0},m.set(M.id,q),T=!0),B.push({...M,position:q})}return T&&(x.current=""),{nodes:B,edges:N}}function h4(){return g.jsx(fv,{children:g.jsx(p4,{})})}function p4(){var wa,Gr,Yr,wr;const e=aa(),n=A.useRef(Bg()),[,i]=A.useState(0),s=A.useCallback(()=>i(W=>W+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((W,K)=>{l(ue=>{if(!K)return new Set([W]);const ce=new Set(ue);return ce.has(W)?ce.delete(W):ce.add(W),ce}),c(ue=>K&&ue===W?ue:W)},[]),m=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useCallback(W=>_(W),[]),b=A.useRef(s4()),[k,N]=A.useState(J$);A.useEffect(()=>{e4(k)},[k]);const[j,P]=A.useState(t4);A.useEffect(()=>{n4(j)},[j]);const[O,L]=A.useState(r4);A.useEffect(()=>{i4(O)},[O]);const[B,T]=A.useState(()=>{try{const W=window.localStorage.getItem(Lk);return W===null?!0:W==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(Lk,B?"1":"0")}catch{}},[B]);const[M,q]=A.useState(null),[Y,X]=A.useState(!1),[I,H]=A.useState(0),[U,ne]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(q(W.enabled===!0),H((W.foreign??[]).filter(K=>K.worksHere).length),ne(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=A.useCallback(async()=>{X(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!M})})).json().catch(()=>null);K!=null&&K.ok&&q(K.enabled===!0),fetch("/api/sound-hook").then(ue=>ue.ok?ue.json():null).then(ue=>{ue!=null&&ue.ok&&(H((ue.foreign??[]).filter(ce=>ce.worksHere).length),ne(typeof ue.parked=="number"?ue.parked:0))}).catch(()=>{})}catch{}finally{X(!1)}},[M]),[F,G]=A.useState(!1),[E,$]=A.useState(null),[se,D]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem($k)??""}catch{return""}}),[Q,ee]=A.useState(!1),oe=A.useRef(0),le=A.useCallback((W=!1)=>{W&&(oe.current=Date.now()),fetch(W?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&$(K)}).catch(()=>{})},[]),ge=A.useCallback(()=>{le(Date.now()-oe.current>=Q$)},[le]);A.useEffect(()=>{le();const W=window.setInterval(ge,5*6e4),K=()=>{document.visibilityState==="visible"&&ge()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",K)}},[le,ge]),A.useEffect(()=>{F&&le()},[F,le]);const de=(E==null?void 0:E.notice)??null,Ae=de?`${de.kind}:${de.to}`:"",He=de!=null&&se!==Ae,Me=A.useCallback(()=>{if(!de)return;const W=se===Ae?"":Ae;D(W);try{window.localStorage.setItem($k,W)}catch{}},[de,Ae,se]),Te=((wa=E==null?void 0:E.upgrade)==null?void 0:wa.state)??"idle",ke=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}le()},[le]);A.useEffect(()=>{if(Te!=="running")return;const W=window.setInterval(le,3e3);return()=>window.clearInterval(W)},[Te,le]);const Ke=A.useCallback(async()=>{var ue;const W=E==null?void 0:E.command;if(!W)return;let K=!1;try{K=await Promise.race([((ue=navigator.clipboard)==null?void 0:ue.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(ce=>window.setTimeout(()=>ce(!1),500))])}catch{K=!1}if(!K)try{const ce=document.createElement("textarea");ce.value=W,ce.setAttribute("readonly",""),ce.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(ce),ce.select(),K=document.execCommand("copy"),ce.remove()}catch{K=!1}K&&(ee(!0),window.setTimeout(()=>ee(!1),1600))},[E==null?void 0:E.command]),ye=A.useCallback(()=>{N(W=>(W||T(!1),!W))},[]),we=A.useCallback(()=>{T(W=>(W||N(!1),!W))},[]),[Ve,ut]=A.useState(!1),[ct,We]=A.useState(0),$e=A.useRef(null),[it,wt]=A.useState(!1),et=A.useRef(null),[$t,gt]=A.useState(0),[kt,Pt]=A.useState(!1),Ge=A.useRef([]),[De,vt]=A.useState(Date.now()),[st,Mn]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Fk)!=="0"}catch{return!0}}),Vt=A.useCallback(()=>{Mn(W=>{const K=!W;try{window.localStorage.setItem(Fk,K?"1":"0")}catch{}return K})},[]),[xt,cn]=A.useState(!1),[cr,Pn]=A.useState("restart"),[dn,xn]=A.useState(null),Dt=A.useRef(!1),dr=A.useCallback(async W=>{if(Dt.current)return;const K=(W==null?void 0:W.upgrade)===!0;Dt.current=!0,Pn(K?"npx":"restart"),cn(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(de==null?void 0:de.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:K})})}catch{}window.setTimeout(()=>{if(Dt.current){Dt.current=!1,cn(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[de==null?void 0:de.to]),vi=A.useRef(null);A.useEffect(()=>{let W=!1;for(const ue of n.current.agents.values())if(ue.state==="active"){W=!0;break}const K=oO({enabled:st,kind:de==null?void 0:de.kind,canRestart:(E==null?void 0:E.canRestart)===!0,busy:W,idleSince:vi.current,now:De});vi.current=K.idleSince,K.restart&&dr()},[st,de==null?void 0:de.kind,E==null?void 0:E.canRestart,De,dr]),A.useEffect(()=>{let W=null;try{W=window.sessionStorage.getItem(zk)}catch{return}if(sO({bundle:"1.33.55",running:E==null?void 0:E.running,lastTried:W})){try{window.sessionStorage.setItem(zk,(E==null?void 0:E.running)??"")}catch{return}window.location.reload()}},[E==null?void 0:E.running]),A.useEffect(()=>{const W=E==null?void 0:E.running;if(!W)return;let K=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending")}catch{return}if(K==null||K&&K!==W)return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Dt.current=!1,cn(!1),xn(W);const ue=window.setTimeout(()=>xn(null),6e3);return()=>window.clearTimeout(ue)},[E==null?void 0:E.running]);const qr=A.useRef(o4()).current;A.useRef(!1);const Tt=A.useRef(new Map(qr.positions.filter(([W])=>qr.pins.includes(W)))),Xn=A.useRef(null),fr=A.useState(()=>a4())[0],[Wt,Lr]=A.useState(""),[Qn,io]=A.useState(()=>new Set),[fn,hr]=A.useState(()=>typeof window>"u"?"dark":window.localStorage.getItem("agent-dag.theme")??"dark"),[pr,yi]=A.useState(!1),es=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=fn;try{window.localStorage.setItem("agent-dag.theme",fn)}catch{}},[fn]),A.useEffect(()=>{if(!fr)return;const W=window.setTimeout(()=>{try{e.setViewport(fr,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,fr]);const ts=A.useRef(!0);A.useEffect(()=>{const W=new EventSource("/events"),K=cO(s,{now:()=>Date.now(),setTimeout:(ue,ce)=>window.setTimeout(ue,ce),clearTimeout:ue=>window.clearTimeout(ue)});return W.addEventListener("open",()=>{G(!0),yi(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{ts.current=!1,K.flush()}),W.addEventListener("hook",ue=>{try{const ce=JSON.parse(ue.data);if(kt){Ge.current.push(ce);return}n.current=Qw(n.current,ce),ce.replay===!0||ts.current||Date.now()-ce.receivedAt>3e4?K.replay():K.live()}catch{}}),()=>{W.close(),K.cancel()}},[kt,s]),A.useEffect(()=>{if(!kt&&Ge.current.length!==0){for(const W of Ge.current)n.current=Qw(n.current,W);Ge.current.length=0,s()}},[kt,s]),A.useEffect(()=>{const W=setInterval(()=>{const K=Date.now();vt(K);let ue=bP(n.current,K,W$);_P(n.current,K,G$,Y$)&&(ue=!0),SP(n.current,K,K$,X$)&&(ue=!0),ue&&s()},250);return()=>clearInterval(W)},[s]);const $r=A.useRef(null),Ft=A.useRef(0),ns=420,Gt=A.useCallback((W=500)=>{try{const xe=document.querySelector(".canvas-wrap"),Pe=Array.from(document.querySelectorAll(".react-flow__node")).filter(ht=>ht.offsetWidth>0);if(!xe||Pe.length===0)return;const Oe=xe.getBoundingClientRect(),Xe=e.getViewport();if(!Number.isFinite(Xe.zoom)||Xe.zoom<=0)return;const Ye=ht=>(ht-Oe.left-Xe.x)/Xe.zoom,tt=ht=>(ht-Oe.top-Xe.y)/Xe.zoom,Xt=Pe.map(ht=>ht.getBoundingClientRect()),er=Math.min(...Xt.map(ht=>Ye(ht.left))),hs=Math.max(...Xt.map(ht=>Ye(ht.right))),Et=Math.min(...Xt.map(ht=>tt(ht.top))),tr=Math.max(...Xt.map(ht=>tt(ht.bottom))),ps=hs-er,nr=tr-Et;if(!(ps>0&&nr>0))return;const qn=Math.max(.2,Math.min(1,(Oe.width-160)/(ps+ns)*.86,(Oe.height-160)/nr*.86));e.setViewport({x:80-er*qn,y:Math.max(80,(Oe.height-nr*qn)/2)-Et*qn,zoom:qn},{duration:W}),Ft.current=Date.now(),window.setTimeout(()=>{try{const ht={x:80-er*qn,y:Math.max(80,(Oe.height-nr*qn)/2)-Et*qn,zoom:qn},ms=e.getViewport();(Math.abs(ms.zoom-qn)>.01||Math.abs(ms.x-ht.x)>2)&&e.setViewport(ht,{duration:0})}catch{}},W+60)}catch{}},[e]),wi=A.useRef(""),Dr=A.useRef(null),xi=A.useRef(0),mr=A.useCallback(()=>{xi.current=Date.now()},[]),Fr="agent-dag.autoFitDisabled",_n=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Fr)==="1"}catch{return!1}})()),[rs,Ze]=A.useState(_n.current),is=A.useCallback(()=>{if(!_n.current){_n.current=!0,Ze(!0);try{window.localStorage.setItem(Fr,"1")}catch{}}},[]),_i=A.useCallback(()=>{_n.current=!1,Ze(!1);try{window.localStorage.removeItem(Fr)}catch{}Gt(400)},[e,Gt]);A.useEffect(()=>{const W=setInterval(()=>{if(_n.current||Date.now()-xi.current<800)return;const K=n.current,ue=Date.now(),ce=[];for(const Ye of K.agents.values())Wg(Ye,ue)&&ce.push({id:Ye.id});if(ce.length===0)return;const ve=e.getViewport(),xe=window.innerWidth-360,Pe=window.innerHeight-52;let Oe=!1,Xe=!1;for(const{id:Ye}of ce){const tt=hn.current.get(Ye),Xt=Tt.current.get(Ye)??ot.current.get(Ye);if(!tt||!Xt)continue;Xe=!0;const er=Xt.x*ve.zoom+ve.x,hs=Xt.y*ve.zoom+ve.y,Et=(Xt.x+tt.width)*ve.zoom+ve.x,tr=(Xt.y+tt.height)*ve.zoom+ve.y;if(Et>0&&er<xe&&tr>0&&hs<Pe){Oe=!0;break}}Xe&&!Oe&&Gt(600)},1500);return()=>clearInterval(W)},[e]);const zr=A.useRef(!1),hn=A.useRef(new Map),Si=A.useRef(0),ss=A.useCallback(W=>{const K=hn.current;let ue=!1;for(const ce of W.nodeInternals.values()){const ve=ce.width,xe=ce.height;if(ve==null||xe==null)continue;const Pe=K.get(ce.id);Pe?(Math.abs(Pe.height-xe)>4||Math.abs(Pe.width-ve)>4)&&(K.set(ce.id,{width:ve,height:xe}),ue=!0):(K.set(ce.id,{width:ve,height:xe}),ue=!0)}return ue&&(Si.current+=1),Si.current},[]),gr=Qe(ss),[Yt,bi]=A.useState(0);A.useEffect(()=>{let W=0;const K=()=>{const ce=hn.current;let ve=!1;for(const xe of document.querySelectorAll(".react-flow__node[data-id]")){const Pe=xe.getAttribute("data-id");if(!Pe)continue;const Oe=xe.offsetWidth,Xe=xe.offsetHeight;if(!Oe||!Xe)continue;const Ye=ce.get(Pe);(!Ye||Math.abs(Ye.width-Oe)>4||Math.abs(Ye.height-Xe)>4)&&(ce.set(Pe,{width:Oe,height:Xe}),ve=!0)}ve&&bi(xe=>xe+1)};if(zr.current)return;let ue=0;return document.visibilityState==="hidden"?ue=window.setTimeout(K,32):W=requestAnimationFrame(K),()=>{cancelAnimationFrame(W),window.clearTimeout(ue)}});const ot=A.useRef(new Map(qr.positions)),so=A.useRef(""),Br=A.useMemo(()=>{const W=[];for(const K of n.current.agents.values())Wg(K,De)&&W.push(K.id+(K.parentId?`>${K.parentId}`:""));return W.sort(),`${W.join("|")}#sv${gr}.${Yt}`},[n.current,n.current.lastSeq,De,gr,Yt]),ki=A.useRef(null);A.useEffect(()=>(ki.current!=null&&window.clearTimeout(ki.current),ki.current=window.setTimeout(()=>{Eg(ot.current,Tt.current)},1500),()=>{ki.current!=null&&window.clearTimeout(ki.current)}),[Br]),A.useEffect(()=>{if(wi.current===Br)return;const W=wi.current;if(wi.current=Br,!W||_n.current)return;Date.now()-Ft.current>1200&&Gt(400),$r.current&&window.clearTimeout($r.current),$r.current=window.setTimeout(()=>{_n.current||Gt(500)},280)},[Br,e,Gt]);const Ur=A.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const K of o){const ue=d4(n.current,K);if(ue)for(const ce of ue)W.add(ce)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),Hr=A.useMemo(()=>F$(n.current,De),[n.current,n.current.lastSeq,De]),Vr=A.useRef(null),[vr,pa]=A.useState({w:0,h:0});A.useEffect(()=>{const W=Vr.current;if(!W||typeof ResizeObserver>"u")return;const K=new ResizeObserver(ue=>{var ve;const ce=(ve=ue[0])==null?void 0:ve.contentRect;ce&&pa(xe=>Math.abs(xe.w-ce.width)>40||Math.abs(xe.h-ce.height)>40?{w:ce.width,h:ce.height}:xe)});return K.observe(W),pa({w:W.clientWidth,h:W.clientHeight}),()=>K.disconnect()},[]);const vu=A.useRef(new Map),[os,ma]=A.useState(!1);A.useEffect(()=>{const W=window.setTimeout(()=>ma(!0),2500);return()=>window.clearTimeout(W)},[]);const[oo,yr]=A.useState(!1),Zn=A.useRef(null),[Ei,Be]=A.useState(!1),ga=A.useCallback(()=>{Zn.current&&(window.clearTimeout(Zn.current),Zn.current=null),yr(!1)},[]),va=A.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{yr(!0),Zn.current&&window.clearTimeout(Zn.current),Zn.current=window.setTimeout(()=>yr(!1),V$+80)})},[]);A.useEffect(()=>()=>{Zn.current&&window.clearTimeout(Zn.current)},[]);const as=vr.w>0?vr.w*.92:0,ao=vr.h>0?vr.h:0,{nodes:pn,edges:ya}=A.useMemo(()=>f4(n.current,De,as,ao,Tt.current,Wt,hn.current,vu.current,va,os,Ei,ot.current,Br,so,o,Ur,Hr,S),[n.current,n.current.lastSeq,De,as,ao,os,Ei,Wt,Br,o,Ur,Hr,S,ct]),ls=A.useMemo(()=>{const W=new Map;for(const ue of pn){const ce=ue.data;if(!(ce!=null&&ce.sessionId)||ce.exitAt!=null)continue;const ve=ue.width,xe=ue.height;if(ve==null||xe==null)continue;const Pe=ue.position.x,Oe=ue.position.y,Xe=Pe+ve,Ye=Oe+xe,tt=W.get(ce.sessionId);tt?(tt.minX=Math.min(tt.minX,Pe),tt.minY=Math.min(tt.minY,Oe),tt.maxX=Math.max(tt.maxX,Xe),tt.maxY=Math.max(tt.maxY,Ye)):W.set(ce.sessionId,{minX:Pe,minY:Oe,maxX:Xe,maxY:Ye})}const K=[];for(const[ue,ce]of W){const ve=ce.maxX-ce.minX+Rl*2,xe=ce.maxY-ce.minY+Rl*2;K.push({id:`group:${ue}`,type:"sessionGroup",position:{x:ce.minX-Rl,y:ce.minY-Rl},data:{sessionId:ue,w:ve,h:xe},width:ve,height:xe,style:{width:ve,height:xe},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[pn,De]),us=A.useMemo(()=>{const W=[...ls,...pn],K=et.current;return!K||K.size===0?W:W.map(ue=>{const ce=K.get(ue.id);return ce?{...ue,position:ce}:ue})},[ls,pn,$t]),Jn=A.useMemo(()=>{if(!Wt)return null;const W=new Set;for(const K of n.current.agents.values())AC(K,Wt)&&W.add(K.id);return W},[n.current,n.current.lastSeq,Wt]),mn=A.useMemo(()=>{const W=new Set;for(const K of n.current.agents.values())for(const ue of K.tools)W.add(TC(ue.name));return Object.keys(Gg).filter(K=>W.has(K))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(mn.length<=1){wt(!1);return}let W=0;const K=()=>{const ue=$e.current;if(ue&&!document.hidden){const ce=ue.getBoundingClientRect(),ve=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Pe=>Pe.getBoundingClientRect()),xe=B$(ce,ve,8);wt(Pe=>Pe===xe?Pe:xe)}W=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(W)},[mn.length]);const Jt=A.useMemo(()=>{const W=new Map;for(const ue of n.current.agents.values())for(const ce of ue.tools){if(!ce.name.startsWith("mcp__"))continue;const ve=ce.name.slice(5),xe=ve.indexOf("__"),Pe=xe>0?ve.slice(0,xe):ve;W.set(Pe,(W.get(Pe)??0)+1)}const K=[];for(const[ue,ce]of W){let ve=5381;for(let xe=0;xe<ue.length;xe++)ve=(ve<<5)+ve^ue.charCodeAt(xe);K.push({server:ue,count:ce,hue:Math.abs(ve)%360})}return K.sort((ue,ce)=>ce.count-ue.count),K},[n.current,n.current.lastSeq]),Ni=A.useCallback(W=>{io(K=>{const ue=new Set(K);return ue.has(W)?ue.delete(W):ue.add(W),ue})},[]),_t=u?n.current.agents.get(u):null,On=p?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===p)??null:null,lo=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Bg(),Tt.current.clear(),hn.current.clear(),ot.current.clear(),so.current="",Uk(),m(),s()},[s,m]),cs=A.useCallback(()=>{Tt.current.clear(),ot.current.clear(),so.current="",Uk(),s(),window.setTimeout(()=>Gt(500),80)},[s,e,Gt]),Wr=A.useCallback(()=>Gt(500),[Gt]),uo=A.useCallback(W=>{if(pn.length===0)return;const K=pn.slice().sort((xe,Pe)=>xe.position.y-Pe.position.y||xe.position.x-Pe.position.x),ue=u?K.findIndex(xe=>xe.id===u):-1;let ce;ue===-1?ce=W===1?0:K.length-1:ce=(ue+W+K.length)%K.length;const ve=K[ce];ve&&(f(ve.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[ve]})}catch{}Ft.current=Date.now()},30))},[pn,u,f,e]);A.useEffect(()=>{const W=K=>{var ce,ve;const ue=((ce=K.target)==null?void 0:ce.tagName)==="INPUT";if(K.key==="Escape"){ue?K.target.blur():m();return}if(!ue&&!aO(K)){if(K.key==="/"){K.preventDefault(),(ve=es.current)==null||ve.focus();return}K.key===" "&&(K.preventDefault(),Pt(xe=>!xe)),(K.key==="c"||K.key==="C")&&lo(),(K.key==="r"||K.key==="R")&&cs(),(K.key==="f"||K.key==="F")&&Wr(),(K.key==="l"||K.key==="L")&&ye(),(K.key==="h"||K.key==="H")&&ut(xe=>!xe),(K.key==="u"||K.key==="U")&&L(xe=>!xe),(K.key==="a"||K.key==="A")&&we(),(K.key==="j"||K.key==="J")&&uo(1),(K.key==="k"||K.key==="K")&&uo(-1),(K.key==="t"||K.key==="T")&&hr(xe=>xe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[lo,cs,Wr,m,uo]);const ds=n.current.agents.size,fs=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Kt=A.useMemo(()=>{let W=0,K=0,ue=0,ce=0,ve=0,xe=0,Pe=0,Oe=0,Xe=0;for(const Ye of n.current.agents.values()){W+=Ye.usage.inputTokens,K+=Ye.usage.outputTokens,ue+=Ye.usage.cacheReadTokens,ce+=Ye.usage.cacheCreateTokens;const tt=ln(Ye.usage,Ye.model);ve+=tt.total,xe+=tt.input,Pe+=tt.output,Oe+=tt.cacheRead,Xe+=tt.cacheWrite}return{inT:W,outT:K,cacheR:ue,cacheC:ce,sum:W+K,cost:{total:ve,input:xe,output:Pe,cacheRead:Oe,cacheWrite:Xe}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),"agents-deck",de?g.jsxs("button",{type:"button",className:"v stale",onClick:Me,title:de.kind==="restart"?`Running v${de.from}; v${de.to} is installed on disk. Restart to pick it up.`:`Running v${de.from}; v${de.to} is on npm.`,children:["v",de.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):g.jsxs("button",{type:"button",className:"v",onClick:()=>le(!0),title:E!=null&&E.checkDisabled?"Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).":`${E!=null&&E.latest?`npm has v${E.latest}`:"npm not reached yet"}${E!=null&&E.checkedAt?` · checked ${Z$(De-E.checkedAt)}`:""} · click to check now`,children:["v",(E==null?void 0:E.running)??"1.33.55"]})]}),_t&&(()=>{const W=ln(_t.usage,_t.model),K=Math.max(0,((_t.endedAt??De)-_t.startedAt)/1e3),ue=_t.state==="active"?Hl(W.total,K):null,ce=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${_t.label}`,onClick:()=>{try{const ve=pn.find(xe=>xe.id===_t.id);ve&&e.fitView({padding:.35,duration:500,nodes:[ve]}),Ft.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${_t.state}`,children:_t.state==="active"?"live":_t.state}),g.jsx("span",{className:"selected-label",children:_t.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[ze(W.total),ue?g.jsxs("span",{className:"selected-rate",children:[" · ",ue]}):null]}),ce>0&&g.jsxs("span",{className:"selected-extra",children:["+",ce]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:ve=>{ve.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:es,type:"text",placeholder:"Search agents, cwd, tools…",value:Wt,onChange:W=>Lr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Wt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Lr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),g.jsxs("span",{className:"status",role:"status",children:[g.jsx("span",{className:`pill ${F?"live":"dead"}`,title:F?"Receiving events":"SSE disconnected",children:F?"live":"offline"}),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:fs}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:ds}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Kt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Kt.inT.toLocaleString()} out:${Kt.outT.toLocaleString()} cache-r:${Kt.cacheR.toLocaleString()} cache-c:${Kt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:U$(Kt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Jt.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
59
+ burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:x,children:[g.jsx("b",{children:ze(f.total)}),y&&g.jsx("span",{className:"cost-rate",children:y})]})})()]}),g.jsx(Zs,{type:"source",position:Ce.Right,style:{background:"transparent",border:"none"}})]})}function LP({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function $P(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function DP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const x=n-y.startedAt;if(x<0||x>=6e4)continue;const C=23-Math.floor(x/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),p=132,h=14,f=p/24,m=c/(2500/1e3);return g.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${m.toFixed(1)}/s`,children:[g.jsx("svg",{className:"tool-spark",width:p,height:h,viewBox:`0 0 ${p} ${h}`,"aria-hidden":!0,children:l.map((y,x)=>{const C=y===0?1.5:Math.max(1.5,y/c*h),_=x===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:x*f+.4,y:h-C,width:Math.max(.5,f-1),height:C,rx:.8,className:b},x)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function la(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 i=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(i)return`GPT-${i[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function Jw(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function FP(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 zP({tool:e,onClose:n}){A.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const i=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:g.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${i}`}),g.jsx("span",{className:"modal-tool-name",children:e.name}),g.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",children:FP(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:Jw(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",i==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":Jw(e.response??e.errorPreview)})]})]})]})})}const kl=18,ex=26,BP=12;function UP(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,p=u+o.width,h=c+o.height,f=n.get(l.sessionId);f?(f.minX=Math.min(f.minX,u),f.minY=Math.min(f.minY,c),f.maxX=Math.max(f.maxX,p),f.maxY=Math.max(f.maxY,h),l.kind==="root"&&(f.label=tx(l)??f.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:p,maxY:h,label:tx(l)??l.sessionId})}const i=new Map;for(const o of n.values())i.set(o.label,(i.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(i.get(l.label)??0)>1?`${l.label} · ${HP(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-kl,y:l.minY-kl-ex,w:l.maxX-l.minX+kl*2,h:l.maxY-l.minY+kl*2+ex})}return s}function HP(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function tx(e){if(e.kind==="root")return e.label}function VP(){const{x:e,y:n,zoom:i}=cN(),s=aa(),o=Qe(UP,WP);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(p=>{const h=p.data;return(h==null?void 0:h.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=pv(u.sessionId),p={position:"absolute",left:u.x*i+e,top:u.y*i+n,width:u.w*i,height:u.h*i,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},h={position:"absolute",left:u.x*i+e+16*i,top:(u.y-BP)*i+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,i)})`,transformOrigin:"left top"};return g.jsxs(ae.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:p,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:h,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function WP(e,n){if(e.length!==n.length)return!1;for(let i=0;i<e.length;i++){const s=e[i],o=n[i];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 GP({data:e}){return g.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const xN=600,YP=36,Hg=16,KP=60,XP=6,nx=220,rx=96,QP=28,ZP={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 JP(e){return e.startsWith("mcp__")?"mcp":ZP[e]??"other"}const e3={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 ix(e){return e.startsWith("mcp__")?"🔌":e3[e]??"✨"}const t3={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 _N(e){if(!e)return null;let n=e.trim();if(!n)return null;const i=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(i)return _N(i[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 n3(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(i=>typeof i=="string")){const i=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(i[0]??"")){const s=i.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<i.length)return i[s+1]}return i.join(" ")}return typeof n.script=="string"?n.script:null}const r3=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),i3=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function s3(e,n){return i3.has(e)||e.startsWith("mcp__")?Math.max(rx,34+n.length*7.5):rx}function o3(e,n){if(!r3.has(e))return null;const i=n3(n);if(!i)return null;const s=_N(i);return s?{emoji:t3[s]??"⚙️",label:s,category:"shell",detail:i}:null}const a3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),sx={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:"🗄️"},ox={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 l3(e){const i=e.replace(/\\/g,"/").replace(/\/+$/,""),s=i.lastIndexOf("/");return s>=0?i.slice(s+1):i}function u3(e){const n=e.toLowerCase();if(ox[n])return ox[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const i=n.lastIndexOf(".");if(i>0&&i<n.length-1){const s=n.slice(i+1);if(sx[s])return sx[s]}return"📄"}function c3(e,n){if(!n||typeof n!="object")return null;const i=n;if(e==="apply_patch"&&typeof i.patch=="string"){const s=i.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[1].trim():null}return typeof i.file_path=="string"?i.file_path:typeof i.notebook_path=="string"?i.notebook_path:typeof i.path=="string"?i.path:e==="Glob"&&typeof i.pattern=="string"?i.pattern:null}function d3(e,n){if(!a3.has(e))return null;const i=c3(e,n);if(!i)return null;const s=l3(i);return s?{emoji:e==="LS"?"📂":u3(s),label:s,category:"file",detail:i}:null}const SN={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 bN(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),i=n.indexOf("__");return i<=0?{server:n,method:""}:{server:n.slice(0,i),method:n.slice(i+2)}}function f3(e){let n=5381;for(let i=0;i<e.length;i++)n=(n<<5)+n^e.charCodeAt(i);return Math.abs(n)%360}function h3(e,n){const i=bN(e);if(!i)return null;const{server:s,method:o}=i;if(!o)return null;const l=SN[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function p3(e,n){return o3(e,n)??d3(e,n)??h3(e)}const m3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function g3(e){const n=bN(e);if(n){const s=SN[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:f3(n.server)}}const i=m3[e];return i?{emoji:ix(e),label:i}:{emoji:ix(e),label:e}}function v3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function y3(e,n,i){if(i==null)return 1;const s=n-i;return s<0?1:Math.max(0,1-s/xN)}function w3(e,n,i,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>xN)continue;const p=s.get(c.id)??i.get(c.id);if(!p)continue;const h=c.tools.slice(-4);if(h.length===0)continue;const f=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??nx,nx),x=(m==null?void 0:m.height)??130,C=p.x,_=p.y,S=C+y,b=_+x/2;h.forEach((k,N)=>{const j=N*YP,P=C+y+KP,O=_+XP+j,L=y3(k,l,f),B=k.inputPreview??"",T=v3(k),M=L<.999,q=g3(k.name);u.push({id:k.id,toolId:k.id,agentId:c.id,toolName:k.name,name:q.label,emoji:q.emoji,status:T,category:JP(k.name),mcpHue:q.hue,inputPreview:B,fade:L,fading:M,worldX:P,worldY:O,anchorX:S,anchorY:b,spawnDx:S-P,spawnDy:b-(O+Hg)});const Y=p3(k.name,k.input);if(Y){const X=s3(k.name,q.label),I=P+X+QP,H=O,U=P+X,ne=O+Hg;u.push({id:`sub:${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:Y.label,emoji:Y.emoji,isSub:!0,status:T,category:Y.category,inputPreview:Y.detail??B,fade:L,fading:M,worldX:I,worldY:H,anchorX:U,anchorY:ne,spawnDx:U-I,spawnDy:0})}})}return u}function x3({agents:e,visibleAgentIds:n,positions:i,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:p,onOpenTool:h}){const f=w3(e,n,i,s,o,p),m=c&&c.size>0?f.filter(y=>!c.has(y.category)):f;return g.jsx(_3,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:h})}function _3({bursts:e,dimUnmatched:n,spotlight:i,onOpenTool:s}){const{x:o,y:l,zoom:u}=cN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const p=c.anchorX*u+o,h=c.anchorY*u+l,f=(c.worldX+6)*u+o,m=(c.worldY+Hg)*u+l,y=p+(f-p)*.55,x=n!=null&&!n.has(c.agentId),C=i!=null&&!i.has(c.agentId),_=c.fade*(x||C?.14:1);return g.jsx("path",{d:`M ${p} ${h} Q ${y} ${h}, ${f} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const p=c.worldX*u+o,h=c.worldY*u+l,f={left:`${p}px`,top:`${h}px`,transform:`scale(${u})`,transformOrigin:"left top","--spawn-dx":`${c.spawnDx}px`,"--spawn-dy":`${c.spawnDy}px`},m=c.isSub?`${c.toolName} · ${c.name}`:c.toolName,y=c.inputPreview?`${m} · ${c.inputPreview}`:m,x=s!=null,C=c.mcpHue!=null?{"--cat-accent":`hsl(${c.mcpHue} 65% 65%)`}:{},_=n!=null&&!n.has(c.agentId),S=i!=null&&!i.has(c.agentId),b=_||S?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:f,children:g.jsxs("div",{className:`tool-burst cat-${c.category} status-${c.status}${c.fading?" fading":""}${x?" clickable":""}${c.isSub?" sub":""}${b}`,style:C,title:y,role:x?"button":void 0,tabIndex:x?0:void 0,"aria-label":x?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:x?()=>s(c.toolId):void 0,onKeyDown:x?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),s(c.toolId))}:void 0,children:[g.jsx("span",{className:"tb-emoji",children:c.emoji}),g.jsx("span",{className:"tb-name",children:c.name}),c.status==="inflight"&&g.jsx("span",{className:"tb-spin"}),c.status==="done"&&g.jsx("span",{className:"tb-mark done",children:"✓"}),c.status==="err"&&g.jsx("span",{className:"tb-mark err",children:"×"})]})},c.id)})]})}function S3({state:e,sessionId:n,onClose:i}){const s=A.useMemo(()=>k3(e,n),[e,n]);return s?g.jsx("div",{className:"modal-backdrop",onClick:i,role:"presentation",children:g.jsxs("div",{className:"modal session-summary",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[g.jsxs("div",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),g.jsx("span",{id:"ss-title",className:"modal-tool-name",title:s.cwd??s.sessionId,children:s.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),g.jsx("button",{className:"btn",onClick:i,"aria-label":"Close",children:"×"})]})]}),g.jsxs("div",{className:"modal-body",children:[g.jsxs("section",{className:"ss-hero",children:[g.jsxs("div",{className:"ss-hero-left",children:[g.jsx("div",{className:"ss-cost-label",children:"total spend"}),g.jsx("div",{className:"ss-cost",children:ze(s.cost.total)}),s.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>g.jsx("span",{className:"model-chip",title:o,children:la(o)},o))})]}),g.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(b3,{cost:s.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:ze(s.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:ze(s.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:ze(s.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:ze(s.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Fs,{label:"agents",value:s.agentCount}),g.jsx(Fs,{label:"subagents",value:s.subagentCount}),g.jsx(Fs,{label:"tool calls",value:s.toolCount}),g.jsx(Fs,{label:"prompts",value:s.promptCount}),g.jsx(Fs,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&g.jsx(Fs,{label:"errors",value:s.errCount,tone:"err"})]}),s.topTools.length>0&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Most-used tools"}),g.jsx("div",{className:"ss-top-tools",children:s.topTools.map(([o,l])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:o}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Fs({label:e,value:n,tone:i}){return g.jsxs("div",{className:`ss-stat${i?` tone-${i}`:""}`,children:[g.jsx("div",{className:"ss-stat-value",children:n}),g.jsx("div",{className:"ss-stat-label",children:e})]})}function b3({cost:e}){const n=e.total;if(n<=0)return null;const i=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[i(e.input,"cb-input","input"),i(e.output,"cb-output","output"),i(e.cacheRead,"cb-cache-r","cache read"),i(e.cacheWrite,"cb-cache-w","cache write")]})}function k3(e,n){const i=e.agents.get(n);if(!i)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,p=0,h=0,f=0,m=0,y,x=1/0,C=0;for(const N of s){const j=ln(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"&&m++,p+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),h+=N.usage.inputTokens+N.usage.outputTokens,c+=N.toolCount,x=Math.min(x,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const P of N.tools)u.set(P.name,(u.get(P.name)??0)+1),P.ok===!1&&f++}const _=Math.max(0,C-x),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`,k=Array.from(u.entries()).sort((N,j)=>j[1]-N[1]).slice(0,5);return{sessionId:n,label:i.label||i.cwdBasename||"session",cwd:i.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:m,toolCount:c,promptCount:p,tokensSum:h,errCount:f,topTools:k,firstPrompt:y}}function E3(e,n){const i=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.toolCount,l=ln(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.toolCount,l+=ln(c.usage,c.model).total;const p=c.endedAt??c.startedAt;p>u&&(u=p)}i.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 i.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}),i}function N3(e,n,i){const s=(n??i)-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 C3({state:e,now:n,selectedIds:i,onSelect:s,onClose:o}){const l=A.useMemo(()=>E3(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return g.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h3",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),u>0&&g.jsxs("span",{className:"sl-live-count",children:[u," live"]}),g.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),g.jsxs("div",{className:"sl-rows",children:[l.length===0&&g.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(c=>{const p=i.has(c.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${c.state}${p?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[g.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&g.jsx("span",{className:"model-chip",title:c.modelId,children:la(c.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:ze(c.cost)})}),g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:N3(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function ax(e,n){if(!e)return null;const i=n-Math.floor(e/1e3);return i<10?"just now":i<60?`${i}s ago`:i<3600?`${Math.floor(i/60)}m ago`:`${Math.floor(i/3600)}h ago`}function j3(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 Rr(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function R3({cost:e}){const n=e.total;if(n<=0)return null;const i=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[i(e.input,"cb-input","input"),i(e.output,"cb-output","output"),i(e.cacheRead,"cb-cache-r","cache read"),i(e.cacheWrite,"cb-cache-w","cache write")]})}function T3(e,n){const i=e-n;if(i<=0)return null;const s=Math.floor(i/3600),o=Math.floor(i%3600/60);if(s>23){const l=Math.floor(i/86400),u=Math.floor(i%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function A3(e,n,i,s){const o=Math.max(0,n-s),l=Math.max(0,i-o);if(l<120)return null;const u=Math.min(100,l/i*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);m.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Di({pct:e,label:n,reset:i,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=s?T3(s,u):null,x=s&&o?A3(c,s,o,u):null;return g.jsxs("div",{className:"qb-row",children:[g.jsxs("div",{className:"qb-meta",children:[g.jsxs("span",{className:"qb-label",children:[n,l&&g.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),g.jsx("span",{className:"qb-pct",style:{color:h},children:f})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:h,opacity:c===0?.4:1}}),x&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):i?g.jsxs("span",{className:"qb-reset",children:["resets ",i]}):null,x&&g.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const I3=6e4;function M3(){const[e,n]=A.useState(null),[i,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),I3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:i,refresh:()=>l(!0)}}function P3(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 kN=6e4;function O3(){const[e,n]=A.useState(null),[i,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),kN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:i,refresh:()=>l(!0)}}function q3(){const[e,n]=A.useState(null),i=A.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(s(),i.current=window.setInterval(s,kN),()=>{i.current!=null&&window.clearInterval(i.current)}),[]),{data:e}}function L3({state:e,now:n,onClose:i}){var L,B;const{quota:s,loading:o,refresh:l}=M3(),{data:u,loading:c,refresh:p}=O3(),{data:h}=q3(),[f,m]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const T=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(T)},[]);const{byModel:y,totalCost:x,totalTokens:C,burnRate:_}=A.useMemo(()=>{const T=new Map,M={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let q=0,Y=0,X=0,I=0;for(const F of e.agents.values()){const G=F.model??"__unknown__",E=ln(F.usage,F.model),$=T.get(G);$?($.inputTokens+=F.usage.inputTokens,$.outputTokens+=F.usage.outputTokens,$.cacheReadTokens+=F.usage.cacheReadTokens,$.cacheCreateTokens+=F.usage.cacheCreateTokens,$.cost.total+=E.total,$.cost.input+=E.input,$.cost.output+=E.output,$.cost.cacheRead+=E.cacheRead,$.cost.cacheWrite+=E.cacheWrite,$.agentCount++):T.set(G,{model:G,inputTokens:F.usage.inputTokens,outputTokens:F.usage.outputTokens,cacheReadTokens:F.usage.cacheReadTokens,cacheCreateTokens:F.usage.cacheCreateTokens,cost:{...E},agentCount:1}),M.total+=E.total,M.input+=E.input,M.output+=E.output,M.cacheRead+=E.cacheRead,M.cacheWrite+=E.cacheWrite,q+=F.usage.inputTokens,Y+=F.usage.outputTokens,X+=F.usage.cacheReadTokens,I+=F.usage.cacheCreateTokens}const H=Array.from(T.values()).sort((F,G)=>G.cost.total-F.cost.total);let U=0,ne=0;for(const F of e.agents.values()){if(F.state!=="active")continue;const G=ln(F.usage,F.model);U+=G.total,ne=Math.max(ne,((F.endedAt??n)-F.startedAt)/1e3)}const J=ne>0?Hl(U,ne):null;return{byModel:H,totalCost:M,totalTokens:{in:q,out:Y,cacheR:X,cacheC:I},burnRate:J}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const T=[];for(const M of e.agents.values()){if(M.kind!=="root")continue;let q=ln(M.usage,M.model).total,Y=M.usage.inputTokens,X=M.usage.outputTokens;for(const I of e.agents.values())I.sessionId!==M.sessionId||I.kind==="root"||(q+=ln(I.usage,I.model).total,Y+=I.usage.inputTokens,X+=I.usage.outputTokens);T.push({sessionId:M.sessionId,label:M.label||M.cwdBasename||"session",state:M.state,cost:q,inputTokens:Y,outputTokens:X})}return T.sort((M,q)=>q.cost-M.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=C.in+C.out,N=o||c,j=ax(s==null?void 0:s.fetchedAt,f),P=ax(u==null?void 0:u.fetchedAt,f),O=()=>{l(),p()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:O,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:i,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",j&&!o&&g.jsx("span",{className:"up-section-age",title:j3(s==null?void 0:s.source),children:j})]}),s!=null&&s.ok?g.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&g.jsx(Di,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:f}),s.week7dPct!=null&&g.jsx(Di,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:f}),s.weekSonnetPct!=null&&g.jsx(Di,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:f}),s.weekOpusPct!=null&&g.jsx(Di,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:f})]}):(s==null?void 0:s.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),P&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:P})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(L=u.windows)==null?void 0:L.map(T=>g.jsx(Di,{label:T.label,pct:T.pct,reset:T.reset??void 0,resetAt:T.resetAt??void 0,windowSec:T.windowSec??void 0,limitReached:u.limitReached&&T.pct>=100,nowSec:f},T.id)),(B=u.extraWindows)==null?void 0:B.map(T=>g.jsx(Di,{label:T.label,pct:T.pct,reset:T.reset??void 0,resetAt:T.resetAt??void 0,windowSec:T.windowSec??void 0,nowSec:f},T.id)),u.creditLimit&&g.jsx(Di,{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:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Rr(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.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&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.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?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:P3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:ze(x.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(R3,{cost:x}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]}),C.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Rr(C.cacheR)]}),C.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Rr(C.cacheC)]})]}),y.filter(T=>T.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(T=>T.cost.total>0).map(T=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:T.model,children:la(T.model)}),g.jsx("td",{className:"up-num",children:Rr(T.inputTokens+T.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:ze(T.cost.total)})]},T.model))})]})]}),S.filter(T=>T.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(T=>T.cost>0).map(T=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${T.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:T.label}),g.jsx("span",{className:"up-session-tokens",children:Rr(T.inputTokens+T.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:ze(T.cost)})]},T.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const lx=18,$3=1100,zs=(e,n)=>{const i=Math.sin(e*12.9898+n*78.233)*43758.5453;return i-Math.floor(i)},D3=Array.from({length:lx},(e,n)=>{const i=-72+144*n/(lx-1)+(zs(n,1)-.5)*9,s=(i-90)*(Math.PI/180),o=(54+32*Math.cos(i*Math.PI/180))*(.74+zs(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+zs(n,3)*260),delay:Math.round(zs(n,4)*90),dur:760+Math.round(zs(n,5)*260),scale:.8+zs(n,6)*.45,hue:n%4,round:n%3===0}});function ux({anchor:e,lifetimeMs:n=$3}){var l;const[i,s]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.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 p=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!i?null:tI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${i.x}px`,top:`${i.y}px`},"aria-hidden":!0,children:D3.map((u,c)=>g.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 EN=new Set(["awaiting_url","awaiting_code","registering"]);function F3(e){return e!=null&&EN.has(e)}function z3(e){return e!=null&&e!=="done"&&!EN.has(e)}const B3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",U3="the sign-in did not complete";function H3({state:e,serverError:n,localError:i}){const s=e==="idle";return{title:s?"Sign-in ended":"Sign-in failed",message:i||n||(s?B3:U3)}}const V3=1500;async function El(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const W3={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?W3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Vg=ae.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Vg.displayName="SuccessMark";function G3({onClose:e,onChanged:n}){const[i,s]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,m]=A.useState(!1),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),N=A.useRef(null),j=A.useCallback(()=>{S.current&&El({action:"login-cancel"}).catch(()=>{}),e()},[e]);A.useEffect(()=>{const q=Y=>{Y.key==="Escape"&&j()};return window.addEventListener("keydown",q),()=>window.removeEventListener("keydown",q)},[j]);const P=A.useCallback(async()=>{m(!0),x(null),S.current=!0;const q=await El({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){x(od(q,"could not start the sign-in"));return}l(q)},[]);A.useEffect(()=>{if(!F3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const Y=await fetch("/api/claude-accounts/login");Y.ok&&l(await Y.json())}catch{}},V3);return()=>window.clearInterval(q)},[o]),A.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=b.current)==null||q.focus()),(o==null?void 0:o.state)==="done"&&n()},[o==null?void 0:o.state,n]),A.useEffect(()=>{var q;i==="paste"&&((q=k.current)==null||q.focus())},[i]);const O=A.useCallback(async()=>{var Y;m(!0),x(null);const q=await El({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){x(od(q,"the code was not accepted")),q!=null&&q.state&&l(q),(Y=b.current)==null||Y.select();return}c(""),l(q)},[u,o]),L=A.useCallback(async()=>{m(!0),x(null);const q=await El({action:"import",blob:p}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){x(od(q,"the import failed"));return}h(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[p,n]),B=(o==null?void 0:o.state)==="done"?o.account:null,T=z3(o==null?void 0:o.state)||!!(y&&S.current&&!f),M=H3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:j,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":i==="login",className:`aa-tab${i==="login"?" on":""}`,onClick:()=>s("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":i==="paste",className:`aa-tab${i==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:i==="login"?B?g.jsxs("div",{className:"aa-done",children:[g.jsx(Vg,{ref:N}),g.jsx(ux,{anchor:N}),g.jsx("h4",{children:B.added?`Account ${B.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:B.email}),B.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.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"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!f&&O()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!u.trim()||o.state==="registering",onClick:O,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.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."})]})]}):T?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:M.title}),g.jsx("p",{className:"aa-err",children:M.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),P()},children:"Try again"})]}):f||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.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."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:P,disabled:f,children:"Open the sign-in page"})})]}):C?g.jsxs("div",{className:"aa-done",children:[g.jsx(Vg,{ref:N}),C.added&&g.jsx(ux,{anchor:N}),g.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:C.added?g.jsxs(g.Fragment,{children:[C.email?g.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."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:p,onChange:q=>h(q.target.value),onKeyDown:q=>{q.key==="Enter"&&p.trim()&&!f&&L()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:L,children:f?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.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 Y3=15e3,K3=[70,80,85,90,95];function X3(e,n){const i=e-n;if(i<=0)return null;const s=Math.floor(i/86400),o=Math.floor(i%86400/3600),l=Math.floor(i%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function cx(e,n){const i=n-Math.floor(e/1e3);return i<60?"just now":i<3600?`${Math.floor(i/60)}m ago`:i<86400?`${Math.floor(i/3600)}h ago`:`${Math.floor(i/86400)}d ago`}function Q3(e,n){if(!e)return"";const i=Math.floor(e/1e3)-n;return i<=0?" · due":i<60?` · next in ${i}s`:` · next in ${Math.round(i/60)}m`}function Z3(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 J3({lane:e,nowSec:n}){const i=Math.min(100,Math.max(0,e.pct)),s=i>=90?"var(--err)":i>=70?"var(--warn)":"var(--accent)",o=e.resetAt?X3(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${i===0?1.5:i}%`,background:s,opacity:i===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[i,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function eO(e){const n=e.map(s=>s.num),i=n.length?Math.max(...n):0;return[...new Set([...n,i+1])].sort((s,o)=>s-o)}async function tO(e){var i;let n=!1;try{n=await Promise.race([((i=navigator.clipboard)==null?void 0:i.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 nO(e,n){const i=Math.round(e/1e3)-n;return i<=0?{text:"expired",tone:"gone"}:i<60?{text:`expires in ${i}s`,tone:"soon"}:{text:`expires in ${Math.round(i/60)}m`,tone:"ok"}}function rO({onClose:e}){var J,F,G;const[n,i]=A.useState(null),[s,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(null),[h,f]=A.useState(null),[m,y]=A.useState(()=>Math.floor(Date.now()/1e3)),x=A.useRef(null),[C,_]=A.useState(null),[S,b]=A.useState(!1),[k,N]=A.useState(""),[j,P]=A.useState(null),[O,L]=A.useState(null),[B,T]=A.useState(!1),M=A.useCallback(async(E=!1)=>{try{const[$,se]=await Promise.all([fetch(`/api/claude-accounts${E?"?refresh=1":""}`),fetch("/api/cswap-auto")]);$.ok&&i(await $.json()),se.ok&&o(await se.json())}catch{}},[]),q=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]),Y=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]);A.useEffect(()=>(M(!0),x.current=window.setInterval(()=>M(!1),Y3),()=>{x.current!=null&&window.clearInterval(x.current)}),[M]),A.useEffect(()=>{const E=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(E)},[]);const X=((J=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:J.value)??"90",I=(F=n==null?void 0:n.accounts)==null?void 0:F.find(E=>E.active),H=I!=null&&I.lanes.length?Math.max(...I.lanes.map(E=>E.pct)):null,U=H!=null&&H>=Number(X)-15,ne=async E=>{p(E),f(null);try{const se=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:E})})).json().catch(()=>null);se!=null&&se.ok||f((se==null?void 0:se.output)||(se==null?void 0:se.reason)||"switch failed"),await M(!0)}catch{f("server unreachable")}finally{p(null)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.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:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>M(!0),title:"Reload from claude-swap",children:"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(G=n.accounts)==null?void 0:G.map(E=>g.jsxs("div",{className:`ap-account${E.active?" active":""}${E.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:E.num}),E.alias&&g.jsx("span",{className:"ap-alias",children:E.alias}),g.jsx("span",{className:"ap-email",title:E.org??void 0,children:E.email}),g.jsx("button",{type:"button",className:`ap-more${C===E.num?" on":""}`,"aria-label":`Manage account ${E.num}`,"aria-expanded":C===E.num,title:"Share, rename, move, remove",onClick:()=>{_(C===E.num?null:E.num),N(E.alias??""),P(null),L(null),T(!1)},children:"⋯"}),E.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||E.disabled,onClick:()=>ne(E.num),title:E.disabled?"Held out of rotation":`Switch to ${E.alias??E.email}`,children:c===E.num?"…":"switch"})]}),E.lanes.length>0?E.lanes.map($=>g.jsx(J3,{lane:$,nowSec:m},$.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[E.error&&(()=>{const $=Z3(E.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:$.hint,children:$.text}),$.fixable&&g.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))&&!E.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>q({action:"account",account:E.num,enabled:E.disabled},`rot-${E.num}`).then(()=>M(!0)),title:E.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:E.disabled?"held out":"in rotation"}),E.fetchedAt?g.jsxs("span",{className:`ap-age${E.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 ",cx(E.fetchedAt,m),Q3(E.nextAt,m)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===E.num&&g.jsxs("div",{className:"ap-manage",children:[g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"name"}),g.jsx("input",{className:"ap-manage-input",type:"text",value:k,onChange:$=>N($.target.value),onKeyDown:$=>{$.key==="Enter"&&Y({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>M(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${E.num}`}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||k.trim()===(E.alias??""),onClick:()=>Y({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>M(!0)),title:"A short name to show instead of the email",children:"save"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{"aria-label":`Slot for account ${E.num}`,value:String(E.num),disabled:l!=null,onChange:$=>Y({action:"move",account:E.num,slot:Number($.target.value)},`move-${E.num}`).then(()=>M(!0)),children:eO(n.accounts??[]).map($=>g.jsx("option",{value:$,children:$},$))})}),g.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.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()=>{T(!1);const $=await Y({action:"share",account:E.num},`share-${E.num}`);$!=null&&$.ok&&L({num:E.num,blob:$.blob,expiresAt:$.expiresAt})},children:"share…"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${j===E.num?" armed":""}`,disabled:l!=null,title:j===E.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(j!==E.num){P(E.num),window.setTimeout(()=>P($=>$===E.num?null:$),4e3);return}P(null),Y({action:"remove",account:E.num},`rm-${E.num}`).then(()=>{_(null),M(!0)})},children:j===E.num?"confirm remove":"remove"})]}),(O==null?void 0:O.num)===E.num&&(()=>{const $=nO(O.expiresAt,m),se=$.tone==="gone";return g.jsxs("div",{className:`ap-share${se?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:O.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(se){T(!1);const D=await Y({action:"share",account:E.num},`share-${E.num}`);D!=null&&D.ok&&L({num:E.num,blob:D.blob,expiresAt:D.expiresAt});return}await tO(O.blob)&&(T(!0),window.setTimeout(()=>T(!1),1800))},children:se?"make a new share":B?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${$.tone}`,children:$.text})]})]})]})})()]})]},E.num)),(s==null?void 0:s.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[H!=null&&g.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(H),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:X,disabled:l!=null,onChange:E=>q({action:"setting",key:"autoswitch.threshold",value:E.target.value},"threshold").then(()=>M(!0)),children:K3.map(E=>g.jsxs("option",{value:E,children:[E,"%"]},E))})}),g.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>q({action:"enable",enabled:!s.enabled},"enable").then(()=>M(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.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&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",cx(s.lastTick.at,m)]})})]}),h&&g.jsx("div",{className:"ap-failure",children:h}),g.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."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.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&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),S&&g.jsx(G3,{onClose:()=>b(!1),onChanged:()=>M(!0)})]})}const iO=3e4;function sO({bundle:e,running:n,lastTried:i}){return!n||e===n?!1:i!==n}function oO(e){const n=e.thresholdMs??iO;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 aO(e){return e.ctrlKey||e.metaKey||e.altKey}function dx(e,n){if(n.size!==0)for(const i of Array.from(e.keys()))n.has(i)||e.delete(i)}const lO=40,uO=120;function cO(e,n){let i=null,s=0,o=Number.NEGATIVE_INFINITY;const l=()=>{i=null,o=n.now(),e()},u=()=>{i!=null&&(n.clearTimeout(i),i=null)},c=(p,h,f)=>{if(i!=null){if(s<=p)return;u()}const m=Math.min(f,Math.max(0,p-h));s=p,i=n.setTimeout(l,m)};return{live(p=lO){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=uO){u(),s=n.now()+p,i=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function dO(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function Fi(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 fx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function Nl(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 fO(e){return new Date(Date.now()-(e-1)*864e5).toISOString().slice(0,10).replace(/-/g,"")}const hO=[7,14,30,90];function pO(e){const[n,i]=A.useState(null),[s,o]=A.useState(!1),l=A.useRef(dO()).current,u=(c=!1)=>{const p=l.begin();o(!0);const f=`/api/ccusage?since=${fO(e)}${c?"&refresh=1":""}`;fetch(f).then(m=>m.json()).then(m=>{p()&&i(m)}).catch(()=>{p()&&i({ok:!1,error:"request failed"})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{data:n,loading:s,reload:()=>u(!0)}}function mO({onClose:e}){var b,k;const[n,i]=A.useState(30),[s,o]=A.useState(null),{data:l,loading:u,reload:c}=pO(n);A.useEffect(()=>{const N=j=>{j.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const p=l!=null&&l.ok?l.days??[]:[],h=A.useMemo(()=>p.reduce((N,j)=>Math.max(N,j.totalCost),0),[p]),{totalCost:f,totalTok:m,inOut:y,cacheRead:x,modelCosts:C}=A.useMemo(()=>{let N=0,j=0,P=0,O=0;const L=new Map;for(const B of p){N+=B.totalCost,j+=B.totalTokens,P+=B.inputTokens+B.outputTokens,O+=B.cacheReadTokens;for(const T of B.modelBreakdowns)L.set(T.modelName,(L.get(T.modelName)??0)+T.cost)}return{totalCost:N,totalTok:j,inOut:P,cacheRead:O,modelCosts:L}},[p]),_=A.useMemo(()=>Array.from(C.entries()).sort((N,j)=>j[1]-N[1]),[C]),S=s?p.find(N=>N.period===s)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:hO.map(N=>g.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{i(N),o(null)},children:[N,"d"]},N))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&p.length===0?g.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?g.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):p.length===0?g.jsx("div",{className:"uh-status",children:"no usage in this range"}):g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(Cl,{label:"total cost",val:ze(f),accent:!0}),g.jsx(Cl,{label:"tokens",val:Fi(m)}),g.jsx(Cl,{label:"input+output",val:Fi(y)}),g.jsx(Cl,{label:"cache reads",val:Fi(x)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(N=>{const j=h>0?N.totalCost/h*100:0,P=N.period===s;return g.jsxs("button",{className:`uh-bar-col${P?" sel":""}`,onClick:()=>o(P?null:N.period),title:`${N.period} · ${ze(N.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(j,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((O,L)=>L.cost-O.cost).map(O=>{const L=N.totalCost>0?O.cost/N.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${L}%`,background:Nl(O.modelName)}},O.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),g.jsx("div",{className:"uh-legend",children:_.map(([N,j])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Nl(N)}}),fx(N)," ",g.jsx("span",{className:"uh-legend-cost",children:ze(j)})]},N))}),S&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:S.period}),g.jsx("span",{className:"uh-detail-cost",children:ze(S.totalCost)}),(k=(b=S.metadata)==null?void 0:b.agents)!=null&&k.length?g.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(jl,{label:"input",val:Fi(S.inputTokens)}),g.jsx(jl,{label:"output",val:Fi(S.outputTokens)}),g.jsx(jl,{label:"cache write",val:Fi(S.cacheCreationTokens)}),g.jsx(jl,{label:"cache read",val:Fi(S.cacheReadTokens)})]}),g.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 g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Nl(N.modelName)}}),fx(N.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${j}%`,background:Nl(N.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:ze(N.cost)})]},N.modelName)})})]})]})]})})}function Cl({label:e,val:n,accent:i}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${i?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function jl({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.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,hx;function gO(){if(hx)return ad;hx=1;function e(){this.__data__=[],this.size=0}return ad=e,ad}var ld,px;function Js(){if(px)return ld;px=1;function e(n,i){return n===i||n!==n&&i!==i}return ld=e,ld}var ud,mx;function Jl(){if(mx)return ud;mx=1;var e=Js();function n(i,s){for(var o=i.length;o--;)if(e(i[o][0],s))return o;return-1}return ud=n,ud}var cd,gx;function vO(){if(gx)return cd;gx=1;var e=Jl(),n=Array.prototype,i=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():i.call(l,u,1),--this.size,!0}return cd=s,cd}var dd,vx;function yO(){if(vx)return dd;vx=1;var e=Jl();function n(i){var s=this.__data__,o=e(s,i);return o<0?void 0:s[o][1]}return dd=n,dd}var fd,yx;function wO(){if(yx)return fd;yx=1;var e=Jl();function n(i){return e(this.__data__,i)>-1}return fd=n,fd}var hd,wx;function xO(){if(wx)return hd;wx=1;var e=Jl();function n(i,s){var o=this.__data__,l=e(o,i);return l<0?(++this.size,o.push([i,s])):o[l][1]=s,this}return hd=n,hd}var pd,xx;function eu(){if(xx)return pd;xx=1;var e=gO(),n=vO(),i=yO(),s=wO(),o=xO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=i,l.prototype.has=s,l.prototype.set=o,pd=l,pd}var md,_x;function _O(){if(_x)return md;_x=1;var e=eu();function n(){this.__data__=new e,this.size=0}return md=n,md}var gd,Sx;function SO(){if(Sx)return gd;Sx=1;function e(n){var i=this.__data__,s=i.delete(n);return this.size=i.size,s}return gd=e,gd}var vd,bx;function bO(){if(bx)return vd;bx=1;function e(n){return this.__data__.get(n)}return vd=e,vd}var yd,kx;function kO(){if(kx)return yd;kx=1;function e(n){return this.__data__.has(n)}return yd=e,yd}var wd,Ex;function NN(){if(Ex)return wd;Ex=1;var e=typeof hl=="object"&&hl&&hl.Object===Object&&hl;return wd=e,wd}var xd,Nx;function Kn(){if(Nx)return xd;Nx=1;var e=NN(),n=typeof self=="object"&&self&&self.Object===Object&&self,i=e||n||Function("return this")();return xd=i,xd}var _d,Cx;function eo(){if(Cx)return _d;Cx=1;var e=Kn(),n=e.Symbol;return _d=n,_d}var Sd,jx;function EO(){if(jx)return Sd;jx=1;var e=eo(),n=Object.prototype,i=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=i.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=s.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Sd=l,Sd}var bd,Rx;function NO(){if(Rx)return bd;Rx=1;var e=Object.prototype,n=e.toString;function i(s){return n.call(s)}return bd=i,bd}var kd,Tx;function Xi(){if(Tx)return kd;Tx=1;var e=eo(),n=EO(),i=NO(),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):i(c)}return kd=u,kd}var Ed,Ax;function An(){if(Ax)return Ed;Ax=1;function e(n){var i=typeof n;return n!=null&&(i=="object"||i=="function")}return Ed=e,Ed}var Nd,Ix;function ua(){if(Ix)return Nd;Ix=1;var e=Xi(),n=An(),i="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==s||p==o||p==i||p==l}return Nd=u,Nd}var Cd,Mx;function CO(){if(Mx)return Cd;Mx=1;var e=Kn(),n=e["__core-js_shared__"];return Cd=n,Cd}var jd,Px;function jO(){if(Px)return jd;Px=1;var e=CO(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function i(s){return!!n&&n in s}return jd=i,jd}var Rd,Ox;function CN(){if(Ox)return Rd;Ox=1;var e=Function.prototype,n=e.toString;function i(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Rd=i,Rd}var Td,qx;function RO(){if(qx)return Td;qx=1;var e=ua(),n=jO(),i=An(),s=CN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!i(y)||n(y))return!1;var x=e(y)?f:l;return x.test(s(y))}return Td=m,Td}var Ad,Lx;function TO(){if(Lx)return Ad;Lx=1;function e(n,i){return n==null?void 0:n[i]}return Ad=e,Ad}var Id,$x;function Qi(){if($x)return Id;$x=1;var e=RO(),n=TO();function i(s,o){var l=n(s,o);return e(l)?l:void 0}return Id=i,Id}var Md,Dx;function vv(){if(Dx)return Md;Dx=1;var e=Qi(),n=Kn(),i=e(n,"Map");return Md=i,Md}var Pd,Fx;function tu(){if(Fx)return Pd;Fx=1;var e=Qi(),n=e(Object,"create");return Pd=n,Pd}var Od,zx;function AO(){if(zx)return Od;zx=1;var e=tu();function n(){this.__data__=e?e(null):{},this.size=0}return Od=n,Od}var qd,Bx;function IO(){if(Bx)return qd;Bx=1;function e(n){var i=this.has(n)&&delete this.__data__[n];return this.size-=i?1:0,i}return qd=e,qd}var Ld,Ux;function MO(){if(Ux)return Ld;Ux=1;var e=tu(),n="__lodash_hash_undefined__",i=Object.prototype,s=i.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,Hx;function PO(){if(Hx)return $d;Hx=1;var e=tu(),n=Object.prototype,i=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:i.call(l,o)}return $d=s,$d}var Dd,Vx;function OO(){if(Vx)return Dd;Vx=1;var e=tu(),n="__lodash_hash_undefined__";function i(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=i,Dd}var Fd,Wx;function qO(){if(Wx)return Fd;Wx=1;var e=AO(),n=IO(),i=MO(),s=PO(),o=OO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=i,l.prototype.has=s,l.prototype.set=o,Fd=l,Fd}var zd,Gx;function LO(){if(Gx)return zd;Gx=1;var e=qO(),n=eu(),i=vv();function s(){this.size=0,this.__data__={hash:new e,map:new(i||n),string:new e}}return zd=s,zd}var Bd,Yx;function $O(){if(Yx)return Bd;Yx=1;function e(n){var i=typeof n;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?n!=="__proto__":n===null}return Bd=e,Bd}var Ud,Kx;function nu(){if(Kx)return Ud;Kx=1;var e=$O();function n(i,s){var o=i.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Ud=n,Ud}var Hd,Xx;function DO(){if(Xx)return Hd;Xx=1;var e=nu();function n(i){var s=e(this,i).delete(i);return this.size-=s?1:0,s}return Hd=n,Hd}var Vd,Qx;function FO(){if(Qx)return Vd;Qx=1;var e=nu();function n(i){return e(this,i).get(i)}return Vd=n,Vd}var Wd,Zx;function zO(){if(Zx)return Wd;Zx=1;var e=nu();function n(i){return e(this,i).has(i)}return Wd=n,Wd}var Gd,Jx;function BO(){if(Jx)return Gd;Jx=1;var e=nu();function n(i,s){var o=e(this,i),l=o.size;return o.set(i,s),this.size+=o.size==l?0:1,this}return Gd=n,Gd}var Yd,e_;function yv(){if(e_)return Yd;e_=1;var e=LO(),n=DO(),i=FO(),s=zO(),o=BO();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=i,l.prototype.has=s,l.prototype.set=o,Yd=l,Yd}var Kd,t_;function UO(){if(t_)return Kd;t_=1;var e=eu(),n=vv(),i=yv(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<s-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new i(p)}return c.set(l,u),this.size=c.size,this}return Kd=o,Kd}var Xd,n_;function ru(){if(n_)return Xd;n_=1;var e=eu(),n=_O(),i=SO(),s=bO(),o=kO(),l=UO();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=i,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,Xd=u,Xd}var Qd,r_;function wv(){if(r_)return Qd;r_=1;function e(n,i){for(var s=-1,o=n==null?0:n.length;++s<o&&i(n[s],s,n)!==!1;);return n}return Qd=e,Qd}var Zd,i_;function jN(){if(i_)return Zd;i_=1;var e=Qi(),n=(function(){try{var i=e(Object,"defineProperty");return i({},"",{}),i}catch{}})();return Zd=n,Zd}var Jd,s_;function iu(){if(s_)return Jd;s_=1;var e=jN();function n(i,s,o){s=="__proto__"&&e?e(i,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):i[s]=o}return Jd=n,Jd}var ef,o_;function su(){if(o_)return ef;o_=1;var e=iu(),n=Js(),i=Object.prototype,s=i.hasOwnProperty;function o(l,u,c){var p=l[u];(!(s.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return ef=o,ef}var tf,a_;function ca(){if(a_)return tf;a_=1;var e=su(),n=iu();function i(s,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],m=u?u(l[f],s[f],f,l,s):void 0;m===void 0&&(m=s[f]),c?n(l,f,m):e(l,f,m)}return l}return tf=i,tf}var nf,l_;function HO(){if(l_)return nf;l_=1;function e(n,i){for(var s=-1,o=Array(n);++s<n;)o[s]=i(s);return o}return nf=e,nf}var rf,u_;function ur(){if(u_)return rf;u_=1;function e(n){return n!=null&&typeof n=="object"}return rf=e,rf}var sf,c_;function VO(){if(c_)return sf;c_=1;var e=Xi(),n=ur(),i="[object Arguments]";function s(o){return n(o)&&e(o)==i}return sf=s,sf}var of,d_;function da(){if(d_)return of;d_=1;var e=VO(),n=ur(),i=Object.prototype,s=i.hasOwnProperty,o=i.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,f_;function bt(){if(f_)return af;f_=1;var e=Array.isArray;return af=e,af}var Ho={exports:{}},lf,h_;function WO(){if(h_)return lf;h_=1;function e(){return!1}return lf=e,lf}Ho.exports;var p_;function to(){return p_||(p_=1,(function(e,n){var i=Kn(),s=WO(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?i.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||s;e.exports=h})(Ho,Ho.exports)),Ho.exports}var uf,m_;function ou(){if(m_)return uf;m_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function i(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=i,uf}var cf,g_;function xv(){if(g_)return cf;g_=1;var e=9007199254740991;function n(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=e}return cf=n,cf}var df,v_;function GO(){if(v_)return df;v_=1;var e=Xi(),n=xv(),i=ur(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",m="[object Object]",y="[object RegExp]",x="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",N="[object Float64Array]",j="[object Int8Array]",P="[object Int16Array]",O="[object Int32Array]",L="[object Uint8Array]",B="[object Uint8ClampedArray]",T="[object Uint16Array]",M="[object Uint32Array]",q={};q[k]=q[N]=q[j]=q[P]=q[O]=q[L]=q[B]=q[T]=q[M]=!0,q[s]=q[o]=q[S]=q[l]=q[b]=q[u]=q[c]=q[p]=q[h]=q[f]=q[m]=q[y]=q[x]=q[C]=q[_]=!1;function Y(X){return i(X)&&n(X.length)&&!!q[e(X)]}return df=Y,df}var ff,y_;function au(){if(y_)return ff;y_=1;function e(n){return function(i){return n(i)}}return ff=e,ff}var Vo={exports:{}};Vo.exports;var w_;function _v(){return w_||(w_=1,(function(e,n){var i=NN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&i.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Vo,Vo.exports)),Vo.exports}var hf,x_;function fa(){if(x_)return hf;x_=1;var e=GO(),n=au(),i=_v(),s=i&&i.isTypedArray,o=s?n(s):e;return hf=o,hf}var pf,__;function RN(){if(__)return pf;__=1;var e=HO(),n=da(),i=bt(),s=to(),o=ou(),l=fa(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var m=i(h),y=!m&&n(h),x=!m&&!y&&s(h),C=!m&&!y&&!x&&l(h),_=m||y||x||C,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return pf=p,pf}var mf,S_;function lu(){if(S_)return mf;S_=1;var e=Object.prototype;function n(i){var s=i&&i.constructor,o=typeof s=="function"&&s.prototype||e;return i===o}return mf=n,mf}var gf,b_;function TN(){if(b_)return gf;b_=1;function e(n,i){return function(s){return n(i(s))}}return gf=e,gf}var vf,k_;function YO(){if(k_)return vf;k_=1;var e=TN(),n=e(Object.keys,Object);return vf=n,vf}var yf,E_;function Sv(){if(E_)return yf;E_=1;var e=lu(),n=YO(),i=Object.prototype,s=i.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,N_;function Pr(){if(N_)return wf;N_=1;var e=ua(),n=xv();function i(s){return s!=null&&n(s.length)&&!e(s)}return wf=i,wf}var xf,C_;function gi(){if(C_)return xf;C_=1;var e=RN(),n=Sv(),i=Pr();function s(o){return i(o)?e(o):n(o)}return xf=s,xf}var _f,j_;function KO(){if(j_)return _f;j_=1;var e=ca(),n=gi();function i(s,o){return s&&e(o,n(o),s)}return _f=i,_f}var Sf,R_;function XO(){if(R_)return Sf;R_=1;function e(n){var i=[];if(n!=null)for(var s in Object(n))i.push(s);return i}return Sf=e,Sf}var bf,T_;function QO(){if(T_)return bf;T_=1;var e=An(),n=lu(),i=XO(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return i(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return bf=l,bf}var kf,A_;function Zi(){if(A_)return kf;A_=1;var e=RN(),n=QO(),i=Pr();function s(o){return i(o)?e(o,!0):n(o)}return kf=s,kf}var Ef,I_;function ZO(){if(I_)return Ef;I_=1;var e=ca(),n=Zi();function i(s,o){return s&&e(o,n(o),s)}return Ef=i,Ef}var Wo={exports:{}};Wo.exports;var M_;function AN(){return M_||(M_=1,(function(e,n){var i=Kn(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?i.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var m=h.length,y=c?c(m):new h.constructor(m);return h.copy(y),y}e.exports=p})(Wo,Wo.exports)),Wo.exports}var Nf,P_;function IN(){if(P_)return Nf;P_=1;function e(n,i){var s=-1,o=n.length;for(i||(i=Array(o));++s<o;)i[s]=n[s];return i}return Nf=e,Nf}var Cf,O_;function MN(){if(O_)return Cf;O_=1;function e(n,i){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];i(c,s,n)&&(u[l++]=c)}return u}return Cf=e,Cf}var jf,q_;function PN(){if(q_)return jf;q_=1;function e(){return[]}return jf=e,jf}var Rf,L_;function bv(){if(L_)return Rf;L_=1;var e=MN(),n=PN(),i=Object.prototype,s=i.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,$_;function JO(){if($_)return Tf;$_=1;var e=ca(),n=bv();function i(s,o){return e(s,n(s),o)}return Tf=i,Tf}var Af,D_;function kv(){if(D_)return Af;D_=1;function e(n,i){for(var s=-1,o=i.length,l=n.length;++s<o;)n[l+s]=i[s];return n}return Af=e,Af}var If,F_;function uu(){if(F_)return If;F_=1;var e=TN(),n=e(Object.getPrototypeOf,Object);return If=n,If}var Mf,z_;function ON(){if(z_)return Mf;z_=1;var e=kv(),n=uu(),i=bv(),s=PN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,i(u)),u=n(u);return c}:s;return Mf=l,Mf}var Pf,B_;function eq(){if(B_)return Pf;B_=1;var e=ca(),n=ON();function i(s,o){return e(s,n(s),o)}return Pf=i,Pf}var Of,U_;function qN(){if(U_)return Of;U_=1;var e=kv(),n=bt();function i(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return Of=i,Of}var qf,H_;function LN(){if(H_)return qf;H_=1;var e=qN(),n=bv(),i=gi();function s(o){return e(o,i,n)}return qf=s,qf}var Lf,V_;function tq(){if(V_)return Lf;V_=1;var e=qN(),n=ON(),i=Zi();function s(o){return e(o,i,n)}return Lf=s,Lf}var $f,W_;function nq(){if(W_)return $f;W_=1;var e=Qi(),n=Kn(),i=e(n,"DataView");return $f=i,$f}var Df,G_;function rq(){if(G_)return Df;G_=1;var e=Qi(),n=Kn(),i=e(n,"Promise");return Df=i,Df}var Ff,Y_;function $N(){if(Y_)return Ff;Y_=1;var e=Qi(),n=Kn(),i=e(n,"Set");return Ff=i,Ff}var zf,K_;function iq(){if(K_)return zf;K_=1;var e=Qi(),n=Kn(),i=e(n,"WeakMap");return zf=i,zf}var Bf,X_;function no(){if(X_)return Bf;X_=1;var e=nq(),n=vv(),i=rq(),s=$N(),o=iq(),l=Xi(),u=CN(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",m="[object WeakMap]",y="[object DataView]",x=u(e),C=u(n),_=u(i),S=u(s),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||i&&k(i.resolve())!=h||s&&k(new s)!=f||o&&k(new o)!=m)&&(k=function(N){var j=l(N),P=j==p?N.constructor:void 0,O=P?u(P):"";if(O)switch(O){case x:return y;case C:return c;case _:return h;case S:return f;case b:return m}return j}),Bf=k,Bf}var Uf,Q_;function sq(){if(Q_)return Uf;Q_=1;var e=Object.prototype,n=e.hasOwnProperty;function i(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=i,Uf}var Hf,Z_;function DN(){if(Z_)return Hf;Z_=1;var e=Kn(),n=e.Uint8Array;return Hf=n,Hf}var Vf,J_;function Ev(){if(J_)return Vf;J_=1;var e=DN();function n(i){var s=new i.constructor(i.byteLength);return new e(s).set(new e(i)),s}return Vf=n,Vf}var Wf,e1;function oq(){if(e1)return Wf;e1=1;var e=Ev();function n(i,s){var o=s?e(i.buffer):i.buffer;return new i.constructor(o,i.byteOffset,i.byteLength)}return Wf=n,Wf}var Gf,t1;function aq(){if(t1)return Gf;t1=1;var e=/\w*$/;function n(i){var s=new i.constructor(i.source,e.exec(i));return s.lastIndex=i.lastIndex,s}return Gf=n,Gf}var Yf,n1;function lq(){if(n1)return Yf;n1=1;var e=eo(),n=e?e.prototype:void 0,i=n?n.valueOf:void 0;function s(o){return i?Object(i.call(o)):{}}return Yf=s,Yf}var Kf,r1;function FN(){if(r1)return Kf;r1=1;var e=Ev();function n(i,s){var o=s?e(i.buffer):i.buffer;return new i.constructor(o,i.byteOffset,i.length)}return Kf=n,Kf}var Xf,i1;function uq(){if(i1)return Xf;i1=1;var e=Ev(),n=oq(),i=aq(),s=lq(),o=FN(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",m="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",N="[object Int32Array]",j="[object Uint8Array]",P="[object Uint8ClampedArray]",O="[object Uint16Array]",L="[object Uint32Array]";function B(T,M,q){var Y=T.constructor;switch(M){case x:return e(T);case l:case u:return new Y(+T);case C:return n(T,q);case _:case S:case b:case k:case N:case j:case P:case O:case L:return o(T,q);case c:return new Y;case p:case m:return new Y(T);case h:return i(T);case f:return new Y;case y:return s(T)}}return Xf=B,Xf}var Qf,s1;function zN(){if(s1)return Qf;s1=1;var e=An(),n=Object.create,i=(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=i,Qf}var Zf,o1;function BN(){if(o1)return Zf;o1=1;var e=zN(),n=uu(),i=lu();function s(o){return typeof o.constructor=="function"&&!i(o)?e(n(o)):{}}return Zf=s,Zf}var Jf,a1;function cq(){if(a1)return Jf;a1=1;var e=no(),n=ur(),i="[object Map]";function s(o){return n(o)&&e(o)==i}return Jf=s,Jf}var eh,l1;function dq(){if(l1)return eh;l1=1;var e=cq(),n=au(),i=_v(),s=i&&i.isMap,o=s?n(s):e;return eh=o,eh}var th,u1;function fq(){if(u1)return th;u1=1;var e=no(),n=ur(),i="[object Set]";function s(o){return n(o)&&e(o)==i}return th=s,th}var nh,c1;function hq(){if(c1)return nh;c1=1;var e=fq(),n=au(),i=_v(),s=i&&i.isSet,o=s?n(s):e;return nh=o,nh}var rh,d1;function UN(){if(d1)return rh;d1=1;var e=ru(),n=wv(),i=su(),s=KO(),o=ZO(),l=AN(),u=IN(),c=JO(),p=eq(),h=LN(),f=tq(),m=no(),y=sq(),x=uq(),C=BN(),_=bt(),S=to(),b=dq(),k=An(),N=hq(),j=gi(),P=Zi(),O=1,L=2,B=4,T="[object Arguments]",M="[object Array]",q="[object Boolean]",Y="[object Date]",X="[object Error]",I="[object Function]",H="[object GeneratorFunction]",U="[object Map]",ne="[object Number]",J="[object Object]",F="[object RegExp]",G="[object Set]",E="[object String]",$="[object Symbol]",se="[object WeakMap]",D="[object ArrayBuffer]",Q="[object DataView]",ee="[object Float32Array]",oe="[object Float64Array]",le="[object Int8Array]",ge="[object Int16Array]",de="[object Int32Array]",Ae="[object Uint8Array]",He="[object Uint8ClampedArray]",Me="[object Uint16Array]",Te="[object Uint32Array]",ke={};ke[T]=ke[M]=ke[D]=ke[Q]=ke[q]=ke[Y]=ke[ee]=ke[oe]=ke[le]=ke[ge]=ke[de]=ke[U]=ke[ne]=ke[J]=ke[F]=ke[G]=ke[E]=ke[$]=ke[Ae]=ke[He]=ke[Me]=ke[Te]=!0,ke[X]=ke[I]=ke[se]=!1;function Ke(ye,we,Ve,ut,ct,We){var $e,it=we&O,wt=we&L,et=we&B;if(Ve&&($e=ct?Ve(ye,ut,ct,We):Ve(ye)),$e!==void 0)return $e;if(!k(ye))return ye;var $t=_(ye);if($t){if($e=y(ye),!it)return u(ye,$e)}else{var gt=m(ye),kt=gt==I||gt==H;if(S(ye))return l(ye,it);if(gt==J||gt==T||kt&&!ct){if($e=wt||kt?{}:C(ye),!it)return wt?p(ye,o($e,ye)):c(ye,s($e,ye))}else{if(!ke[gt])return ct?ye:{};$e=x(ye,gt,it)}}We||(We=new e);var Pt=We.get(ye);if(Pt)return Pt;We.set(ye,$e),N(ye)?ye.forEach(function(vt){$e.add(Ke(vt,we,Ve,vt,ye,We))}):b(ye)&&ye.forEach(function(vt,st){$e.set(st,Ke(vt,we,Ve,st,ye,We))});var Ge=et?wt?f:h:wt?P:j,De=$t?void 0:Ge(ye);return n(De||ye,function(vt,st){De&&(st=vt,vt=ye[st]),i($e,st,Ke(vt,we,Ve,st,ye,We))}),$e}return rh=Ke,rh}var ih,f1;function pq(){if(f1)return ih;f1=1;var e=UN(),n=4;function i(s){return e(s,n)}return ih=i,ih}var sh,h1;function Nv(){if(h1)return sh;h1=1;function e(n){return function(){return n}}return sh=e,sh}var oh,p1;function mq(){if(p1)return oh;p1=1;function e(n){return function(i,s,o){for(var l=-1,u=Object(i),c=o(i),p=c.length;p--;){var h=c[n?p:++l];if(s(u[h],h,u)===!1)break}return i}}return oh=e,oh}var ah,m1;function Cv(){if(m1)return ah;m1=1;var e=mq(),n=e();return ah=n,ah}var lh,g1;function jv(){if(g1)return lh;g1=1;var e=Cv(),n=gi();function i(s,o){return s&&e(s,o,n)}return lh=i,lh}var uh,v1;function gq(){if(v1)return uh;v1=1;var e=Pr();function n(i,s){return function(o,l){if(o==null)return o;if(!e(o))return i(o,l);for(var u=o.length,c=s?u:-1,p=Object(o);(s?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return uh=n,uh}var ch,y1;function cu(){if(y1)return ch;y1=1;var e=jv(),n=gq(),i=n(e);return ch=i,ch}var dh,w1;function Ji(){if(w1)return dh;w1=1;function e(n){return n}return dh=e,dh}var fh,x1;function HN(){if(x1)return fh;x1=1;var e=Ji();function n(i){return typeof i=="function"?i:e}return fh=n,fh}var hh,_1;function VN(){if(_1)return hh;_1=1;var e=wv(),n=cu(),i=HN(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,i(u))}return hh=o,hh}var ph,S1;function WN(){return S1||(S1=1,ph=VN()),ph}var mh,b1;function vq(){if(b1)return mh;b1=1;var e=cu();function n(i,s){var o=[];return e(i,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return mh=n,mh}var gh,k1;function yq(){if(k1)return gh;k1=1;var e="__lodash_hash_undefined__";function n(i){return this.__data__.set(i,e),this}return gh=n,gh}var vh,E1;function wq(){if(E1)return vh;E1=1;function e(n){return this.__data__.has(n)}return vh=e,vh}var yh,N1;function GN(){if(N1)return yh;N1=1;var e=yv(),n=yq(),i=wq();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=i,yh=s,yh}var wh,C1;function xq(){if(C1)return wh;C1=1;function e(n,i){for(var s=-1,o=n==null?0:n.length;++s<o;)if(i(n[s],s,n))return!0;return!1}return wh=e,wh}var xh,j1;function YN(){if(j1)return xh;j1=1;function e(n,i){return n.has(i)}return xh=e,xh}var _h,R1;function KN(){if(R1)return _h;R1=1;var e=GN(),n=xq(),i=YN(),s=1,o=2;function l(u,c,p,h,f,m){var y=p&s,x=u.length,C=c.length;if(x!=C&&!(y&&C>x))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,N=p&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<x;){var j=u[b],P=c[b];if(h)var O=y?h(P,j,b,c,u,m):h(j,P,b,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(N){if(!n(c,function(L,B){if(!i(N,B)&&(j===L||f(j,L,p,h,m)))return N.push(B)})){k=!1;break}}else if(!(j===P||f(j,P,p,h,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return _h=l,_h}var Sh,T1;function _q(){if(T1)return Sh;T1=1;function e(n){var i=-1,s=Array(n.size);return n.forEach(function(o,l){s[++i]=[l,o]}),s}return Sh=e,Sh}var bh,A1;function Rv(){if(A1)return bh;A1=1;function e(n){var i=-1,s=Array(n.size);return n.forEach(function(o){s[++i]=o}),s}return bh=e,bh}var kh,I1;function Sq(){if(I1)return kh;I1=1;var e=eo(),n=DN(),i=Js(),s=KN(),o=_q(),l=Rv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",m="[object Map]",y="[object Number]",x="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",N=e?e.prototype:void 0,j=N?N.valueOf:void 0;function P(O,L,B,T,M,q,Y){switch(B){case k:if(O.byteLength!=L.byteLength||O.byteOffset!=L.byteOffset)return!1;O=O.buffer,L=L.buffer;case b:return!(O.byteLength!=L.byteLength||!q(new n(O),new n(L)));case p:case h:case y:return i(+O,+L);case f:return O.name==L.name&&O.message==L.message;case x:case _:return O==L+"";case m:var X=o;case C:var I=T&u;if(X||(X=l),O.size!=L.size&&!I)return!1;var H=Y.get(O);if(H)return H==L;T|=c,Y.set(O,L);var U=s(X(O),X(L),T,M,q,Y);return Y.delete(O),U;case S:if(j)return j.call(O)==j.call(L)}return!1}return kh=P,kh}var Eh,M1;function bq(){if(M1)return Eh;M1=1;var e=LN(),n=1,i=Object.prototype,s=i.hasOwnProperty;function o(l,u,c,p,h,f){var m=c&n,y=e(l),x=y.length,C=e(u),_=C.length;if(x!=_&&!m)return!1;for(var S=x;S--;){var b=y[S];if(!(m?b in u:s.call(u,b)))return!1}var k=f.get(l),N=f.get(u);if(k&&N)return k==u&&N==l;var j=!0;f.set(l,u),f.set(u,l);for(var P=m;++S<x;){b=y[S];var O=l[b],L=u[b];if(p)var B=m?p(L,O,b,u,l,f):p(O,L,b,l,u,f);if(!(B===void 0?O===L||h(O,L,c,p,f):B)){j=!1;break}P||(P=b=="constructor")}if(j&&!P){var T=l.constructor,M=u.constructor;T!=M&&"constructor"in l&&"constructor"in u&&!(typeof T=="function"&&T instanceof T&&typeof M=="function"&&M instanceof M)&&(j=!1)}return f.delete(l),f.delete(u),j}return Eh=o,Eh}var Nh,P1;function kq(){if(P1)return Nh;P1=1;var e=ru(),n=KN(),i=Sq(),s=bq(),o=no(),l=bt(),u=to(),c=fa(),p=1,h="[object Arguments]",f="[object Array]",m="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function C(_,S,b,k,N,j){var P=l(_),O=l(S),L=P?f:o(_),B=O?f:o(S);L=L==h?m:L,B=B==h?m:B;var T=L==m,M=B==m,q=L==B;if(q&&u(_)){if(!u(S))return!1;P=!0,T=!1}if(q&&!T)return j||(j=new e),P||c(_)?n(_,S,b,k,N,j):i(_,S,L,b,k,N,j);if(!(b&p)){var Y=T&&x.call(_,"__wrapped__"),X=M&&x.call(S,"__wrapped__");if(Y||X){var I=Y?_.value():_,H=X?S.value():S;return j||(j=new e),N(I,H,b,k,j)}}return q?(j||(j=new e),s(_,S,b,k,N,j)):!1}return Nh=C,Nh}var Ch,O1;function XN(){if(O1)return Ch;O1=1;var e=kq(),n=ur();function i(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,i,c)}return Ch=i,Ch}var jh,q1;function Eq(){if(q1)return jh;q1=1;var e=ru(),n=XN(),i=1,s=2;function o(l,u,c,p){var h=c.length,f=h,m=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],C=l[x],_=y[1];if(m&&y[2]){if(C===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(C,_,x,l,u,S);if(!(b===void 0?n(_,C,i|s,p,S):b))return!1}}return!0}return jh=o,jh}var Rh,L1;function QN(){if(L1)return Rh;L1=1;var e=An();function n(i){return i===i&&!e(i)}return Rh=n,Rh}var Th,$1;function Nq(){if($1)return Th;$1=1;var e=QN(),n=gi();function i(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=i,Th}var Ah,D1;function ZN(){if(D1)return Ah;D1=1;function e(n,i){return function(s){return s==null?!1:s[n]===i&&(i!==void 0||n in Object(s))}}return Ah=e,Ah}var Ih,F1;function Cq(){if(F1)return Ih;F1=1;var e=Eq(),n=Nq(),i=ZN();function s(o){var l=n(o);return l.length==1&&l[0][2]?i(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Ih=s,Ih}var Mh,z1;function ro(){if(z1)return Mh;z1=1;var e=Xi(),n=ur(),i="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==i}return Mh=s,Mh}var Ph,B1;function Tv(){if(B1)return Ph;B1=1;var e=bt(),n=ro(),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\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)||!i.test(l)||u!=null&&l in Object(u)}return Ph=o,Ph}var Oh,U1;function jq(){if(U1)return Oh;U1=1;var e=yv(),n="Expected a function";function i(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],p=l.cache;if(p.has(c))return p.get(c);var h=s.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(i.Cache||e),l}return i.Cache=e,Oh=i,Oh}var qh,H1;function Rq(){if(H1)return qh;H1=1;var e=jq(),n=500;function i(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return qh=i,qh}var Lh,V1;function Tq(){if(V1)return Lh;V1=1;var e=Rq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(i,"$1"):c||u)}),l});return Lh=s,Lh}var $h,W1;function du(){if(W1)return $h;W1=1;function e(n,i){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=i(n[s],s,n);return l}return $h=e,$h}var Dh,G1;function Aq(){if(G1)return Dh;G1=1;var e=eo(),n=du(),i=bt(),s=ro(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(i(c))return n(c,u)+"";if(s(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return Dh=u,Dh}var Fh,Y1;function JN(){if(Y1)return Fh;Y1=1;var e=Aq();function n(i){return i==null?"":e(i)}return Fh=n,Fh}var zh,K1;function fu(){if(K1)return zh;K1=1;var e=bt(),n=Tv(),i=Tq(),s=JN();function o(l,u){return e(l)?l:n(l,u)?[l]:i(s(l))}return zh=o,zh}var Bh,X1;function ha(){if(X1)return Bh;X1=1;var e=ro();function n(i){if(typeof i=="string"||e(i))return i;var s=i+"";return s=="0"&&1/i==-1/0?"-0":s}return Bh=n,Bh}var Uh,Q1;function hu(){if(Q1)return Uh;Q1=1;var e=fu(),n=ha();function i(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=i,Uh}var Hh,Z1;function Iq(){if(Z1)return Hh;Z1=1;var e=hu();function n(i,s,o){var l=i==null?void 0:e(i,s);return l===void 0?o:l}return Hh=n,Hh}var Vh,J1;function Mq(){if(J1)return Vh;J1=1;function e(n,i){return n!=null&&i in Object(n)}return Vh=e,Vh}var Wh,eS;function eC(){if(eS)return Wh;eS=1;var e=fu(),n=da(),i=bt(),s=ou(),o=xv(),l=ha();function u(c,p,h){p=e(p,c);for(var f=-1,m=p.length,y=!1;++f<m;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&s(x,m)&&(i(c)||n(c)))}return Wh=u,Wh}var Gh,tS;function tC(){if(tS)return Gh;tS=1;var e=Mq(),n=eC();function i(s,o){return s!=null&&n(s,o,e)}return Gh=i,Gh}var Yh,nS;function Pq(){if(nS)return Yh;nS=1;var e=XN(),n=Iq(),i=tC(),s=Tv(),o=QN(),l=ZN(),u=ha(),c=1,p=2;function h(f,m){return s(f)&&o(m)?l(u(f),m):function(y){var x=n(y,f);return x===void 0&&x===m?i(y,f):e(m,x,c|p)}}return Yh=h,Yh}var Kh,rS;function nC(){if(rS)return Kh;rS=1;function e(n){return function(i){return i==null?void 0:i[n]}}return Kh=e,Kh}var Xh,iS;function Oq(){if(iS)return Xh;iS=1;var e=hu();function n(i){return function(s){return e(s,i)}}return Xh=n,Xh}var Qh,sS;function qq(){if(sS)return Qh;sS=1;var e=nC(),n=Oq(),i=Tv(),s=ha();function o(l){return i(l)?e(s(l)):n(l)}return Qh=o,Qh}var Zh,oS;function Or(){if(oS)return Zh;oS=1;var e=Cq(),n=Pq(),i=Ji(),s=bt(),o=qq();function l(u){return typeof u=="function"?u:u==null?i:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return Zh=l,Zh}var Jh,aS;function rC(){if(aS)return Jh;aS=1;var e=MN(),n=vq(),i=Or(),s=bt();function o(l,u){var c=s(l)?e:n;return c(l,i(u,3))}return Jh=o,Jh}var ep,lS;function Lq(){if(lS)return ep;lS=1;var e=Object.prototype,n=e.hasOwnProperty;function i(s,o){return s!=null&&n.call(s,o)}return ep=i,ep}var tp,uS;function iC(){if(uS)return tp;uS=1;var e=Lq(),n=eC();function i(s,o){return s!=null&&n(s,o,e)}return tp=i,tp}var np,cS;function $q(){if(cS)return np;cS=1;var e=Sv(),n=no(),i=da(),s=bt(),o=Pr(),l=to(),u=lu(),c=fa(),p="[object Map]",h="[object Set]",f=Object.prototype,m=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(s(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||i(x)))return!x.length;var C=n(x);if(C==p||C==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(m.call(x,_))return!1;return!0}return np=y,np}var rp,dS;function sC(){if(dS)return rp;dS=1;function e(n){return n===void 0}return rp=e,rp}var ip,fS;function oC(){if(fS)return ip;fS=1;var e=cu(),n=Pr();function i(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,p,h){u[++l]=o(c,p,h)}),u}return ip=i,ip}var sp,hS;function aC(){if(hS)return sp;hS=1;var e=du(),n=Or(),i=oC(),s=bt();function o(l,u){var c=s(l)?e:i;return c(l,n(u,3))}return sp=o,sp}var op,pS;function Dq(){if(pS)return op;pS=1;function e(n,i,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=i(s,n[l],l,n);return s}return op=e,op}var ap,mS;function Fq(){if(mS)return ap;mS=1;function e(n,i,s,o,l){return l(n,function(u,c,p){s=o?(o=!1,u):i(s,u,c,p)}),s}return ap=e,ap}var lp,gS;function lC(){if(gS)return lp;gS=1;var e=Dq(),n=cu(),i=Or(),s=Fq(),o=bt();function l(u,c,p){var h=o(u)?e:s,f=arguments.length<3;return h(u,i(c,4),p,f,n)}return lp=l,lp}var up,vS;function zq(){if(vS)return up;vS=1;var e=Xi(),n=bt(),i=ur(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&i(l)&&e(l)==s}return up=o,up}var cp,yS;function Bq(){if(yS)return cp;yS=1;var e=nC(),n=e("length");return cp=n,cp}var dp,wS;function Uq(){if(wS)return dp;wS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",i="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+i+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return dp=p,dp}var fp,xS;function Hq(){if(xS)return fp;xS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",i="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+i+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",C=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,m,y].join("|")+")"+_+C+")*",b=_+C+S,k="(?:"+[f+c+"?",c,m,y,u].join("|")+")",N=RegExp(p+"(?="+p+")|"+k+b,"g");function j(P){for(var O=N.lastIndex=0;N.test(P);)++O;return O}return fp=j,fp}var hp,_S;function Vq(){if(_S)return hp;_S=1;var e=Bq(),n=Uq(),i=Hq();function s(o){return n(o)?i(o):e(o)}return hp=s,hp}var pp,SS;function Wq(){if(SS)return pp;SS=1;var e=Sv(),n=no(),i=Pr(),s=zq(),o=Vq(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(i(p))return s(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return pp=c,pp}var mp,bS;function Gq(){if(bS)return mp;bS=1;var e=wv(),n=zN(),i=jv(),s=Or(),o=uu(),l=bt(),u=to(),c=ua(),p=An(),h=fa();function f(m,y,x){var C=l(m),_=C||u(m)||h(m);if(y=s(y,4),x==null){var S=m&&m.constructor;_?x=C?new S:[]:p(m)?x=c(S)?n(o(m)):{}:x={}}return(_?e:i)(m,function(b,k,N){return y(x,b,k,N)}),x}return mp=f,mp}var gp,kS;function Yq(){if(kS)return gp;kS=1;var e=eo(),n=da(),i=bt(),s=e?e.isConcatSpreadable:void 0;function o(l){return i(l)||n(l)||!!(s&&l&&l[s])}return gp=o,gp}var vp,ES;function Av(){if(ES)return vp;ES=1;var e=kv(),n=Yq();function i(s,o,l,u,c){var p=-1,h=s.length;for(l||(l=n),c||(c=[]);++p<h;){var f=s[p];o>0&&l(f)?o>1?i(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return vp=i,vp}var yp,NS;function Kq(){if(NS)return yp;NS=1;function e(n,i,s){switch(s.length){case 0:return n.call(i);case 1:return n.call(i,s[0]);case 2:return n.call(i,s[0],s[1]);case 3:return n.call(i,s[0],s[1],s[2])}return n.apply(i,s)}return yp=e,yp}var wp,CS;function uC(){if(CS)return wp;CS=1;var e=Kq(),n=Math.max;function i(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(s,this,f)}}return wp=i,wp}var xp,jS;function Xq(){if(jS)return xp;jS=1;var e=Nv(),n=jN(),i=Ji(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:i;return xp=s,xp}var _p,RS;function Qq(){if(RS)return _p;RS=1;var e=800,n=16,i=Date.now;function s(o){var l=0,u=0;return function(){var c=i(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return _p=s,_p}var Sp,TS;function cC(){if(TS)return Sp;TS=1;var e=Xq(),n=Qq(),i=n(e);return Sp=i,Sp}var bp,AS;function pu(){if(AS)return bp;AS=1;var e=Ji(),n=uC(),i=cC();function s(o,l){return i(n(o,l,e),o+"")}return bp=s,bp}var kp,IS;function dC(){if(IS)return kp;IS=1;function e(n,i,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(i(n[u],u,n))return u;return-1}return kp=e,kp}var Ep,MS;function Zq(){if(MS)return Ep;MS=1;function e(n){return n!==n}return Ep=e,Ep}var Np,PS;function Jq(){if(PS)return Np;PS=1;function e(n,i,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===i)return o;return-1}return Np=e,Np}var Cp,OS;function eL(){if(OS)return Cp;OS=1;var e=dC(),n=Zq(),i=Jq();function s(o,l,u){return l===l?i(o,l,u):e(o,n,u)}return Cp=s,Cp}var jp,qS;function tL(){if(qS)return jp;qS=1;var e=eL();function n(i,s){var o=i==null?0:i.length;return!!o&&e(i,s,0)>-1}return jp=n,jp}var Rp,LS;function nL(){if(LS)return Rp;LS=1;function e(n,i,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(i,n[o]))return!0;return!1}return Rp=e,Rp}var Tp,$S;function rL(){if($S)return Tp;$S=1;function e(){}return Tp=e,Tp}var Ap,DS;function iL(){if(DS)return Ap;DS=1;var e=$N(),n=rL(),i=Rv(),s=1/0,o=e&&1/i(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return Ap=o,Ap}var Ip,FS;function sL(){if(FS)return Ip;FS=1;var e=GN(),n=tL(),i=nL(),s=YN(),o=iL(),l=Rv(),u=200;function c(p,h,f){var m=-1,y=n,x=p.length,C=!0,_=[],S=_;if(f)C=!1,y=i;else if(x>=u){var b=h?null:o(p);if(b)return l(b);C=!1,y=s,S=new e}else S=h?[]:_;e:for(;++m<x;){var k=p[m],N=h?h(k):k;if(k=f||k!==0?k:0,C&&N===N){for(var j=S.length;j--;)if(S[j]===N)continue e;h&&S.push(N),_.push(k)}else y(S,N,f)||(S!==_&&S.push(N),_.push(k))}return _}return Ip=c,Ip}var Mp,zS;function fC(){if(zS)return Mp;zS=1;var e=Pr(),n=ur();function i(s){return n(s)&&e(s)}return Mp=i,Mp}var Pp,BS;function oL(){if(BS)return Pp;BS=1;var e=Av(),n=pu(),i=sL(),s=fC(),o=n(function(l){return i(e(l,1,s,!0))});return Pp=o,Pp}var Op,US;function aL(){if(US)return Op;US=1;var e=du();function n(i,s){return e(s,function(o){return i[o]})}return Op=n,Op}var qp,HS;function hC(){if(HS)return qp;HS=1;var e=aL(),n=gi();function i(s){return s==null?[]:e(s,n(s))}return qp=i,qp}var Lp,VS;function In(){if(VS)return Lp;VS=1;var e;if(typeof gv=="function")try{e={clone:pq(),constant:Nv(),each:WN(),filter:rC(),has:iC(),isArray:bt(),isEmpty:$q(),isFunction:ua(),isUndefined:sC(),keys:gi(),map:aC(),reduce:lC(),size:Wq(),transform:Gq(),union:oL(),values:hC()}}catch{}return e||(e=window._),Lp=e,Lp}var $p,WS;function Iv(){if(WS)return $p;WS=1;var e=In();$p=o;var n="\0",i="\0",s="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.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[i]={}),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(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._in[m])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._out[m])})},o.prototype.setNodes=function(f,m){var y=arguments,x=this;return e.each(f,function(C){y.length>1?x.setNode(C,m):x.setNode(C)}),this},o.prototype.setNode=function(f,m){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=m),this):(this._nodes[f]=arguments.length>1?m:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=i,this._children[f]={},this._children[i][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var m=this;if(e.has(this._nodes,f)){var y=function(x){m.removeEdge(m._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){m.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=i;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===f)throw new Error("Setting "+m+" as parent of "+f+" would create a cycle");this.setNode(m)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=m,this._children[m][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var m=this._parent[f];if(m!==i)return m}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=i),this._isCompound){var m=this._children[f];if(m)return e.keys(m)}else{if(f===i)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var m=this._preds[f];if(m)return e.keys(m)},o.prototype.successors=function(f){var m=this._sucs[f];if(m)return e.keys(m)},o.prototype.neighbors=function(f){var m=this.predecessors(f);if(m)return e.union(m,this.successors(f))},o.prototype.isLeaf=function(f){var m;return this.isDirected()?m=this.successors(f):m=this.neighbors(f),m.length===0},o.prototype.filterNodes=function(f){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var x={};function C(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(x[_]=S,S):S in x?x[S]:C(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,C(_))}),m},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,m){var y=this,x=arguments;return e.reduce(f,function(C,_){return x.length>1?y.setEdge(C,_,m):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var f,m,y,x,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,m=_.w,y=_.name,arguments.length===2&&(x=arguments[1],C=!0)):(f=_,m=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],C=!0)),f=""+f,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,m,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(m),this._edgeLabels[S]=C?x:this._defaultEdgeLabelFn(f,m,y);var b=p(this._isDirected,f,m,y);return f=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],f),l(this._sucs[f],m),this._in[m][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y),C=this._edgeObjs[x];return C&&(f=C.v,m=C.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[m],f),u(this._sucs[f],m),delete this._in[m][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,m){var y=this._in[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.v===m}):x}},o.prototype.outEdges=function(f,m){var y=this._out[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.w===m}):x}},o.prototype.nodeEdges=function(f,m){var y=this.inEdges(f,m);if(y)return y.concat(this.outEdges(f,m))};function l(f,m){f[m]?f[m]++:f[m]=1}function u(f,m){--f[m]||delete f[m]}function c(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(x)?n:x)}function p(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return x&&(b.name=x),b}function h(f,m){return c(f,m.v,m.w,m.name)}return $p}var Dp,GS;function lL(){return GS||(GS=1,Dp="2.1.8"),Dp}var Fp,YS;function uL(){return YS||(YS=1,Fp={Graph:Iv(),version:lL()}),Fp}var zp,KS;function cL(){if(KS)return zp;KS=1;var e=In(),n=Iv();zp={write:i,read:l};function i(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 p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return zp}var Bp,XS;function dL(){if(XS)return Bp;XS=1;var e=In();Bp=n;function n(i){var s={},o=[],l;function u(c){e.has(s,c)||(s[c]=!0,l.push(c),e.each(i.successors(c),u),e.each(i.predecessors(c),u))}return e.each(i.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return Bp}var Up,QS;function pC(){if(QS)return Up;QS=1;var e=In();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(i){return i.key})},n.prototype.has=function(i){return e.has(this._keyIndices,i)},n.prototype.priority=function(i){var s=this._keyIndices[i];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(i,s){var o=this._keyIndices;if(i=String(i),!e.has(o,i)){var l=this._arr,u=l.length;return o[i]=u,l.push({key:i,priority:s}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var i=this._arr.pop();return delete this._keyIndices[i.key],this._heapify(0),i.key},n.prototype.decrease=function(i,s){var o=this._keyIndices[i];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+i+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(i){var s=this._arr,o=2*i,l=o+1,u=i;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!==i&&(this._swap(i,u),this._heapify(u)))},n.prototype._decrease=function(i){for(var s=this._arr,o=s[i].priority,l;i!==0&&(l=i>>1,!(s[l].priority<o));)this._swap(i,l),i=l},n.prototype._swap=function(i,s){var o=this._arr,l=this._keyIndices,u=o[i],c=o[s];o[i]=c,o[s]=u,l[c.key]=i,l[u.key]=s},Up}var Hp,ZS;function mC(){if(ZS)return Hp;ZS=1;var e=In(),n=pC();Hp=s;var i=e.constant(1);function s(l,u,c,p){return o(l,String(u),c||i,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,m,y,x=function(C){var _=C.v!==m?C.v:C.w,S=h[_],b=c(C),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,f.decrease(_,k))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;h[C]={distance:_},f.add(C,_)});f.size()>0&&(m=f.removeMin(),y=h[m],y.distance!==Number.POSITIVE_INFINITY);)p(m).forEach(x);return h}return Hp}var Vp,JS;function fL(){if(JS)return Vp;JS=1;var e=mC(),n=In();Vp=i;function i(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Vp}var Wp,eb;function gC(){if(eb)return Wp;eb=1;var e=In();Wp=n;function n(i){var s=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:s,index:s++};if(o.push(p),i.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],m;do m=o.pop(),l[m].onStack=!1,f.push(m);while(p!==m);u.push(f)}}return i.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return Wp}var Gp,tb;function hL(){if(tb)return Gp;tb=1;var e=In(),n=gC();Gp=i;function i(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return Gp}var Yp,nb;function pL(){if(nb)return Yp;nb=1;var e=In();Yp=i;var n=e.constant(1);function i(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var m=f.v===h?f.w:f.v,y=l(f);c[h][m]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(m){var y=c[m];p.forEach(function(x){var C=y[h],_=f[x],S=y[x],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return Yp}var Kp,rb;function vC(){if(rb)return Kp;rb=1;var e=In();Kp=n,n.CycleException=i;function n(s){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new i;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(s.predecessors(p),c),delete l[p],u.push(p))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new i;return u}function i(){}return i.prototype=new Error,Kp}var Xp,ib;function mL(){if(ib)return Xp;ib=1;var e=vC();Xp=n;function n(i){try{e(i)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return Xp}var Qp,sb;function yC(){if(sb)return Qp;sb=1;var e=In();Qp=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],p={};return e.each(o,function(h){if(!s.hasNode(h))throw new Error("Graph does not have node: "+h);i(s,h,l==="post",p,u,c)}),c}function i(s,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){i(s,h,l,u,c,p)}),l&&p.push(o))}return Qp}var Zp,ob;function gL(){if(ob)return Zp;ob=1;var e=yC();Zp=n;function n(i,s){return e(i,s,"post")}return Zp}var Jp,ab;function vL(){if(ab)return Jp;ab=1;var e=yC();Jp=n;function n(i,s){return e(i,s,"pre")}return Jp}var em,lb;function yL(){if(lb)return em;lb=1;var e=In(),n=Iv(),i=pC();em=s;function s(o,l){var u=new n,c={},p=new i,h;function f(y){var x=y.v===h?y.w:y.v,C=p.priority(x);if(C!==void 0){var _=l(y);_<C&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var m=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(h).forEach(f)}return u}return em}var tm,ub;function wL(){return ub||(ub=1,tm={components:dL(),dijkstra:mC(),dijkstraAll:fL(),findCycles:hL(),floydWarshall:pL(),isAcyclic:mL(),postorder:gL(),preorder:vL(),prim:yL(),tarjan:gC(),topsort:vC()}),tm}var nm,cb;function xL(){if(cb)return nm;cb=1;var e=uL();return nm={Graph:e.Graph,json:cL(),alg:wL(),version:e.version},nm}var rm,db;function Gn(){if(db)return rm;db=1;var e;if(typeof gv=="function")try{e=xL()}catch{}return e||(e=window.graphlib),rm=e,rm}var im,fb;function _L(){if(fb)return im;fb=1;var e=UN(),n=1,i=4;function s(o){return e(o,n|i)}return im=s,im}var sm,hb;function mu(){if(hb)return sm;hb=1;var e=Js(),n=Pr(),i=ou(),s=An();function o(l,u,c){if(!s(c))return!1;var p=typeof u;return(p=="number"?n(c)&&i(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return sm=o,sm}var om,pb;function SL(){if(pb)return om;pb=1;var e=pu(),n=Js(),i=mu(),s=Zi(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,m=f>2?p[2]:void 0;for(m&&i(p[0],p[1],m)&&(f=1);++h<f;)for(var y=p[h],x=s(y),C=-1,_=x.length;++C<_;){var S=x[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,mb;function bL(){if(mb)return am;mb=1;var e=Or(),n=Pr(),i=gi();function s(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=i(l),u=function(m){return h(p[m],m,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return am=s,am}var lm,gb;function kL(){if(gb)return lm;gb=1;var e=/\s/;function n(i){for(var s=i.length;s--&&e.test(i.charAt(s)););return s}return lm=n,lm}var um,vb;function EL(){if(vb)return um;vb=1;var e=kL(),n=/^\s+/;function i(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return um=i,um}var cm,yb;function NL(){if(yb)return cm;yb=1;var e=EL(),n=An(),i=ro(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(i(h))return s;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var m=l.test(h);return m||u.test(h)?c(h.slice(2),m?2:8):o.test(h)?s:+h}return cm=p,cm}var dm,wb;function wC(){if(wb)return dm;wb=1;var e=NL(),n=1/0,i=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*i}return o===o?o:0}return dm=s,dm}var fm,xb;function CL(){if(xb)return fm;xb=1;var e=wC();function n(i){var s=e(i),o=s%1;return s===s?o?s-o:s:0}return fm=n,fm}var hm,_b;function jL(){if(_b)return hm;_b=1;var e=dC(),n=Or(),i=CL(),s=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:i(c);return h<0&&(h=s(p+h,0)),e(l,n(u,3),h)}return hm=o,hm}var pm,Sb;function RL(){if(Sb)return pm;Sb=1;var e=bL(),n=jL(),i=e(n);return pm=i,pm}var mm,bb;function xC(){if(bb)return mm;bb=1;var e=Av();function n(i){var s=i==null?0:i.length;return s?e(i,1):[]}return mm=n,mm}var gm,kb;function TL(){if(kb)return gm;kb=1;var e=Cv(),n=HN(),i=Zi();function s(o,l){return o==null?o:e(o,n(l),i)}return gm=s,gm}var vm,Eb;function AL(){if(Eb)return vm;Eb=1;function e(n){var i=n==null?0:n.length;return i?n[i-1]:void 0}return vm=e,vm}var ym,Nb;function IL(){if(Nb)return ym;Nb=1;var e=iu(),n=jv(),i=Or();function s(o,l){var u={};return l=i(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return ym=s,ym}var wm,Cb;function Mv(){if(Cb)return wm;Cb=1;var e=ro();function n(i,s,o){for(var l=-1,u=i.length;++l<u;){var c=i[l],p=s(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return wm=n,wm}var xm,jb;function ML(){if(jb)return xm;jb=1;function e(n,i){return n>i}return xm=e,xm}var _m,Rb;function PL(){if(Rb)return _m;Rb=1;var e=Mv(),n=ML(),i=Ji();function s(o){return o&&o.length?e(o,i,n):void 0}return _m=s,_m}var Sm,Tb;function _C(){if(Tb)return Sm;Tb=1;var e=iu(),n=Js();function i(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Sm=i,Sm}var bm,Ab;function OL(){if(Ab)return bm;Ab=1;var e=Xi(),n=uu(),i=ur(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!i(f)||e(f)!=s)return!1;var m=n(f);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return bm=h,bm}var km,Ib;function SC(){if(Ib)return km;Ib=1;function e(n,i){if(!(i==="constructor"&&typeof n[i]=="function")&&i!="__proto__")return n[i]}return km=e,km}var Em,Mb;function qL(){if(Mb)return Em;Mb=1;var e=ca(),n=Zi();function i(s){return e(s,n(s))}return Em=i,Em}var Nm,Pb;function LL(){if(Pb)return Nm;Pb=1;var e=_C(),n=AN(),i=FN(),s=IN(),o=BN(),l=da(),u=bt(),c=fC(),p=to(),h=ua(),f=An(),m=OL(),y=fa(),x=SC(),C=qL();function _(S,b,k,N,j,P,O){var L=x(S,k),B=x(b,k),T=O.get(B);if(T){e(S,k,T);return}var M=P?P(L,B,k+"",S,b,O):void 0,q=M===void 0;if(q){var Y=u(B),X=!Y&&p(B),I=!Y&&!X&&y(B);M=B,Y||X||I?u(L)?M=L:c(L)?M=s(L):X?(q=!1,M=n(B,!0)):I?(q=!1,M=i(B,!0)):M=[]:m(B)||l(B)?(M=L,l(L)?M=C(L):(!f(L)||h(L))&&(M=o(B))):q=!1}q&&(O.set(B,M),j(M,B,N,P,O),O.delete(B)),e(S,k,M)}return Nm=_,Nm}var Cm,Ob;function $L(){if(Ob)return Cm;Ob=1;var e=ru(),n=_C(),i=Cv(),s=LL(),o=An(),l=Zi(),u=SC();function c(p,h,f,m,y){p!==h&&i(h,function(x,C){if(y||(y=new e),o(x))s(p,h,C,f,c,m,y);else{var _=m?m(u(p,C),x,C+"",p,h,y):void 0;_===void 0&&(_=x),n(p,C,_)}},l)}return Cm=c,Cm}var jm,qb;function DL(){if(qb)return jm;qb=1;var e=pu(),n=mu();function i(s){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=s.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&s(o,f,u,p)}return o})}return jm=i,jm}var Rm,Lb;function FL(){if(Lb)return Rm;Lb=1;var e=$L(),n=DL(),i=n(function(s,o,l){e(s,o,l)});return Rm=i,Rm}var Tm,$b;function bC(){if($b)return Tm;$b=1;function e(n,i){return n<i}return Tm=e,Tm}var Am,Db;function zL(){if(Db)return Am;Db=1;var e=Mv(),n=bC(),i=Ji();function s(o){return o&&o.length?e(o,i,n):void 0}return Am=s,Am}var Im,Fb;function BL(){if(Fb)return Im;Fb=1;var e=Mv(),n=Or(),i=bC();function s(o,l){return o&&o.length?e(o,n(l,2),i):void 0}return Im=s,Im}var Mm,zb;function UL(){if(zb)return Mm;zb=1;var e=Kn(),n=function(){return e.Date.now()};return Mm=n,Mm}var Pm,Bb;function HL(){if(Bb)return Pm;Bb=1;var e=su(),n=fu(),i=ou(),s=An(),o=ha();function l(u,c,p,h){if(!s(u))return u;c=n(c,u);for(var f=-1,m=c.length,y=m-1,x=u;x!=null&&++f<m;){var C=o(c[f]),_=p;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(f!=y){var S=x[C];_=h?h(S,C,x):void 0,_===void 0&&(_=s(S)?S:i(c[f+1])?[]:{})}e(x,C,_),x=x[C]}return u}return Pm=l,Pm}var Om,Ub;function VL(){if(Ub)return Om;Ub=1;var e=hu(),n=HL(),i=fu();function s(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],m=e(o,f);u(m,f)&&n(h,i(f,o),m)}return h}return Om=s,Om}var qm,Hb;function WL(){if(Hb)return qm;Hb=1;var e=VL(),n=tC();function i(s,o){return e(s,o,function(l,u){return n(s,u)})}return qm=i,qm}var Lm,Vb;function GL(){if(Vb)return Lm;Vb=1;var e=xC(),n=uC(),i=cC();function s(o){return i(n(o,void 0,e),o+"")}return Lm=s,Lm}var $m,Wb;function YL(){if(Wb)return $m;Wb=1;var e=WL(),n=GL(),i=n(function(s,o){return s==null?{}:e(s,o)});return $m=i,$m}var Dm,Gb;function KL(){if(Gb)return Dm;Gb=1;var e=Math.ceil,n=Math.max;function i(s,o,l,u){for(var c=-1,p=n(e((o-s)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=s,s+=l;return h}return Dm=i,Dm}var Fm,Yb;function XL(){if(Yb)return Fm;Yb=1;var e=KL(),n=mu(),i=wC();function s(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=i(l),u===void 0?(u=l,l=0):u=i(u),c=c===void 0?l<u?1:-1:i(c),e(l,u,c,o)}}return Fm=s,Fm}var zm,Kb;function QL(){if(Kb)return zm;Kb=1;var e=XL(),n=e();return zm=n,zm}var Bm,Xb;function ZL(){if(Xb)return Bm;Xb=1;function e(n,i){var s=n.length;for(n.sort(i);s--;)n[s]=n[s].value;return n}return Bm=e,Bm}var Um,Qb;function JL(){if(Qb)return Um;Qb=1;var e=ro();function n(i,s){if(i!==s){var o=i!==void 0,l=i===null,u=i===i,c=e(i),p=s!==void 0,h=s===null,f=s===s,m=e(s);if(!h&&!m&&!c&&i>s||c&&p&&f&&!h&&!m||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!m&&i<s||m&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return Um=n,Um}var Hm,Zb;function e$(){if(Zb)return Hm;Zb=1;var e=JL();function n(i,s,o){for(var l=-1,u=i.criteria,c=s.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var m=o[l];return f*(m=="desc"?-1:1)}}return i.index-s.index}return Hm=n,Hm}var Vm,Jb;function t$(){if(Jb)return Vm;Jb=1;var e=du(),n=hu(),i=Or(),s=oC(),o=ZL(),l=au(),u=e$(),c=Ji(),p=bt();function h(f,m,y){m.length?m=e(m,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var x=-1;m=e(m,l(i));var C=s(f,function(_,S,b){var k=e(m,function(N){return N(_)});return{criteria:k,index:++x,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Vm=h,Vm}var Wm,ek;function n$(){if(ek)return Wm;ek=1;var e=Av(),n=t$(),i=pu(),s=mu(),o=i(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,tk;function r$(){if(tk)return Gm;tk=1;var e=JN(),n=0;function i(s){var o=++n;return e(s)+o}return Gm=i,Gm}var Ym,nk;function i$(){if(nk)return Ym;nk=1;function e(n,i,s){for(var o=-1,l=n.length,u=i.length,c={};++o<l;){var p=o<u?i[o]:void 0;s(c,n[o],p)}return c}return Ym=e,Ym}var Km,rk;function s$(){if(rk)return Km;rk=1;var e=su(),n=i$();function i(s,o){return n(s||[],o||[],e)}return Km=i,Km}var Xm,ik;function lt(){if(ik)return Xm;ik=1;var e;if(typeof gv=="function")try{e={cloneDeep:_L(),constant:Nv(),defaults:SL(),each:WN(),filter:rC(),find:RL(),flatten:xC(),forEach:VN(),forIn:TL(),has:iC(),isUndefined:sC(),last:AL(),map:aC(),mapValues:IL(),max:PL(),merge:FL(),min:zL(),minBy:BL(),now:UL(),pick:YL(),range:QL(),reduce:lC(),sortBy:n$(),uniqueId:r$(),values:hC(),zipObject:s$()}}catch{}return e||(e=window._),Xm=e,Xm}var Qm,sk;function o$(){if(sk)return Qm;sk=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,i)),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 i(s,o){if(s!=="_next"&&s!=="_prev")return o}return Qm}var Zm,ok;function a$(){if(ok)return Zm;ok=1;var e=lt(),n=Gn().Graph,i=o$();Zm=o;var s=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var m=c(h,f||s),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,m){for(var y=[],x=f[f.length-1],C=f[0],_;h.nodeCount();){for(;_=C.dequeue();)u(h,f,m,_);for(;_=x.dequeue();)u(h,f,m,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,m,_,!0));break}}}return y}function u(h,f,m,y,x){var C=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&C.push({v:_.v,w:_.w}),b.out-=S,p(f,m,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,m,k)}),h.removeNode(y.v),C}function c(h,f){var m=new n,y=0,x=0;e.forEach(h.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=f(S),N=b+k;m.setEdge(S.v,S.w,N),x=Math.max(x,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var C=e.range(x+y+3).map(function(){return new i}),_=y+1;return e.forEach(m.nodes(),function(S){p(C,_,m.node(S))}),{graph:m,buckets:C,zeroIdx:_}}function p(h,f,m){m.out?m.in?h[m.out-m.in+f].enqueue(m):h[h.length-1].enqueue(m):h[0].enqueue(m)}return Zm}var Jm,ak;function l$(){if(ak)return Jm;ak=1;var e=lt(),n=a$();Jm={run:i,undo:o};function i(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function s(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(m){e.has(c,m.w)?u.push(m):h(m.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return Jm}var eg,lk;function un(){if(lk)return eg;lk=1;var e=lt(),n=Gn().Graph;eg={addDummyNode:i,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:m,maxRank:y,partition:x,time:C,notime:_};function i(S,b,k,N){var j;do j=e.uniqueId(N);while(S.hasNode(j));return k.dummy=b,S.setNode(j,k),j}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var N=b.edge(k.v,k.w)||{weight:0,minlen:1},j=S.edge(k);b.setEdge(k.v,k.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(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.outEdges(k),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(k){var N={};return e.forEach(S.inEdges(k),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 k=S.x,N=S.y,j=b.x-k,P=b.y-N,O=S.width/2,L=S.height/2;if(!j&&!P)throw new Error("Not possible to find intersection inside of the rectangle");var B,T;return Math.abs(P)*O>Math.abs(j)*L?(P<0&&(L=-L),B=L*j/P,T=L):(j<0&&(O=-O),B=O,T=O*P/j),{x:k+B,y:N+T}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var N=S.node(k),j=N.rank;e.isUndefined(j)||(b[j][N.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var N=S.node(k);e.has(N,"rank")&&(N.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(P){return S.node(P).rank})),k=[];e.forEach(S.nodes(),function(P){var O=S.node(P).rank-b;k[O]||(k[O]=[]),k[O].push(P)});var N=0,j=S.graph().nodeRankFactor;e.forEach(k,function(P,O){e.isUndefined(P)&&O%j!==0?--N:N&&e.forEach(P,function(L){S.node(L).rank+=N})})}function m(S,b,k,N){var j={width:0,height:0};return arguments.length>=4&&(j.rank=k,j.order=N),i(S,"border",j,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?k.lhs.push(N):k.rhs.push(N)}),k}function C(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return eg}var tg,uk;function u$(){if(uk)return tg;uk=1;var e=lt(),n=un();tg={run:i,undo:o};function i(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,m=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var C,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},C=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,h,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return tg}var ng,ck;function Vl(){if(ck)return ng;ck=1;var e=lt();ng={longestPath:n,slack:i};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 p=e.min(e.map(s.outEdges(u),function(h){return l(h.w)-s.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(s.sources(),l)}function i(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return ng}var rg,dk;function kC(){if(dk)return rg;dk=1;var e=lt(),n=Gn().Graph,i=Vl().slack;rg=s;function s(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var m,y;o(p,c)<f;)m=l(p,c),y=p.hasNode(m.v)?i(c,m):-i(c,m),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(m){var y=m.v,x=f===y?m.w:y;!c.hasNode(x)&&!i(p,m)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return i(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return rg}var ig,fk;function c$(){if(fk)return ig;fk=1;var e=lt(),n=kC(),i=Vl().slack,s=Vl().longestPath,o=Gn().alg.preorder,l=Gn().alg.postorder,u=un().simplify;ig=c,c.initLowLimValues=m,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var j=n(N);m(j),p(j,N);for(var P,O;P=x(j);)O=C(j,N,P),_(j,N,P,O)}function p(N,j){var P=l(N,N.nodes());P=P.slice(0,P.length-1),e.forEach(P,function(O){h(N,j,O)})}function h(N,j,P){var O=N.node(P),L=O.parent;N.edge(P,L).cutvalue=f(N,j,P)}function f(N,j,P){var O=N.node(P),L=O.parent,B=!0,T=j.edge(P,L),M=0;return T||(B=!1,T=j.edge(L,P)),M=T.weight,e.forEach(j.nodeEdges(P),function(q){var Y=q.v===P,X=Y?q.w:q.v;if(X!==L){var I=Y===B,H=j.edge(q).weight;if(M+=I?H:-H,b(N,P,X)){var U=N.edge(P,X).cutvalue;M+=I?-U:U}}}),M}function m(N,j){arguments.length<2&&(j=N.nodes()[0]),y(N,{},1,j)}function y(N,j,P,O,L){var B=P,T=N.node(O);return j[O]=!0,e.forEach(N.neighbors(O),function(M){e.has(j,M)||(P=y(N,j,P,M,O))}),T.low=B,T.lim=P++,L?T.parent=L:delete T.parent,P}function x(N){return e.find(N.edges(),function(j){return N.edge(j).cutvalue<0})}function C(N,j,P){var O=P.v,L=P.w;j.hasEdge(O,L)||(O=P.w,L=P.v);var B=N.node(O),T=N.node(L),M=B,q=!1;B.lim>T.lim&&(M=T,q=!0);var Y=e.filter(j.edges(),function(X){return q===k(N,N.node(X.v),M)&&q!==k(N,N.node(X.w),M)});return e.minBy(Y,function(X){return i(j,X)})}function _(N,j,P,O){var L=P.v,B=P.w;N.removeEdge(L,B),N.setEdge(O.v,O.w,{}),m(N),p(N,j),S(N,j)}function S(N,j){var P=e.find(N.nodes(),function(L){return!j.node(L).parent}),O=o(N,P);O=O.slice(1),e.forEach(O,function(L){var B=N.node(L).parent,T=j.edge(L,B),M=!1;T||(T=j.edge(B,L),M=!0),j.node(L).rank=j.node(B).rank+(M?T.minlen:-T.minlen)})}function b(N,j,P){return N.hasEdge(j,P)}function k(N,j,P){return P.low<=j.lim&&j.lim<=P.lim}return ig}var sg,hk;function d$(){if(hk)return sg;hk=1;var e=Vl(),n=e.longestPath,i=kC(),s=c$();sg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),i(p)}function c(p){s(p)}return sg}var og,pk;function f$(){if(pk)return og;pk=1;var e=lt();og=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=i(o,l,p.v,p.w),f=h.path,m=h.lca,y=0,x=f[y],C=!0;u!==p.w;){if(c=o.node(u),C){for(;(x=f[y])!==m&&o.node(x).maxRank<c.rank;)y++;x===m&&(C=!1)}if(!C){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function i(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||m>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function s(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return og}var ag,mk;function h$(){if(mk)return ag;mk=1;var e=lt(),n=un();ag={run:i,cleanup:u};function i(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,m=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(x){s(c,p,m,y,f,h,x)}),c.graph().nodeRankFactor=m}function s(c,p,h,f,m,y,x){var C=c.children(x);if(!C.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(C,function(k){s(c,p,h,f,m,y,k);var N=c.node(k),j=N.borderTop?N.borderTop:k,P=N.borderBottom?N.borderBottom:k,O=N.borderTop?f:2*f,L=j!==P?1:m-y[x]+1;c.setEdge(_,j,{weight:O,minlen:L,nestingEdge:!0}),c.setEdge(P,S,{weight:O,minlen:L,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:m+y[x]})}function o(c){var p={};function h(f,m){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,m+1)}),p[f]=m}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return ag}var lg,gk;function p$(){if(gk)return lg;gk=1;var e=lt(),n=un();lg=i;function i(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)s(o,"borderLeft","_bl",u,p,h),s(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function s(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},m=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return lg}var ug,vk;function m$(){if(vk)return ug;vk=1;var e=lt();ug={adjust:n,undo:i};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&s(h)}function i(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),s(h))}function s(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,p),e.has(m,"x")&&p(m)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return ug}var cg,yk;function g$(){if(yk)return cg;yk=1;var e=lt();cg=n;function n(i){var s={},o=e.filter(i.nodes(),function(h){return!i.children(h).length}),l=e.max(e.map(o,function(h){return i.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(s,h)){s[h]=!0;var f=i.node(h);u[f.rank].push(h),e.forEach(i.successors(h),c)}}var p=e.sortBy(o,function(h){return i.node(h).rank});return e.forEach(p,c),u}return cg}var dg,wk;function v$(){if(wk)return dg;wk=1;var e=lt();dg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=i(s,o[u-1],o[u]);return l}function i(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(x){return{pos:u[x.w],weight:s.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var C=0;x>0;)x%2&&(C+=f[x+1]),x=x-1>>1,f[x]+=y.weight;m+=y.weight*C})),m}return dg}var fg,xk;function y$(){if(xk)return fg;xk=1;var e=lt();fg=n;function n(i,s){return e.map(s,function(o){var l=i.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=i.edge(p),f=i.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return fg}var hg,_k;function w$(){if(_k)return hg;_k=1;var e=lt();hg=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return i(c)}function i(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&s(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["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,Sk;function x$(){if(Sk)return pg;Sk=1;var e=lt(),n=un();pg=i;function i(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],m=0,y=0,x=0;p.sort(o(!!u)),x=s(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,x=s(f,h,x)});var C={vs:e.flatten(f,!0)};return y&&(C.barycenter=m/y,C.weight=y),C}function s(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.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,bk;function _$(){if(bk)return mg;bk=1;var e=lt(),n=y$(),i=w$(),s=x$();mg=o;function o(c,p,h,f){var m=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};x&&(m=e.filter(m,function(P){return P!==x&&P!==C}));var S=n(c,m);e.forEach(S,function(P){if(c.children(P.v).length){var O=o(c,P.v,h,f);_[P.v]=O,e.has(O,"barycenter")&&u(P,O)}});var b=i(S,h);l(b,_);var k=s(b,f);if(x&&(k.vs=e.flatten([x,k.vs,C],!0),c.predecessors(x).length)){var N=c.node(c.predecessors(x)[0]),j=c.node(c.predecessors(C)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+N.order+j.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return mg}var gg,kk;function S$(){if(kk)return gg;kk=1;var e=lt(),n=Gn().Graph;gg=i;function i(o,l,u){var c=s(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),m=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,m||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,C=p.edge(x,h),_=e.isUndefined(C)?0:C.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return gg}var vg,Ek;function b$(){if(Ek)return vg;Ek=1;var e=lt();vg=n;function n(i,s,o){var l={},u;e.forEach(o,function(c){for(var p=i.parent(c),h,f;p;){if(h=i.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){s.setEdge(f,p);return}p=h}})}return vg}var yg,Nk;function k$(){if(Nk)return yg;Nk=1;var e=lt(),n=g$(),i=v$(),s=_$(),o=S$(),l=b$(),u=Gn().Graph,c=un();yg=p;function p(y){var x=c.maxRank(y),C=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,N=0,j=0;j<4;++N,++j){f(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var P=i(y,S);P<b&&(j=0,k=e.cloneDeep(S),b=P)}m(y,k)}function h(y,x,C){return e.map(x,function(_){return o(y,_,C)})}function f(y,x){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,x);e.forEach(b.vs,function(k,N){_.node(k).order=N}),l(_,C,b.vs)})}function m(y,x){e.forEach(x,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return yg}var wg,Ck;function E$(){if(Ck)return wg;Ck=1;var e=lt(),n=Gn().Graph,i=un();wg={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:m,balance:x};function s(b,k){var N={};function j(P,O){var L=0,B=0,T=P.length,M=e.last(O);return e.forEach(O,function(q,Y){var X=l(b,q),I=X?b.node(X).order:T;(X||q===M)&&(e.forEach(O.slice(B,Y+1),function(H){e.forEach(b.predecessors(H),function(U){var ne=b.node(U),J=ne.order;(J<L||I<J)&&!(ne.dummy&&b.node(H).dummy)&&u(N,U,H)})}),B=Y+1,L=I)}),O}return e.reduce(k,j),N}function o(b,k){var N={};function j(O,L,B,T,M){var q;e.forEach(e.range(L,B),function(Y){q=O[Y],b.node(q).dummy&&e.forEach(b.predecessors(q),function(X){var I=b.node(X);I.dummy&&(I.order<T||I.order>M)&&u(N,X,q)})})}function P(O,L){var B=-1,T,M=0;return e.forEach(L,function(q,Y){if(b.node(q).dummy==="border"){var X=b.predecessors(q);X.length&&(T=b.node(X[0]).order,j(L,M,Y,B,T),M=Y,B=T)}j(L,M,L.length,T,O.length)}),L}return e.reduce(k,P),N}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(N){return b.node(N).dummy})}function u(b,k,N){if(k>N){var j=k;k=N,N=j}var P=b[k];P||(b[k]=P={}),P[N]=!0}function c(b,k,N){if(k>N){var j=k;k=N,N=j}return e.has(b[k],N)}function p(b,k,N,j){var P={},O={},L={};return e.forEach(k,function(B){e.forEach(B,function(T,M){P[T]=T,O[T]=T,L[T]=M})}),e.forEach(k,function(B){var T=-1;e.forEach(B,function(M){var q=j(M);if(q.length){q=e.sortBy(q,function(U){return L[U]});for(var Y=(q.length-1)/2,X=Math.floor(Y),I=Math.ceil(Y);X<=I;++X){var H=q[X];O[M]===M&&T<L[H]&&!c(N,M,H)&&(O[H]=M,O[M]=P[M]=P[H],T=L[H])}}})}),{root:P,align:O}}function h(b,k,N,j,P){var O={},L=f(b,k,N,P),B=P?"borderLeft":"borderRight";function T(Y,X){for(var I=L.nodes(),H=I.pop(),U={};H;)U[H]?Y(H):(U[H]=!0,I.push(H),I=I.concat(X(H))),H=I.pop()}function M(Y){O[Y]=L.inEdges(Y).reduce(function(X,I){return Math.max(X,O[I.v]+L.edge(I))},0)}function q(Y){var X=L.outEdges(Y).reduce(function(H,U){return Math.min(H,O[U.w]-L.edge(U))},Number.POSITIVE_INFINITY),I=b.node(Y);X!==Number.POSITIVE_INFINITY&&I.borderType!==B&&(O[Y]=Math.max(O[Y],X))}return T(M,L.predecessors.bind(L)),T(q,L.successors.bind(L)),e.forEach(j,function(Y){O[Y]=O[N[Y]]}),O}function f(b,k,N,j){var P=new n,O=b.graph(),L=_(O.nodesep,O.edgesep,j);return e.forEach(k,function(B){var T;e.forEach(B,function(M){var q=N[M];if(P.setNode(q),T){var Y=N[T],X=P.edge(Y,q);P.setEdge(Y,q,Math.max(L(b,M,T),X||0))}T=M})}),P}function m(b,k){return e.minBy(e.values(k),function(N){var j=Number.NEGATIVE_INFINITY,P=Number.POSITIVE_INFINITY;return e.forIn(N,function(O,L){var B=S(b,L)/2;j=Math.max(O+B,j),P=Math.min(O-B,P)}),j-P})}function y(b,k){var N=e.values(k),j=e.min(N),P=e.max(N);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(L){var B=O+L,T=b[B],M;if(T!==k){var q=e.values(T);M=L==="l"?j-e.min(q):P-e.max(q),M&&(b[B]=e.mapValues(T,function(Y){return Y+M}))}})})}function x(b,k){return e.mapValues(b.ul,function(N,j){if(k)return b[k.toLowerCase()][j];var P=e.sortBy(e.map(b,j));return(P[1]+P[2])/2})}function C(b){var k=i.buildLayerMatrix(b),N=e.merge(s(b,k),o(b,k)),j={},P;e.forEach(["u","d"],function(L){P=L==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(B){B==="r"&&(P=e.map(P,function(Y){return e.values(Y).reverse()}));var T=(L==="u"?b.predecessors:b.successors).bind(b),M=p(b,P,N,T),q=h(b,P,M.root,M.align,B==="r");B==="r"&&(q=e.mapValues(q,function(Y){return-Y})),j[L+B]=q})});var O=m(b,j);return y(j,O),x(j,b.graph().align)}function _(b,k,N){return function(j,P,O){var L=j.node(P),B=j.node(O),T=0,M;if(T+=L.width/2,e.has(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":M=-L.width/2;break;case"r":M=L.width/2;break}if(M&&(T+=N?M:-M),M=0,T+=(L.dummy?k:b)/2,T+=(B.dummy?k:b)/2,T+=B.width/2,e.has(B,"labelpos"))switch(B.labelpos.toLowerCase()){case"l":M=B.width/2;break;case"r":M=-B.width/2;break}return M&&(T+=N?M:-M),M=0,T}}function S(b,k){return b.node(k).width}return wg}var xg,jk;function N$(){if(jk)return xg;jk=1;var e=lt(),n=un(),i=E$().positionX;xg=s;function s(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(i(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(m){return l.node(m).height}));e.forEach(h,function(m){l.node(m).y=p+f/2}),p+=f+c})}return xg}var _g,Rk;function C$(){if(Rk)return _g;Rk=1;var e=lt(),n=l$(),i=u$(),s=d$(),o=un().normalizeRanks,l=f$(),u=un().removeEmptyRanks,c=h$(),p=p$(),h=m$(),f=k$(),m=N$(),y=un(),x=Gn().Graph;_g=C;function C(D,Q){var ee=Q&&Q.debugTiming?y.time:y.notime;ee("layout",function(){var oe=ee(" buildLayoutGraph",function(){return T(D)});ee(" runLayout",function(){_(oe,ee)}),ee(" updateInputGraph",function(){S(D,oe)})})}function _(D,Q){Q(" makeSpaceForEdgeLabels",function(){M(D)}),Q(" removeSelfEdges",function(){F(D)}),Q(" acyclic",function(){n.run(D)}),Q(" nestingGraph.run",function(){c.run(D)}),Q(" rank",function(){s(y.asNonCompoundGraph(D))}),Q(" injectEdgeLabelProxies",function(){q(D)}),Q(" removeEmptyRanks",function(){u(D)}),Q(" nestingGraph.cleanup",function(){c.cleanup(D)}),Q(" normalizeRanks",function(){o(D)}),Q(" assignRankMinMax",function(){Y(D)}),Q(" removeEdgeLabelProxies",function(){X(D)}),Q(" normalize.run",function(){i.run(D)}),Q(" parentDummyChains",function(){l(D)}),Q(" addBorderSegments",function(){p(D)}),Q(" order",function(){f(D)}),Q(" insertSelfEdges",function(){G(D)}),Q(" adjustCoordinateSystem",function(){h.adjust(D)}),Q(" position",function(){m(D)}),Q(" positionSelfEdges",function(){E(D)}),Q(" removeBorderNodes",function(){J(D)}),Q(" normalize.undo",function(){i.undo(D)}),Q(" fixupEdgeLabelCoords",function(){U(D)}),Q(" undoCoordinateSystem",function(){h.undo(D)}),Q(" translateGraph",function(){I(D)}),Q(" assignNodeIntersects",function(){H(D)}),Q(" reversePoints",function(){ne(D)}),Q(" acyclic.undo",function(){n.undo(D)})}function S(D,Q){e.forEach(D.nodes(),function(ee){var oe=D.node(ee),le=Q.node(ee);oe&&(oe.x=le.x,oe.y=le.y,Q.children(ee).length&&(oe.width=le.width,oe.height=le.height))}),e.forEach(D.edges(),function(ee){var oe=D.edge(ee),le=Q.edge(ee);oe.points=le.points,e.has(le,"x")&&(oe.x=le.x,oe.y=le.y)}),D.graph().width=Q.graph().width,D.graph().height=Q.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],j=["width","height"],P={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],L={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},B=["labelpos"];function T(D){var Q=new x({multigraph:!0,compound:!0}),ee=se(D.graph());return Q.setGraph(e.merge({},k,$(ee,b),e.pick(ee,N))),e.forEach(D.nodes(),function(oe){var le=se(D.node(oe));Q.setNode(oe,e.defaults($(le,j),P)),Q.setParent(oe,D.parent(oe))}),e.forEach(D.edges(),function(oe){var le=se(D.edge(oe));Q.setEdge(oe,e.merge({},L,$(le,O),e.pick(le,B)))}),Q}function M(D){var Q=D.graph();Q.ranksep/=2,e.forEach(D.edges(),function(ee){var oe=D.edge(ee);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function q(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q);if(ee.width&&ee.height){var oe=D.node(Q.v),le=D.node(Q.w),ge={rank:(le.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode(D,"edge-proxy",ge,"_ep")}})}function Y(D){var Q=0;e.forEach(D.nodes(),function(ee){var oe=D.node(ee);oe.borderTop&&(oe.minRank=D.node(oe.borderTop).rank,oe.maxRank=D.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),D.graph().maxRank=Q}function X(D){e.forEach(D.nodes(),function(Q){var ee=D.node(Q);ee.dummy==="edge-proxy"&&(D.edge(ee.e).labelRank=ee.rank,D.removeNode(Q))})}function I(D){var Q=Number.POSITIVE_INFINITY,ee=0,oe=Number.POSITIVE_INFINITY,le=0,ge=D.graph(),de=ge.marginx||0,Ae=ge.marginy||0;function He(Me){var Te=Me.x,ke=Me.y,Ke=Me.width,ye=Me.height;Q=Math.min(Q,Te-Ke/2),ee=Math.max(ee,Te+Ke/2),oe=Math.min(oe,ke-ye/2),le=Math.max(le,ke+ye/2)}e.forEach(D.nodes(),function(Me){He(D.node(Me))}),e.forEach(D.edges(),function(Me){var Te=D.edge(Me);e.has(Te,"x")&&He(Te)}),Q-=de,oe-=Ae,e.forEach(D.nodes(),function(Me){var Te=D.node(Me);Te.x-=Q,Te.y-=oe}),e.forEach(D.edges(),function(Me){var Te=D.edge(Me);e.forEach(Te.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(Te,"x")&&(Te.x-=Q),e.has(Te,"y")&&(Te.y-=oe)}),ge.width=ee-Q+de,ge.height=le-oe+Ae}function H(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q),oe=D.node(Q.v),le=D.node(Q.w),ge,de;ee.points?(ge=ee.points[0],de=ee.points[ee.points.length-1]):(ee.points=[],ge=le,de=oe),ee.points.unshift(y.intersectRect(oe,ge)),ee.points.push(y.intersectRect(le,de))})}function U(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q);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(D){e.forEach(D.edges(),function(Q){var ee=D.edge(Q);ee.reversed&&ee.points.reverse()})}function J(D){e.forEach(D.nodes(),function(Q){if(D.children(Q).length){var ee=D.node(Q),oe=D.node(ee.borderTop),le=D.node(ee.borderBottom),ge=D.node(e.last(ee.borderLeft)),de=D.node(e.last(ee.borderRight));ee.width=Math.abs(de.x-ge.x),ee.height=Math.abs(le.y-oe.y),ee.x=ge.x+ee.width/2,ee.y=oe.y+ee.height/2}}),e.forEach(D.nodes(),function(Q){D.node(Q).dummy==="border"&&D.removeNode(Q)})}function F(D){e.forEach(D.edges(),function(Q){if(Q.v===Q.w){var ee=D.node(Q.v);ee.selfEdges||(ee.selfEdges=[]),ee.selfEdges.push({e:Q,label:D.edge(Q)}),D.removeEdge(Q)}})}function G(D){var Q=y.buildLayerMatrix(D);e.forEach(Q,function(ee){var oe=0;e.forEach(ee,function(le,ge){var de=D.node(le);de.order=ge+oe,e.forEach(de.selfEdges,function(Ae){y.addDummyNode(D,"selfedge",{width:Ae.label.width,height:Ae.label.height,rank:de.rank,order:ge+ ++oe,e:Ae.e,label:Ae.label},"_se")}),delete de.selfEdges})})}function E(D){e.forEach(D.nodes(),function(Q){var ee=D.node(Q);if(ee.dummy==="selfedge"){var oe=D.node(ee.e.v),le=oe.x+oe.width/2,ge=oe.y,de=ee.x-le,Ae=oe.height/2;D.setEdge(ee.e,ee.label),D.removeNode(Q),ee.label.points=[{x:le+2*de/3,y:ge-Ae},{x:le+5*de/6,y:ge-Ae},{x:le+de,y:ge},{x:le+5*de/6,y:ge+Ae},{x:le+2*de/3,y:ge+Ae}],ee.label.x=ee.x,ee.label.y=ee.y}})}function $(D,Q){return e.mapValues(e.pick(D,Q),Number)}function se(D){var Q={};return e.forEach(D,function(ee,oe){Q[oe.toLowerCase()]=ee}),Q}return _g}var Sg,Tk;function j$(){if(Tk)return Sg;Tk=1;var e=lt(),n=un(),i=Gn().Graph;Sg={debugOrdering:s};function s(o){var l=n.buildLayerMatrix(o),u=new i({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,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,m){return u.setEdge(f,m,{style:"invis"}),m})}),u}return Sg}var bg,Ak;function R$(){return Ak||(Ak=1,bg="0.8.5"),bg}var kg,Ik;function T$(){return Ik||(Ik=1,kg={graphlib:Gn(),layout:C$(),debug:j$(),util:{time:un().time,notime:un().notime},version:R$()}),kg}var A$=T$();const Mk=Kg(A$),mi=240,Gi=130,Ys=74,gu=72,Pk=Ys+gu;function I$(e){let n=mi;for(const i of e.values())n=Math.max(n,i.width);return n}const EC=420,M$=2;function na(e){var i;return((i=e.data)==null?void 0:i.sessionId)??"_default"}function Ok(e,n){return((n==null?void 0:n.get(e))??0)>0?EC:0}function qk(e,n){const i=(n==null?void 0:n.get(e))??0;return i>0?6+i*36:0}function P$(e,n,i,s,o,l){const u=new Mk.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:i,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const k=s.get(b);u.setNode(b,{width:((k==null?void 0:k.width)??mi)+Ok(b,l),height:Math.max((k==null?void 0:k.height)??Gi,qk(b,l))})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);Mk.layout(u);const h=new Map;let f=1/0,m=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??mi,P=(N==null?void 0:N.height)??Gi,O=j+Ok(b,l),L=Math.max(P,qk(b,l)),B=k.x-O/2,T=k.y-L/2;h.set(b,{x:B,y:T}),B<f&&(f=B),T<m&&(m=T),B+j>y&&(y=B+j),T+P>x&&(x=T+P)}if(Number.isFinite(f)&&Number.isFinite(m))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-m});const C=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const N=s.get(b),j=(N==null?void 0:N.width)??mi,P=(N==null?void 0:N.height)??Gi;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+j,maxY:k.y+P}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+j),maxY:Math.max(S.maxY,k.y+P)}}return{positions:h,width:C,height:_,pinnedBox:S}}function O$(e,n,i={}){const s=i.direction??"LR",o=i.pinned??new Map,l=i.measured??new Map,u=i.lanes,c=new Map;for(const b of e){const k=na(b),N=c.get(k);N?N.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...P$(c.get(b),n,s,l,o,u)})),f=I$(l),m=i.availableHeight&&i.availableHeight>0?i.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let N=0;for(const j of h)k.length<b&&N>0&&N+j.height>m&&(k.push([]),N=0),k[k.length-1].push(j),N+=j.height+Pk;return k},x=b=>b.reduce((k,N)=>Math.max(k,N.width),0)+EC;let C=y(i.availableWidth?M$:1);C.length>1&&C.reduce((k,N)=>k+x(N),0)+f*(C.length-1)>(i.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){const k=x(b);let N=0;for(const{positions:j,height:P,pinnedBox:O}of b){for(const[B,T]of j)_.set(B,{x:T.x+S,y:T.y+N});let L=N+P;O&&O.maxY>L&&O.minX<S+k&&S<O.maxX&&(L=O.maxY),N=L+Pk}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const N=_.get(b.id);return N?{...b,position:N}:b})}function q$(e,n,i,s){const l=Ys+gu,u=60,c=y=>{const x=s.get(y);return{w:(x==null?void 0:x.width)??mi,h:(x==null?void 0:x.height)??Gi}},p=new Map(e.map(y=>[y.id,na(y)])),h=[],f=e.map(y=>({id:y.id,pos:i.get(y.id)??n.get(y.id)})).filter(y=>y.pos!=null).sort((y,x)=>y.pos.y-x.pos.y||y.pos.x-x.pos.x||y.id.localeCompare(x.id)),m=[];for(const{id:y,pos:x}of f){const{w:C,h:_}=c(y),S=p.get(y)??"_default";if(i.has(y)){h.push({x:x.x,y:x.y,w:C,h:_,sid:S});continue}let b=x.y;for(let k=0;k<h.length+1;k++){const N=h.find(j=>{const P=j.sid===S?24:u,O=j.sid===S?24:l;return x.x<j.x+j.w+P&&j.x<x.x+C+P&&b<j.y+j.h+O&&j.y<b+_+O});if(!N)break;b=N.y+N.h+(N.sid===S?24:l)}b!==x.y&&(n.set(y,{x:x.x,y:b}),m.push(y)),h.push({x:x.x,y:b,w:C,h:_,sid:S})}return m}function L$(e,n,i,s,o){const l=C=>{const _=s.get(C);return{w:(_==null?void 0:_.width)??mi,h:(_==null?void 0:_.height)??Gi}},u=C=>i.get(C)??n.get(C),c=new Map;for(const C of e){if(!u(C.id))continue;const _=na(C),S=c.get(_);S?S.push(C):c.set(_,[C])}const p=new Set;for(const[C,_]of c)_.every(S=>o.has(S.id)&&!i.has(S.id))&&p.add(C);const h=new Map,f=[];for(const C of e){const _=u(C.id);if(!_)continue;const{w:S,h:b}=l(C.id),k=na(C);p.has(k)?(h.get(k)??h.set(k,[]).get(k)).push(C):f.push({x:_.x,y:_.y,w:S,h:b})}if(h.size===0)return[];const m=Ys+gu,y=(C,_,S,b)=>f.some(k=>C<k.x+k.w+Ys&&k.x<C+S+Ys&&_<k.y+k.h+m&&k.y<_+b+m),x=[];for(const C of[...h.keys()].sort()){const _=h.get(C);let S=1/0,b=1/0,k=-1/0,N=-1/0;for(const M of _){const q=u(M.id),{w:Y,h:X}=l(M.id);S=Math.min(S,q.x),b=Math.min(b,q.y),k=Math.max(k,q.x+Y),N=Math.max(N,q.y+X)}const j=k-S,P=N-b,O=[...new Set(f.map(M=>Math.round(M.x)))].sort((M,q)=>M-q),L=O.length?O:[S],B=[0,...f.map(M=>M.y+M.h+m)].sort((M,q)=>M-q);let T=null;e:for(const M of L)for(const q of B){if(q>=b)break;if(!y(M,q,j,P)){T={x:M,y:q};break e}}if(T){const M=T.x-S,q=T.y-b;for(const Y of _){const X=u(Y.id);n.set(Y.id,{x:X.x+M,y:X.y+q})}x.push(C)}for(const M of _){const q=u(M.id),{w:Y,h:X}=l(M.id);f.push({x:q.x,y:q.y,w:Y,h:X})}}return x}function $$(e,n,i,s,o,l=!1){const p=Ys+gu+1,h=8,f=1.75,m=200,y=.7,x=.01,C=T=>{const M=s.get(T);return{w:(M==null?void 0:M.width)??mi,h:(M==null?void 0:M.height)??Gi}},_=T=>i.get(T)??n.get(T),S=new Map;for(const T of e){if(!_(T.id))continue;const M=na(T),q=S.get(M);q?q.push(T):S.set(M,[T])}const b=[],k=new Set,N=new Set,j=o.size===0;for(const T of[...S.keys()].sort()){const M=S.get(T);let q=1/0,Y=1/0,X=-1/0,I=-1/0,H=!1;for(const F of M){const G=_(F.id),{w:E,h:$}=C(F.id);q=Math.min(q,G.x),Y=Math.min(Y,G.y),X=Math.max(X,G.x+E),I=Math.max(I,G.y+$),i.has(F.id)&&(H=!0)}const U=X-q,ne=I-Y;N.add(T);const J=o.get(T);J&&(U>J.w+h||ne>J.h+h)&&k.add(T),o.set(T,{w:U,h:ne}),b.push({sid:T,members:M.map(F=>F.id),x:q,y:Y,w:U,h:ne,anchored:H,mass:1})}for(const T of[...o.keys()])N.has(T)||o.delete(T);if(l||j)return[];let P=!1;for(let T=0;T<b.length&&!P;T++)for(let M=T+1;M<b.length;M++){const q=b[T],Y=b[M];if(!(q.anchored&&Y.anchored)&&Math.abs(q.x+q.w/2-(Y.x+Y.w/2))<(q.w+Y.w)/2+61&&Math.abs(q.y+q.h/2-(Y.y+Y.h/2))<(q.h+Y.h)/2+p){P=!0;break}}if(k.size===0&&!P)return[];if(k.size>0)for(const T of b)k.has(T.sid)&&(T.mass=8);else for(const T of b)T.mass=Math.max(1,T.w*T.h/(mi*Gi));const O=new Map(b.map(T=>[T.sid,T.x])),L=new Map(b.map(T=>[T.sid,T.y]));for(let T=0;T<m;T++){const M=new Map,q=new Map;let Y=0;for(let X=0;X<b.length;X++)for(let I=X+1;I<b.length;I++){const H=b[X],U=b[I];if(H.anchored&&U.anchored)continue;const ne=H.x+H.w/2,J=H.y+H.h/2,F=U.x+U.w/2,G=U.y+U.h/2,E=(H.w+U.w)/2+61-Math.abs(ne-F),$=(H.h+U.h)/2+p-Math.abs(J-G);if(E<=0||$<=0)continue;const se=(We,$e)=>!We.anchored&&!($e<0&&We.x<=0),D=(We,$e)=>!We.anchored&&!($e<0&&We.y<=0),Q=(We,$e,it)=>{const wt=We===$e,et=wt?H.sid<U.sid?-1:1:Math.sign(We-$e);return it(H,et)||it(U,-et)?et:wt&&(it(H,-et)||it(U,et))?-et:0},ee=Q(ne,F,se),oe=Q(J,G,D),le=ee!==0,ge=oe!==0;if(!le&&!ge)continue;const de=le&&(!ge||E*f<$),[Ae,He,Me,Te]=de?[ee,E,M,se]:[oe,$,q,D],ke=Te(H,Ae),Ke=Te(U,-Ae),ye=H.mass,we=U.mass,Ve=ke?Ke?we/(ye+we):1:0,ut=Ke?ke?ye/(ye+we):1:0,ct=He*y;Me.set(H.sid,(Me.get(H.sid)??0)+Ae*ct*Ve),Me.set(U.sid,(Me.get(U.sid)??0)-Ae*ct*ut),Y+=ct}for(const X of b)X.anchored||(X.x=Math.max(0,X.x+(M.get(X.sid)??0)),X.y=Math.max(0,X.y+(q.get(X.sid)??0)));if(Y<x)break}const B=[];for(const T of b){const M=T.x-O.get(T.sid),q=T.y-L.get(T.sid);if(!(Math.abs(M)<1&&Math.abs(q)<1)){for(const Y of T.members){if(i.has(Y))continue;const X=n.get(Y);X&&n.set(Y,{x:X.x+M,y:X.y+q})}B.push(T.sid)}}return B}const D$=600;function Wg(e,n){return!(e.exitAt!=null&&n-e.exitAt>D$||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function F$(e,n){const i=new Set;for(const s of e.agents.values())Wg(s,n)&&i.add(s.id);return i}function z$(e,n,i=0){return e.right+i>n.left&&e.left-i<n.right&&e.bottom+i>n.top&&e.top-i<n.bottom}function B$(e,n,i=0){if(!e)return!1;for(const s of n)if(z$(e,s,i))return!0;return!1}function zi(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function U$(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const H$={agent:qP,sessionGroup:GP},V$=420,Rl=18,W$=9e4,G$=200,Y$=5*6e4,K$=6,X$=2*6e4,Pv="agent-dag.layout",Ov="agent-dag.viewport",NC="agent-dag.summariesDismissed",CC="agent-dag.sessionListOpen",jC="agent-dag.detailOpen",RC="agent-dag.usagePanelOpen",Lk="agent-dag.accountsPanelOpen",$k="agent-dag.versionNoticeDismissed",Q$=15*6e4,Dk={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 Z$(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 Fk="agent-dag.autoRestart",zk="agent-dag.bundleReloadedFor";function J$(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(CC)==="1"}catch{return!1}}function e4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CC,e?"1":"0")}catch{}}function t4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(jC)==="1"}catch{return!1}}function n4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(jC,e?"1":"0")}catch{}}function r4(){if(typeof window>"u")return!0;const e=window.localStorage.getItem(RC);try{return e===null?!0:e==="1"}catch{return!0}}function i4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(RC,e?"1":"0")}catch{}}function s4(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(NC);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(i=>typeof i=="string"):[])}catch{return new Set}}function Bk(e){if(!(typeof window>"u"))try{const n=Array.from(e),i=n.length>200?n.slice(-200):n;window.localStorage.setItem(NC,JSON.stringify(i))}catch{}}function o4(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Pv);if(!n)return e;const i=JSON.parse(n);if(!("v"in i)){const o=Object.entries(i).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(i.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(i.pins)?i.pins:[]}}catch{return e}}function Eg(e,n){if(!(typeof window>"u"))try{const i={};for(const[s,o]of e)i[s]=o;for(const[s,o]of n)i[s]=o;window.localStorage.setItem(Pv,JSON.stringify({v:2,positions:i,pins:Array.from(n.keys())}))}catch{}}function a4(){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 l4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Ov,JSON.stringify(e))}catch{}}function Uk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Pv)}catch{}try{window.localStorage.removeItem(Ov)}catch{}}}function u4(e,n){const i=e.agents.get(n);if(!i)return;const s=[];for(const f of e.agents.values())f.sessionId===n&&s.push(f);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:i.label,cwd:i.cwd,startedAt:i.startedAt,endedAt:i.endedAt,model:i.model,agents:s.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),p=document.createElement("a"),h=(i.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`agents-deck-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Gg={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Yg={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},c4={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 TC(e){return e.startsWith("mcp__")?"mcp":c4[e]??"other"}function AC(e,n){var s,o,l;if(!n)return!0;const i=n.toLowerCase();if(e.label.toLowerCase().includes(i)||(s=e.cwd)!=null&&s.toLowerCase().includes(i)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(i)||e.sessionId.toLowerCase().includes(i)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(i))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(i))return!0;return!1}function d4(e,n){if(!n)return null;const i=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||i.has(l.parentId))break;i.add(l.parentId),s=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&i.has(l.parentId)&&!i.has(l.id)&&(i.add(l.id),o=!0)}return i}function f4(e,n,i,s,o,l,u,c,p,h,f,m,y,x,C,_,S,b){const k=[],N=[],j=new Set;if(l)for(const M of e.agents.values())AC(M,l)&&j.add(M.id);for(const M of e.agents.values()){if(!S.has(M.id))continue;const q=l?!j.has(M.id):!1,Y=M.exitAt!=null,X=_!=null&&!_.has(M.id),I=[q?"rf-dim":"",Y?"rf-exiting":"",X?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,H=u.get(M.id);if(k.push({id:M.id,type:"agent",position:{x:0,y:0},data:{...M,now:n,dim:q,onOpenContext:b},className:I,...H?{width:H.width,height:H.height}:null}),M.parentId&&S.has(M.parentId)){const U=pv(M.sessionId),ne=M.state==="active"?`hsl(${U} 80% 72%)`:`hsl(${U} 50% 55%)`,J=l&&!j.has(M.id)&&!j.has(M.parentId),F=Y,G=C.size>0&&(C.has(M.id)||C.has(M.parentId)),E=_!=null&&!_.has(M.id)&&!_.has(M.parentId),$=M.state==="active"?2:1.5,se=G?$+1.5:$,D=J||F?.2:E?.12:1,Q=[F?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${M.parentId}->${M.id}`,source:M.parentId,target:M.id,animated:(M.state==="active"||G)&&!J&&!F,type:"smoothstep",style:{stroke:ne,strokeWidth:se,opacity:D,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:Q})}}const P=new Map;for(const M of e.agents.values())M.tools.length>0&&P.set(M.id,Math.min(4,M.tools.length));const O=k.filter(M=>!o.has(M.id)&&!m.has(M.id));if(O.length>0||y!==x.current){if(O.length>0){const M=O$(k,N,{direction:"LR",pinned:o,measured:u,availableWidth:i,availableHeight:s,lanes:P});for(const q of M)m.has(q.id)||m.set(q.id,q.position);L$(k,m,o,u,new Set(O.map(q=>q.id)))}q$(k,m,o,u),x.current=y}const L=$$(k,m,o,u,c,!h||f);L.length>0&&p(L),dx(m,e.agents),dx(o,e.agents);const B=[];let T=!1;for(const M of k){let q=o.get(M.id)??m.get(M.id);q||(q={x:0,y:0},m.set(M.id,q),T=!0),B.push({...M,position:q})}return T&&(x.current=""),{nodes:B,edges:N}}function h4(){return g.jsx(fv,{children:g.jsx(p4,{})})}function p4(){var wa,Gr,Yr,wr;const e=aa(),n=A.useRef(Bg()),[,i]=A.useState(0),s=A.useCallback(()=>i(W=>W+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((W,K)=>{l(ue=>{if(!K)return new Set([W]);const ce=new Set(ue);return ce.has(W)?ce.delete(W):ce.add(W),ce}),c(ue=>K&&ue===W?ue:W)},[]),m=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useCallback(W=>_(W),[]),b=A.useRef(s4()),[k,N]=A.useState(J$);A.useEffect(()=>{e4(k)},[k]);const[j,P]=A.useState(t4);A.useEffect(()=>{n4(j)},[j]);const[O,L]=A.useState(r4);A.useEffect(()=>{i4(O)},[O]);const[B,T]=A.useState(()=>{try{const W=window.localStorage.getItem(Lk);return W===null?!0:W==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(Lk,B?"1":"0")}catch{}},[B]);const[M,q]=A.useState(null),[Y,X]=A.useState(!1),[I,H]=A.useState(0),[U,ne]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(q(W.enabled===!0),H((W.foreign??[]).filter(K=>K.worksHere).length),ne(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=A.useCallback(async()=>{X(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!M})})).json().catch(()=>null);K!=null&&K.ok&&q(K.enabled===!0),fetch("/api/sound-hook").then(ue=>ue.ok?ue.json():null).then(ue=>{ue!=null&&ue.ok&&(H((ue.foreign??[]).filter(ce=>ce.worksHere).length),ne(typeof ue.parked=="number"?ue.parked:0))}).catch(()=>{})}catch{}finally{X(!1)}},[M]),[F,G]=A.useState(!1),[E,$]=A.useState(null),[se,D]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem($k)??""}catch{return""}}),[Q,ee]=A.useState(!1),oe=A.useRef(0),le=A.useCallback((W=!1)=>{W&&(oe.current=Date.now()),fetch(W?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&$(K)}).catch(()=>{})},[]),ge=A.useCallback(()=>{le(Date.now()-oe.current>=Q$)},[le]);A.useEffect(()=>{le();const W=window.setInterval(ge,5*6e4),K=()=>{document.visibilityState==="visible"&&ge()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",K)}},[le,ge]),A.useEffect(()=>{F&&le()},[F,le]);const de=(E==null?void 0:E.notice)??null,Ae=de?`${de.kind}:${de.to}`:"",He=de!=null&&se!==Ae,Me=A.useCallback(()=>{if(!de)return;const W=se===Ae?"":Ae;D(W);try{window.localStorage.setItem($k,W)}catch{}},[de,Ae,se]),Te=((wa=E==null?void 0:E.upgrade)==null?void 0:wa.state)??"idle",ke=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}le()},[le]);A.useEffect(()=>{if(Te!=="running")return;const W=window.setInterval(le,3e3);return()=>window.clearInterval(W)},[Te,le]);const Ke=A.useCallback(async()=>{var ue;const W=E==null?void 0:E.command;if(!W)return;let K=!1;try{K=await Promise.race([((ue=navigator.clipboard)==null?void 0:ue.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(ce=>window.setTimeout(()=>ce(!1),500))])}catch{K=!1}if(!K)try{const ce=document.createElement("textarea");ce.value=W,ce.setAttribute("readonly",""),ce.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(ce),ce.select(),K=document.execCommand("copy"),ce.remove()}catch{K=!1}K&&(ee(!0),window.setTimeout(()=>ee(!1),1600))},[E==null?void 0:E.command]),ye=A.useCallback(()=>{N(W=>(W||T(!1),!W))},[]),we=A.useCallback(()=>{T(W=>(W||N(!1),!W))},[]),[Ve,ut]=A.useState(!1),[ct,We]=A.useState(0),$e=A.useRef(null),[it,wt]=A.useState(!1),et=A.useRef(null),[$t,gt]=A.useState(0),[kt,Pt]=A.useState(!1),Ge=A.useRef([]),[De,vt]=A.useState(Date.now()),[st,Mn]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Fk)!=="0"}catch{return!0}}),Vt=A.useCallback(()=>{Mn(W=>{const K=!W;try{window.localStorage.setItem(Fk,K?"1":"0")}catch{}return K})},[]),[xt,cn]=A.useState(!1),[cr,Pn]=A.useState("restart"),[dn,xn]=A.useState(null),Dt=A.useRef(!1),dr=A.useCallback(async W=>{if(Dt.current)return;const K=(W==null?void 0:W.upgrade)===!0;Dt.current=!0,Pn(K?"npx":"restart"),cn(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(de==null?void 0:de.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:K})})}catch{}window.setTimeout(()=>{if(Dt.current){Dt.current=!1,cn(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[de==null?void 0:de.to]),vi=A.useRef(null);A.useEffect(()=>{let W=!1;for(const ue of n.current.agents.values())if(ue.state==="active"){W=!0;break}const K=oO({enabled:st,kind:de==null?void 0:de.kind,canRestart:(E==null?void 0:E.canRestart)===!0,busy:W,idleSince:vi.current,now:De});vi.current=K.idleSince,K.restart&&dr()},[st,de==null?void 0:de.kind,E==null?void 0:E.canRestart,De,dr]),A.useEffect(()=>{let W=null;try{W=window.sessionStorage.getItem(zk)}catch{return}if(sO({bundle:"1.33.56",running:E==null?void 0:E.running,lastTried:W})){try{window.sessionStorage.setItem(zk,(E==null?void 0:E.running)??"")}catch{return}window.location.reload()}},[E==null?void 0:E.running]),A.useEffect(()=>{const W=E==null?void 0:E.running;if(!W)return;let K=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending")}catch{return}if(K==null||K&&K!==W)return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Dt.current=!1,cn(!1),xn(W);const ue=window.setTimeout(()=>xn(null),6e3);return()=>window.clearTimeout(ue)},[E==null?void 0:E.running]);const qr=A.useRef(o4()).current;A.useRef(!1);const Tt=A.useRef(new Map(qr.positions.filter(([W])=>qr.pins.includes(W)))),Xn=A.useRef(null),fr=A.useState(()=>a4())[0],[Wt,Lr]=A.useState(""),[Qn,io]=A.useState(()=>new Set),[fn,hr]=A.useState(()=>typeof window>"u"?"dark":window.localStorage.getItem("agent-dag.theme")??"dark"),[pr,yi]=A.useState(!1),es=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=fn;try{window.localStorage.setItem("agent-dag.theme",fn)}catch{}},[fn]),A.useEffect(()=>{if(!fr)return;const W=window.setTimeout(()=>{try{e.setViewport(fr,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,fr]);const ts=A.useRef(!0);A.useEffect(()=>{const W=new EventSource("/events"),K=cO(s,{now:()=>Date.now(),setTimeout:(ue,ce)=>window.setTimeout(ue,ce),clearTimeout:ue=>window.clearTimeout(ue)});return W.addEventListener("open",()=>{G(!0),yi(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{ts.current=!1,K.flush()}),W.addEventListener("hook",ue=>{try{const ce=JSON.parse(ue.data);if(kt){Ge.current.push(ce);return}n.current=Qw(n.current,ce),ce.replay===!0||ts.current||Date.now()-ce.receivedAt>3e4?K.replay():K.live()}catch{}}),()=>{W.close(),K.cancel()}},[kt,s]),A.useEffect(()=>{if(!kt&&Ge.current.length!==0){for(const W of Ge.current)n.current=Qw(n.current,W);Ge.current.length=0,s()}},[kt,s]),A.useEffect(()=>{const W=setInterval(()=>{const K=Date.now();vt(K);let ue=bP(n.current,K,W$);_P(n.current,K,G$,Y$)&&(ue=!0),SP(n.current,K,K$,X$)&&(ue=!0),ue&&s()},250);return()=>clearInterval(W)},[s]);const $r=A.useRef(null),Ft=A.useRef(0),ns=420,Gt=A.useCallback((W=500)=>{try{const xe=document.querySelector(".canvas-wrap"),Pe=Array.from(document.querySelectorAll(".react-flow__node")).filter(ht=>ht.offsetWidth>0);if(!xe||Pe.length===0)return;const Oe=xe.getBoundingClientRect(),Xe=e.getViewport();if(!Number.isFinite(Xe.zoom)||Xe.zoom<=0)return;const Ye=ht=>(ht-Oe.left-Xe.x)/Xe.zoom,tt=ht=>(ht-Oe.top-Xe.y)/Xe.zoom,Xt=Pe.map(ht=>ht.getBoundingClientRect()),er=Math.min(...Xt.map(ht=>Ye(ht.left))),hs=Math.max(...Xt.map(ht=>Ye(ht.right))),Et=Math.min(...Xt.map(ht=>tt(ht.top))),tr=Math.max(...Xt.map(ht=>tt(ht.bottom))),ps=hs-er,nr=tr-Et;if(!(ps>0&&nr>0))return;const qn=Math.max(.2,Math.min(1,(Oe.width-160)/(ps+ns)*.86,(Oe.height-160)/nr*.86));e.setViewport({x:80-er*qn,y:Math.max(80,(Oe.height-nr*qn)/2)-Et*qn,zoom:qn},{duration:W}),Ft.current=Date.now(),window.setTimeout(()=>{try{const ht={x:80-er*qn,y:Math.max(80,(Oe.height-nr*qn)/2)-Et*qn,zoom:qn},ms=e.getViewport();(Math.abs(ms.zoom-qn)>.01||Math.abs(ms.x-ht.x)>2)&&e.setViewport(ht,{duration:0})}catch{}},W+60)}catch{}},[e]),wi=A.useRef(""),Dr=A.useRef(null),xi=A.useRef(0),mr=A.useCallback(()=>{xi.current=Date.now()},[]),Fr="agent-dag.autoFitDisabled",_n=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Fr)==="1"}catch{return!1}})()),[rs,Ze]=A.useState(_n.current),is=A.useCallback(()=>{if(!_n.current){_n.current=!0,Ze(!0);try{window.localStorage.setItem(Fr,"1")}catch{}}},[]),_i=A.useCallback(()=>{_n.current=!1,Ze(!1);try{window.localStorage.removeItem(Fr)}catch{}Gt(400)},[e,Gt]);A.useEffect(()=>{const W=setInterval(()=>{if(_n.current||Date.now()-xi.current<800)return;const K=n.current,ue=Date.now(),ce=[];for(const Ye of K.agents.values())Wg(Ye,ue)&&ce.push({id:Ye.id});if(ce.length===0)return;const ve=e.getViewport(),xe=window.innerWidth-360,Pe=window.innerHeight-52;let Oe=!1,Xe=!1;for(const{id:Ye}of ce){const tt=hn.current.get(Ye),Xt=Tt.current.get(Ye)??ot.current.get(Ye);if(!tt||!Xt)continue;Xe=!0;const er=Xt.x*ve.zoom+ve.x,hs=Xt.y*ve.zoom+ve.y,Et=(Xt.x+tt.width)*ve.zoom+ve.x,tr=(Xt.y+tt.height)*ve.zoom+ve.y;if(Et>0&&er<xe&&tr>0&&hs<Pe){Oe=!0;break}}Xe&&!Oe&&Gt(600)},1500);return()=>clearInterval(W)},[e]);const zr=A.useRef(!1),hn=A.useRef(new Map),Si=A.useRef(0),ss=A.useCallback(W=>{const K=hn.current;let ue=!1;for(const ce of W.nodeInternals.values()){const ve=ce.width,xe=ce.height;if(ve==null||xe==null)continue;const Pe=K.get(ce.id);Pe?(Math.abs(Pe.height-xe)>4||Math.abs(Pe.width-ve)>4)&&(K.set(ce.id,{width:ve,height:xe}),ue=!0):(K.set(ce.id,{width:ve,height:xe}),ue=!0)}return ue&&(Si.current+=1),Si.current},[]),gr=Qe(ss),[Yt,bi]=A.useState(0);A.useEffect(()=>{let W=0;const K=()=>{const ce=hn.current;let ve=!1;for(const xe of document.querySelectorAll(".react-flow__node[data-id]")){const Pe=xe.getAttribute("data-id");if(!Pe)continue;const Oe=xe.offsetWidth,Xe=xe.offsetHeight;if(!Oe||!Xe)continue;const Ye=ce.get(Pe);(!Ye||Math.abs(Ye.width-Oe)>4||Math.abs(Ye.height-Xe)>4)&&(ce.set(Pe,{width:Oe,height:Xe}),ve=!0)}ve&&bi(xe=>xe+1)};if(zr.current)return;let ue=0;return document.visibilityState==="hidden"?ue=window.setTimeout(K,32):W=requestAnimationFrame(K),()=>{cancelAnimationFrame(W),window.clearTimeout(ue)}});const ot=A.useRef(new Map(qr.positions)),so=A.useRef(""),Br=A.useMemo(()=>{const W=[];for(const K of n.current.agents.values())Wg(K,De)&&W.push(K.id+(K.parentId?`>${K.parentId}`:""));return W.sort(),`${W.join("|")}#sv${gr}.${Yt}`},[n.current,n.current.lastSeq,De,gr,Yt]),ki=A.useRef(null);A.useEffect(()=>(ki.current!=null&&window.clearTimeout(ki.current),ki.current=window.setTimeout(()=>{Eg(ot.current,Tt.current)},1500),()=>{ki.current!=null&&window.clearTimeout(ki.current)}),[Br]),A.useEffect(()=>{if(wi.current===Br)return;const W=wi.current;if(wi.current=Br,!W||_n.current)return;Date.now()-Ft.current>1200&&Gt(400),$r.current&&window.clearTimeout($r.current),$r.current=window.setTimeout(()=>{_n.current||Gt(500)},280)},[Br,e,Gt]);const Ur=A.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const K of o){const ue=d4(n.current,K);if(ue)for(const ce of ue)W.add(ce)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),Hr=A.useMemo(()=>F$(n.current,De),[n.current,n.current.lastSeq,De]),Vr=A.useRef(null),[vr,pa]=A.useState({w:0,h:0});A.useEffect(()=>{const W=Vr.current;if(!W||typeof ResizeObserver>"u")return;const K=new ResizeObserver(ue=>{var ve;const ce=(ve=ue[0])==null?void 0:ve.contentRect;ce&&pa(xe=>Math.abs(xe.w-ce.width)>40||Math.abs(xe.h-ce.height)>40?{w:ce.width,h:ce.height}:xe)});return K.observe(W),pa({w:W.clientWidth,h:W.clientHeight}),()=>K.disconnect()},[]);const vu=A.useRef(new Map),[os,ma]=A.useState(!1);A.useEffect(()=>{const W=window.setTimeout(()=>ma(!0),2500);return()=>window.clearTimeout(W)},[]);const[oo,yr]=A.useState(!1),Zn=A.useRef(null),[Ei,Be]=A.useState(!1),ga=A.useCallback(()=>{Zn.current&&(window.clearTimeout(Zn.current),Zn.current=null),yr(!1)},[]),va=A.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{yr(!0),Zn.current&&window.clearTimeout(Zn.current),Zn.current=window.setTimeout(()=>yr(!1),V$+80)})},[]);A.useEffect(()=>()=>{Zn.current&&window.clearTimeout(Zn.current)},[]);const as=vr.w>0?vr.w*.92:0,ao=vr.h>0?vr.h:0,{nodes:pn,edges:ya}=A.useMemo(()=>f4(n.current,De,as,ao,Tt.current,Wt,hn.current,vu.current,va,os,Ei,ot.current,Br,so,o,Ur,Hr,S),[n.current,n.current.lastSeq,De,as,ao,os,Ei,Wt,Br,o,Ur,Hr,S,ct]),ls=A.useMemo(()=>{const W=new Map;for(const ue of pn){const ce=ue.data;if(!(ce!=null&&ce.sessionId)||ce.exitAt!=null)continue;const ve=ue.width,xe=ue.height;if(ve==null||xe==null)continue;const Pe=ue.position.x,Oe=ue.position.y,Xe=Pe+ve,Ye=Oe+xe,tt=W.get(ce.sessionId);tt?(tt.minX=Math.min(tt.minX,Pe),tt.minY=Math.min(tt.minY,Oe),tt.maxX=Math.max(tt.maxX,Xe),tt.maxY=Math.max(tt.maxY,Ye)):W.set(ce.sessionId,{minX:Pe,minY:Oe,maxX:Xe,maxY:Ye})}const K=[];for(const[ue,ce]of W){const ve=ce.maxX-ce.minX+Rl*2,xe=ce.maxY-ce.minY+Rl*2;K.push({id:`group:${ue}`,type:"sessionGroup",position:{x:ce.minX-Rl,y:ce.minY-Rl},data:{sessionId:ue,w:ve,h:xe},width:ve,height:xe,style:{width:ve,height:xe},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[pn,De]),us=A.useMemo(()=>{const W=[...ls,...pn],K=et.current;return!K||K.size===0?W:W.map(ue=>{const ce=K.get(ue.id);return ce?{...ue,position:ce}:ue})},[ls,pn,$t]),Jn=A.useMemo(()=>{if(!Wt)return null;const W=new Set;for(const K of n.current.agents.values())AC(K,Wt)&&W.add(K.id);return W},[n.current,n.current.lastSeq,Wt]),mn=A.useMemo(()=>{const W=new Set;for(const K of n.current.agents.values())for(const ue of K.tools)W.add(TC(ue.name));return Object.keys(Gg).filter(K=>W.has(K))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(mn.length<=1){wt(!1);return}let W=0;const K=()=>{const ue=$e.current;if(ue&&!document.hidden){const ce=ue.getBoundingClientRect(),ve=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Pe=>Pe.getBoundingClientRect()),xe=B$(ce,ve,8);wt(Pe=>Pe===xe?Pe:xe)}W=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(W)},[mn.length]);const Jt=A.useMemo(()=>{const W=new Map;for(const ue of n.current.agents.values())for(const ce of ue.tools){if(!ce.name.startsWith("mcp__"))continue;const ve=ce.name.slice(5),xe=ve.indexOf("__"),Pe=xe>0?ve.slice(0,xe):ve;W.set(Pe,(W.get(Pe)??0)+1)}const K=[];for(const[ue,ce]of W){let ve=5381;for(let xe=0;xe<ue.length;xe++)ve=(ve<<5)+ve^ue.charCodeAt(xe);K.push({server:ue,count:ce,hue:Math.abs(ve)%360})}return K.sort((ue,ce)=>ce.count-ue.count),K},[n.current,n.current.lastSeq]),Ni=A.useCallback(W=>{io(K=>{const ue=new Set(K);return ue.has(W)?ue.delete(W):ue.add(W),ue})},[]),_t=u?n.current.agents.get(u):null,On=p?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===p)??null:null,lo=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Bg(),Tt.current.clear(),hn.current.clear(),ot.current.clear(),so.current="",Uk(),m(),s()},[s,m]),cs=A.useCallback(()=>{Tt.current.clear(),ot.current.clear(),so.current="",Uk(),s(),window.setTimeout(()=>Gt(500),80)},[s,e,Gt]),Wr=A.useCallback(()=>Gt(500),[Gt]),uo=A.useCallback(W=>{if(pn.length===0)return;const K=pn.slice().sort((xe,Pe)=>xe.position.y-Pe.position.y||xe.position.x-Pe.position.x),ue=u?K.findIndex(xe=>xe.id===u):-1;let ce;ue===-1?ce=W===1?0:K.length-1:ce=(ue+W+K.length)%K.length;const ve=K[ce];ve&&(f(ve.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[ve]})}catch{}Ft.current=Date.now()},30))},[pn,u,f,e]);A.useEffect(()=>{const W=K=>{var ce,ve;const ue=((ce=K.target)==null?void 0:ce.tagName)==="INPUT";if(K.key==="Escape"){ue?K.target.blur():m();return}if(!ue&&!aO(K)){if(K.key==="/"){K.preventDefault(),(ve=es.current)==null||ve.focus();return}K.key===" "&&(K.preventDefault(),Pt(xe=>!xe)),(K.key==="c"||K.key==="C")&&lo(),(K.key==="r"||K.key==="R")&&cs(),(K.key==="f"||K.key==="F")&&Wr(),(K.key==="l"||K.key==="L")&&ye(),(K.key==="h"||K.key==="H")&&ut(xe=>!xe),(K.key==="u"||K.key==="U")&&L(xe=>!xe),(K.key==="a"||K.key==="A")&&we(),(K.key==="j"||K.key==="J")&&uo(1),(K.key==="k"||K.key==="K")&&uo(-1),(K.key==="t"||K.key==="T")&&hr(xe=>xe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[lo,cs,Wr,m,uo]);const ds=n.current.agents.size,fs=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Kt=A.useMemo(()=>{let W=0,K=0,ue=0,ce=0,ve=0,xe=0,Pe=0,Oe=0,Xe=0;for(const Ye of n.current.agents.values()){W+=Ye.usage.inputTokens,K+=Ye.usage.outputTokens,ue+=Ye.usage.cacheReadTokens,ce+=Ye.usage.cacheCreateTokens;const tt=ln(Ye.usage,Ye.model);ve+=tt.total,xe+=tt.input,Pe+=tt.output,Oe+=tt.cacheRead,Xe+=tt.cacheWrite}return{inT:W,outT:K,cacheR:ue,cacheC:ce,sum:W+K,cost:{total:ve,input:xe,output:Pe,cacheRead:Oe,cacheWrite:Xe}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),"agents-deck",de?g.jsxs("button",{type:"button",className:"v stale",onClick:Me,title:de.kind==="restart"?`Running v${de.from}; v${de.to} is installed on disk. Restart to pick it up.`:`Running v${de.from}; v${de.to} is on npm.`,children:["v",de.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):g.jsxs("button",{type:"button",className:"v",onClick:()=>le(!0),title:E!=null&&E.checkDisabled?"Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).":`${E!=null&&E.latest?`npm has v${E.latest}`:"npm not reached yet"}${E!=null&&E.checkedAt?` · checked ${Z$(De-E.checkedAt)}`:""} · click to check now`,children:["v",(E==null?void 0:E.running)??"1.33.56"]})]}),_t&&(()=>{const W=ln(_t.usage,_t.model),K=Math.max(0,((_t.endedAt??De)-_t.startedAt)/1e3),ue=_t.state==="active"?Hl(W.total,K):null,ce=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${_t.label}`,onClick:()=>{try{const ve=pn.find(xe=>xe.id===_t.id);ve&&e.fitView({padding:.35,duration:500,nodes:[ve]}),Ft.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${_t.state}`,children:_t.state==="active"?"live":_t.state}),g.jsx("span",{className:"selected-label",children:_t.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[ze(W.total),ue?g.jsxs("span",{className:"selected-rate",children:[" · ",ue]}):null]}),ce>0&&g.jsxs("span",{className:"selected-extra",children:["+",ce]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:ve=>{ve.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:es,type:"text",placeholder:"Search agents, cwd, tools…",value:Wt,onChange:W=>Lr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Wt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Lr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),g.jsxs("span",{className:"status",role:"status",children:[g.jsx("span",{className:`pill ${F?"live":"dead"}`,title:F?"Receiving events":"SSE disconnected",children:F?"live":"offline"}),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:fs}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:ds}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Kt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Kt.inT.toLocaleString()} out:${Kt.outT.toLocaleString()} cache-r:${Kt.cacheR.toLocaleString()} cache-c:${Kt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:U$(Kt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Jt.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
60
60
  ${Jt.map(W=>` ${W.server}: ${W.count} call${W.count===1?"":"s"}`).join(`
61
61
  `)}`,children:[Jt.slice(0,6).map(W=>g.jsx("span",{className:"mcp-dot",style:{background:`hsl(${W.hue} 65% 65%)`}},W.server)),Jt.length>6&&g.jsxs("span",{className:"mcp-more",children:["+",Jt.length-6]}),g.jsx("span",{className:"lbl",children:"mcp"})]}),Kt.cost.total>0&&(()=>{let W=0,K=0;for(const ve of n.current.agents.values()){if(ve.state!=="active")continue;const xe=ln(ve.usage,ve.model);W+=xe.total,K=Math.max(K,((ve.endedAt??De)-ve.startedAt)/1e3)}const ue=K>0?Hl(W,K):null,ce=`input ${ze(Kt.cost.input)} + output ${ze(Kt.cost.output)} + cache r ${ze(Kt.cost.cacheRead)} + cache w ${ze(Kt.cost.cacheWrite)}${ue?`
62
62
  active burn: ${ue}`:""}`;return g.jsxs("span",{className:"stat",title:ce,children:[g.jsx("span",{className:"count",children:ze(Kt.cost.total)}),g.jsxs("span",{className:"lbl",children:["cost",ue?` · ${ue}`:""]})]})})()]}),g.jsx("button",{className:`btn ${kt?"warn":""}`,onClick:()=>Pt(W=>!W),title:"Pause/resume live updates (Space)",children:kt?`Resume${Ge.current.length?` · ${Ge.current.length}`:""}`:"Pause"}),g.jsx("button",{className:`btn icon-btn ${O?"primary":""}`,onClick:()=>L(W=>!W),title:`${O?"Hide":"Show"} usage panel (U)`,"aria-label":"Toggle usage panel",children:"$"}),M!==null&&g.jsx("button",{className:`btn icon-btn ${M?"primary":""}`,onClick:W=>{if(W.shiftKey&&U>0){X(!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&&(q(K.enabled===!0),ne(K.parked??0))}).catch(()=>{}).finally(()=>X(!1));return}J()},disabled:Y,title:(M?"Sound on turn finish: on — click to remove the hook":"Sound on turn finish: off — click to add a Stop hook")+(I>0?`