agent-dag 1.33.150 → 1.33.151
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.
|
@@ -58,7 +58,7 @@ Error generating stack: `+x.message+`
|
|
|
58
58
|
`)}function xv(e,n,r){const i=(n??r)-e;if(i<1e3)return`${Math.max(0,i)}ms`;const o=Math.floor(i/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 DO({data:e,selected:n}){var h;const r=e.now??Date.now(),i=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(p=>!p.endedAt).length,l=Vv(e.sessionId),u=((h=e.context)==null?void 0:h.currentContextTokens)??0,c=e.kind==="root"&&u>0;return g.jsxs("div",{className:i,style:{"--session-hue":l},children:[g.jsx("span",{className:"accent-stripe"}),g.jsx(po,{type:"target",position:Ae.Left,style:{background:"transparent",border:"none"}}),g.jsxs("div",{className:"head",children:[g.jsxs("div",{className:"title",children:[g.jsx(FO,{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:[c&&e.onOpenContext&&g.jsx(qO,{currentContextTokens:u,modelId:e.model,contextWindow:e.contextWindow,onClick:()=>e.onOpenContext(e.sessionId)}),g.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:xv(e.startedAt,e.endedAt,r)})]})]}),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:li(e.model)})]}),e.waiting&&g.jsx(BO,{waiting:e.waiting,now:r}),e.tools.length>0&&g.jsx(HO,{tools:e.tools,now:r}),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:UO(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&Gv(e.model)&&(()=>{const p=fn(e.usage,e.model);if(p.total<=0)return null;const d=Math.max(0,((e.endedAt??r)-e.startedAt)/1e3),m=e.state==="active"?yu(p.total,d):null,y=$O(e.usage,e.model)+(m?`
|
|
59
59
|
burn: ${m}`:"");return g.jsxs("span",{className:"cost-meta",title:y,children:[g.jsx("b",{children:ze(p.total)}),m&&g.jsx("span",{className:"cost-rate",children:m})]})})()]}),g.jsx(po,{type:"source",position:Ae.Right,style:{background:"transparent",border:"none"}})]})}function FO({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function ju(e){return e.message?e.message:e.kind==="permission"?"Needs your permission":"Waiting for your input"}function zO(e){return e.kind==="permission"?ju(e):"Your turn"}function BO({waiting:e,now:n}){const r=e.kind==="permission",i=ju(e);return g.jsxs("div",{className:r?"waiting-row permission":"waiting-row idle",title:`${i}
|
|
60
60
|
Blocked for ${xv(e.since,void 0,n)} — the answer goes in the terminal, not here.`,children:[r?g.jsx("span",{className:"ap-pulse","aria-hidden":!0}):g.jsx("span",{className:"waiting-dot","aria-hidden":!0}),g.jsx("span",{className:"waiting-said",children:zO(e)}),g.jsx("b",{children:xv(e.since,void 0,n)})]})}function UO(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function HO({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const w=n-y.startedAt;if(w<0||w>=6e4)continue;const N=23-Math.floor(w/2500);N>=0&&N<24&&(l[N]+=1,u+=1)}const c=Math.max(1,...l),h=132,p=14,d=h/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:h,height:p,viewBox:`0 0 ${h} ${p}`,"aria-hidden":!0,children:l.map((y,w)=>{const N=y===0?1.5:Math.max(1.5,y/c*p),_=w===23&&y>0,S=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:w*d+.4,y:p-N,width:Math.max(.5,d-1),height:N,rx:.8,className:S},w)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function li(e){const n=e.replace(/^anthropic\./,"").replace(/[-_]\d{8}(?!\d)/,""),r=n.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(r){const l=r[1][0].toUpperCase()+r[1].slice(1).toLowerCase(),u=r[2].replace(/[-_]/g,".");return`${l} ${u}`}const i=n.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(i)return`GPT-${i[1].replace(/[-_]/g,".")} Codex`;const o=n.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return o?`GPT-${o[1].replace(/[-_]/g,".")}`:e}function Ix(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function WO(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 VO({tool:e,onClose:n}){const r=vo(n),i=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{ref:r,className:"modal",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"tool-modal-title",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",{id:"tool-modal-title",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:WO(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:Ix(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…)":Ix(e.response??e.errorPreview)})]})]})]})})}const Xl=18,Mx=26,GO=12;function YO(e){return KO(e.nodeInternals.values())}function KO(e){const n=new Map;for(const o of e){if(o.type!=="agent")continue;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,h=u+o.width,p=c+o.height,d=n.get(l.sessionId);d?(d.minX=Math.min(d.minX,u),d.minY=Math.min(d.minY,c),d.maxX=Math.max(d.maxX,h),d.maxY=Math.max(d.maxY,p),l.kind==="root"&&(d.label=Px(l)??d.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:h,maxY:p,label:Px(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const i=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${XO(o)}`:l.label;i.push({sessionId:o,label:c,x:l.minX-Xl,y:l.minY-Xl-Mx,w:l.maxX-l.minX+Xl*2,h:l.maxY-l.minY+Xl*2+Mx})}return i}function XO(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function Px(e){if(e.kind==="root")return e.label}function QO(){const{x:e,y:n,zoom:r}=KN(),i=Oa(),o=Qe(YO,ZO);if(o.length<=1)return null;const l=u=>{try{const c=i.getNodes().filter(h=>{const p=h.data;return(p==null?void 0:p.sessionId)===u});if(c.length===0)return;i.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=Vv(u.sessionId),h={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,"--session-hue":c},p={position:"absolute",left:u.x*r+e+16*r,top:(u.y-GO)*r+n,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top","--session-hue":c};return g.jsxs(ue.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:h,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:p,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function ZO(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const i=e[r],o=n[r];if(i.sessionId!==o.sessionId||i.label!==o.label||i.x!==o.x||i.y!==o.y||i.w!==o.w||i.h!==o.h)return!1}return!0}function JO({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 dC=600,e3=4,t3=36,_v=16,n3=60,r3=6,Ox=220,Lx=96,s3=28,i3={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 o3(e){return e.startsWith("mcp__")?"mcp":i3[e]??"other"}const a3={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 qx(e){return e.startsWith("mcp__")?"🔌":a3[e]??"✨"}const l3={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 fC(e){if(!e)return null;let n=e.trim();if(!n)return null;const r=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(r)return fC(r[1]);for(;;){const l=n.match(/^([A-Z_][A-Z0-9_]*=\S*)\s+/);if(!l)break;n=n.slice(l[0].length)}n=n.replace(/^sudo(?:\s+-\S+)*\s+/,""),n=n.replace(/^(?:time|nohup|xargs)\s+/,"");const i=n.match(/^([^\s|;&<>(]+)/);if(!i)return null;let o=i[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function u3(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const i=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(i>=0&&i+1<r.length)return r[i+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const c3=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),d3=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function f3(e,n){return d3.has(e)||e.startsWith("mcp__")?Math.max(Lx,34+n.length*7.5):Lx}function h3(e,n){if(!c3.has(e))return null;const r=u3(n);if(!r)return null;const i=fC(r);return i?{emoji:l3[i]??"⚙️",label:i,category:"shell",detail:r}:null}const p3=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),$x={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:"🗄️"},Dx={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 m3(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),i=r.lastIndexOf("/");return i>=0?r.slice(i+1):r}function g3(e){const n=e.toLowerCase();if(Dx[n])return Dx[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const r=n.lastIndexOf(".");if(r>0&&r<n.length-1){const i=n.slice(r+1);if($x[i])return $x[i]}return"📄"}function v3(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const i=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return i?i[1].trim():null}return typeof r.file_path=="string"?r.file_path:typeof r.notebook_path=="string"?r.notebook_path:typeof r.path=="string"?r.path:e==="Glob"&&typeof r.pattern=="string"?r.pattern:null}function y3(e,n){if(!p3.has(e))return null;const r=v3(e,n);if(!r)return null;const i=m3(r);return i?{emoji:e==="LS"?"📂":g3(i),label:i,category:"file",detail:r}:null}const hC={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 pC(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),r=n.indexOf("__");return r<=0?{server:n,method:""}:{server:n.slice(0,r),method:n.slice(r+2)}}function w3(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}function x3(e,n){const r=pC(e);if(!r)return null;const{server:i,method:o}=r;if(!o)return null;const l=hC[i.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${i} · ${o}`}}function _3(e,n){return h3(e,n)??y3(e,n)??x3(e)}const b3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function S3(e){const n=pC(e);if(n){const i=hC[n.server.toLowerCase()];return i?{emoji:i.emoji,label:i.name}:{emoji:"🔌",label:n.server,hue:w3(n.server)}}const r=b3[e];return r?{emoji:qx(e),label:r}:{emoji:qx(e),label:e}}function k3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function E3(e,n,r){if(r==null)return 1;const i=n-r;return i<0?1:Math.max(0,1-i/dC)}function N3(e,n){const r=[],i=new Set;for(let o=e.length-1;o>=0&&r.length<n;o--){const l=e[o];i.has(l.id)||(i.add(l.id),r.push(l))}return r.reverse()}function C3(e,n,r,i,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>dC)continue;const h=i.get(c.id)??r.get(c.id);if(!h)continue;const p=N3(c.tools,e3);if(p.length===0)continue;const d=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??Ox,Ox),w=(m==null?void 0:m.height)??130,N=h.x,_=h.y,b=N+y,S=_+w/2;p.forEach((k,E)=>{const C=E*t3,I=N+y+n3,O=_+r3+C,A=E3(k,l,d),U=k.inputPreview??"",L=k3(k),P=A<.999,q=S3(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:q.label,emoji:q.emoji,status:L,category:o3(k.name),mcpHue:q.hue,inputPreview:U,fade:A,fading:P,worldX:I,worldY:O,anchorX:b,anchorY:S,spawnDx:b-I,spawnDy:S-(O+_v)});const G=_3(k.name,k.input);if(G){const F=f3(k.name,q.label),T=I+F+s3,B=O,z=I+F,ne=O+_v;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:G.label,emoji:G.emoji,isSub:!0,status:L,category:G.category,inputPreview:G.detail??U,fade:A,fading:P,worldX:T,worldY:B,anchorX:z,anchorY:ne,spawnDx:z-T,spawnDy:0})}})}return u}function R3({agents:e,visibleAgentIds:n,positions:r,pinned:i,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:h,onOpenTool:p}){const d=C3(e,n,r,i,o,h),m=c&&c.size>0?d.filter(y=>!c.has(y.category)):d;return g.jsx(j3,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:p})}function j3({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:i}){const{x:o,y:l,zoom:u}=KN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const h=c.anchorX*u+o,p=c.anchorY*u+l,d=(c.worldX+6)*u+o,m=(c.worldY+_v)*u+l,y=h+(d-h)*.55,w=n!=null&&!n.has(c.agentId),N=r!=null&&!r.has(c.agentId),_=c.fade*(w||N?.14:1);return g.jsx("path",{d:`M ${h} ${p} Q ${y} ${p}, ${d} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const h=c.worldX*u+o,p=c.worldY*u+l,d={left:`${h}px`,top:`${p}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,w=i!=null,N=c.mcpHue!=null?{"--mcp-hue":c.mcpHue}:{},_=n!=null&&!n.has(c.agentId),b=r!=null&&!r.has(c.agentId),S=_||b?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:d,children:g.jsxs("div",{className:`tool-burst cat-${c.category}${c.mcpHue!=null?" mcp-hue":""} status-${c.status}${c.fading?" fading":""}${w?" clickable":""}${c.isSub?" sub":""}${S}`,style:N,title:y,onClick:w?()=>i(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 T3({state:e,sessionId:n,onClose:r}){const i=j.useMemo(()=>I3(e,n),[e,n]),o=j.useRef(null),l=vo(r,{focusRef:o});return i?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{ref:l,className:"modal session-summary",onClick:u=>u.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:i.cwd??i.sessionId,children:i.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",i.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:i.durationLabel}),g.jsx("button",{type:"button",ref:o,className:"btn",onClick:r,"aria-label":"Close (Esc)",title:"Close (Esc)",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(i.cost.total)}),i.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:i.modelChips.map(u=>g.jsx("span",{className:"model-chip",title:u,children:li(u)},u))})]}),g.jsx("div",{className:"ss-hero-right",children:i.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(A3,{cost:i.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:ze(i.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:ze(i.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:ze(i.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:ze(i.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(to,{label:"agents",value:i.agentCount}),g.jsx(to,{label:"subagents",value:i.subagentCount}),g.jsx(to,{label:"tool calls",value:i.toolCount}),g.jsx(to,{label:"prompts",value:i.promptCount}),g.jsx(to,{label:"tokens",value:i.tokensSum.toLocaleString()}),i.errCount>0&&g.jsx(to,{label:"errors",value:i.errCount,tone:"err"})]}),i.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:i.topTools.map(([u,c])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:u}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${c/i.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:c})]},u))})]}),i.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:i.firstPrompt})]})]})]})}):null}function to({label:e,value:n,tone:r}){return g.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[g.jsx("div",{className:"ss-stat-value",children:n}),g.jsx("div",{className:"ss-stat-label",children:e})]})}function A3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function I3(e,n){const r=e.agents.get(n);if(!r)return null;const i=[];for(const E of e.agents.values())E.sessionId===n&&i.push(E);if(i.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,h=0,p=0,d=0,m=0,y,w=1/0,N=0;for(const E of i){const C=fn(E.usage,E.model);o.input+=C.input,o.output+=C.output,o.cacheRead+=C.cacheRead,o.cacheWrite+=C.cacheWrite,o.total+=C.total,E.model&&l.add(E.model),E.kind==="subagent"&&m++,h+=E.prompts.length,!y&&E.prompts.length>0&&(y=E.prompts[0].text),p+=E.usage.inputTokens+E.usage.outputTokens,c+=E.toolCount,w=Math.min(w,E.startedAt),N=Math.max(N,E.endedAt??Date.now());for(const I of E.tools)u.set(I.name,(u.get(I.name)??0)+1),I.ok===!1&&d++}const _=Math.max(0,N-w),b=Math.floor(_/1e3),S=b<60?`${b}s`:b<3600?`${Math.floor(b/60)}m ${String(b%60).padStart(2,"0")}s`:`${Math.floor(b/3600)}h ${Math.floor(b%3600/60)}m`,k=Array.from(u.entries()).sort((E,C)=>C[1]-E[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:S,cost:o,modelChips:Array.from(l),agentCount:i.length,subagentCount:m,toolCount:c,promptCount:h,tokensSum:p,errCount:d,topTools:k,firstPrompt:y}}function Fx(e){return e.waiting?e.waiting.kind==="permission"?0:1:e.state==="active"?2:3}function M3(e,n){const r=[];for(const i of e.agents.values()){if(i.kind!=="root")continue;let o=i.toolCount,l=fn(i.usage,i.model).total,u=i.endedAt??i.startedAt;for(const c of e.agents.values()){if(c.sessionId!==i.sessionId||c.kind==="root")continue;o+=c.toolCount,l+=fn(c.usage,c.model).total;const h=c.endedAt??c.startedAt;h>u&&(u=h)}r.push({sessionId:i.sessionId,label:i.label||i.cwdBasename||"session",cwdBasename:i.cwdBasename,state:i.state,waiting:i.waiting,modelId:i.model,toolCount:o,cost:l,startedAt:i.startedAt,lastActivity:u})}return r.sort((i,o)=>{const l=Fx(i),u=Fx(o);return l!==u?l-u:i.waiting&&o.waiting?i.waiting.since-o.waiting.since:o.lastActivity-i.lastActivity}),r}function zx(e,n,r){const i=(n??r)-e;if(i<1e3)return"<1s";const o=Math.floor(i/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 P3({state:e,now:n,selectedIds:r,onSelect:i,onClose:o}){const l=j.useMemo(()=>M3(e),[e,e.lastSeq,n]),u=l.filter(h=>h.state==="active").length,c=l.filter(h=>{var p;return((p=h.waiting)==null?void 0:p.kind)==="permission"}).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})]}),c>0&&g.jsxs("span",{className:"sl-waiting-count",children:[c," waiting"]}),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(h=>{const p=r.has(h.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${h.state}${p?" selected":""}`,onClick:()=>i(h.sessionId),title:`Focus ${h.label}`,children:[g.jsx("span",{className:`sl-dot state-${h.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:h.label}),h.modelId&&g.jsx("span",{className:"model-chip",title:h.modelId,children:li(h.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:h.toolCount})," tools"]}),h.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:ze(h.cost)})}),h.waiting?g.jsxs("span",{className:"sl-waiting",title:`${ju(h.waiting)}
|
|
61
|
-
Blocked since ${new Date(h.waiting.since).toLocaleTimeString()} · started ${new Date(h.startedAt).toLocaleString()}`,children:["waiting ",zx(h.waiting.since,void 0,n)]}):g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(h.startedAt).toLocaleString()}`,children:zx(h.startedAt,h.state==="active"?void 0:h.lastActivity,n)})]})]})]},h.sessionId)})]})]})}const zt="ccdeck";function Ft(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 Bx(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function O3(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 L3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function q3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/3600),o=Math.floor(r%3600/60);if(i>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return i>0?`${i}h ${o}m`:`${o}m`}function $3(e,n,r,i){const o=Math.max(0,n-i),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const h=100-e,p=l>0?e/l:0,d=p>0?h/p:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(d<o&&d<86400){const y=Math.floor(d/3600),w=Math.floor(d%3600/60);m.runsOutIn=y>0?`${y}h ${w}m`:`${w}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function ei({pct:e,label:n,reset:r,resetAt:i,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),p=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",d=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=i?q3(i,u):null,w=i&&o?$3(c,i,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:p},children:d})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:p,opacity:c===0?.4:1}}),w&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${w.expectedPct}%`,background:w.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(w.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?g.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,w&&g.jsx("span",{className:"qb-pace",style:{color:w.color},children:w.runsOutIn?`runs out in ${w.runsOutIn}`:w.label})]})]})}const D3=6e4;function F3(){const[e,n]=j.useState(null),[r,i]=j.useState(!1),o=j.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/quota?refresh=1":"/api/quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return j.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),D3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function z3(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 mC=6e4;function B3(){const[e,n]=j.useState(null),[r,i]=j.useState(!1),o=j.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return j.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),mC),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function U3(){const[e,n]=j.useState(null),r=j.useRef(null),i=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return j.useEffect(()=>(i(),r.current=window.setInterval(i,mC),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function H3({state:e,now:n,onClose:r}){var A,U;const{quota:i,loading:o,refresh:l}=F3(),{data:u,loading:c,refresh:h}=B3(),{data:p}=U3(),[d,m]=j.useState(()=>Math.floor(Date.now()/1e3));j.useEffect(()=>{const L=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(L)},[]);const{byModel:y,totalCost:w,totalTokens:N,burnRate:_}=j.useMemo(()=>{const L=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let q=0,G=0,F=0,T=0;for(const $ of e.agents.values()){const Q=$.model??"__unknown__",M=fn($.usage,$.model),V=L.get(Q);V?(V.inputTokens+=$.usage.inputTokens,V.outputTokens+=$.usage.outputTokens,V.cacheReadTokens+=$.usage.cacheReadTokens,V.cacheCreateTokens+=$.usage.cacheCreateTokens,V.cost.total+=M.total,V.cost.input+=M.input,V.cost.output+=M.output,V.cost.cacheRead+=M.cacheRead,V.cost.cacheWrite+=M.cacheWrite,V.agentCount++):L.set(Q,{model:Q,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...M},agentCount:1}),P.total+=M.total,P.input+=M.input,P.output+=M.output,P.cacheRead+=M.cacheRead,P.cacheWrite+=M.cacheWrite,q+=$.usage.inputTokens,G+=$.usage.outputTokens,F+=$.usage.cacheReadTokens,T+=$.usage.cacheCreateTokens}const B=Array.from(L.values()).sort(($,Q)=>Q.cost.total-$.cost.total);let z=0,ne=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const Q=fn($.usage,$.model);z+=Q.total,ne=Math.max(ne,(($.endedAt??n)-$.startedAt)/1e3)}const Z=ne>0?yu(z,ne):null;return{byModel:B,totalCost:P,totalTokens:{in:q,out:G,cacheR:F,cacheC:T},burnRate:Z}},[e,e.lastSeq,n]),b=j.useMemo(()=>{const L=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let q=fn(P.usage,P.model).total,G=P.usage.inputTokens,F=P.usage.outputTokens;for(const T of e.agents.values())T.sessionId!==P.sessionId||T.kind==="root"||(q+=fn(T.usage,T.model).total,G+=T.usage.inputTokens,F+=T.usage.outputTokens);L.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:q,inputTokens:G,outputTokens:F})}return L.sort((P,q)=>q.cost-P.cost).slice(0,12)},[e,e.lastSeq]),S=w.total>0,k=N.in+N.out,E=o||c,C=Bx(i==null?void 0:i.fetchedAt,d),I=Bx(u==null?void 0:u.fetchedAt,d),O=()=>{l(),h()};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:E,title:"Refresh Claude + Codex quota",children:E?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"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",C&&!o&&g.jsx("span",{className:"up-section-age",title:O3(i==null?void 0:i.source),children:C})]}),i!=null&&i.ok?g.jsxs("div",{className:"up-quota-bars",children:[i.session5hPct!=null&&g.jsx(ei,{label:"5-hour window",pct:i.session5hPct,reset:i.session5hReset,resetAt:i.session5hResetAt,windowSec:i.session5hWindowSec,nowSec:d}),i.week7dPct!=null&&g.jsx(ei,{label:"7-day window",pct:i.week7dPct,reset:i.week7dReset,resetAt:i.week7dResetAt,windowSec:i.week7dWindowSec,nowSec:d}),i.weekSonnetPct!=null&&g.jsx(ei,{label:"Sonnet (7d)",pct:i.weekSonnetPct,nowSec:d}),i.weekOpusPct!=null&&g.jsx(ei,{label:"Opus (7d)",pct:i.weekOpusPct,nowSec:d})]}):(i==null?void 0:i.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}),I&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:I})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(A=u.windows)==null?void 0:A.map(L=>g.jsx(ei,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,limitReached:u.limitReached&&L.pct>=100,nowSec:d},L.id)),(U=u.extraWindows)==null?void 0:U.map(L=>g.jsx(ei,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,nowSec:d},L.id)),u.creditLimit&&g.jsx(ei,{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:d}),(p==null?void 0:p.ok)&&p.window7d&&p.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Ft(p.window7d.totalTokens)," tokens · ",p.window7d.sessionCount," session",p.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 — ${zt} 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:z3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),S?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:ze(w.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(L3,{cost:w}),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"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]}),N.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Ft(N.cacheR)]}),N.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Ft(N.cacheC)]})]}),y.filter(L=>L.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(L=>L.cost.total>0).map(L=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:L.model,children:li(L.model)}),g.jsx("td",{className:"up-num",children:Ft(L.inputTokens+L.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:ze(L.cost.total)})]},L.model))})]})]}),b.filter(L=>L.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:b.filter(L=>L.cost>0).map(L=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${L.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:L.label}),g.jsx("span",{className:"up-session-tokens",children:Ft(L.inputTokens+L.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:ze(L.cost)})]},L.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"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.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 Ux=18,W3=1100,no=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},V3=Array.from({length:Ux},(e,n)=>{const r=-72+144*n/(Ux-1)+(no(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+no(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+no(n,3)*260),delay:Math.round(no(n,4)*90),dur:760+Math.round(no(n,5)*260),scale:.8+no(n,6)*.45,hue:n%4,round:n%3===0}});function Hx({anchor:e,lifetimeMs:n=W3}){var l;const[r,i]=j.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return j.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();i({x:c.left+c.width/2,y:c.top+c.height/2});const h=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(h)},[e,n,o]),o||!r?null:OI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:V3.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 gC=new Set(["awaiting_url","awaiting_code","registering"]);function G3(e){return e!=null&&gC.has(e)}function vC(e){return e!=null&&e!=="done"&&!gC.has(e)}const Y3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",K3="the sign-in did not complete";function X3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?Y3:K3)}}const Q3="done";function Z3(){let e=!1;return{shouldAnnounce(n){return n!==Q3?(e=!1,!1):e?!1:(e=!0,!0)}}}const Wx={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 ${zt}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},Vx={no_cswap:"claude-swap could not be run — it is not on this deck's PATH. Set AGENTS_DECK_CSWAP to its full path",timeout:"claude-swap took too long and was stopped — try again",switch_failed:"claude-swap refused the switch",bad_account:"that is not an account claude-swap has",unknown_setting:"claude-swap has no such setting",out_of_range:"that value is outside what the setting allows",bad_value:"claude-swap does not accept that value",set_failed:"claude-swap refused the change",command_failed:"claude-swap refused the command"},J3=`claude-swap could not read the login keychain — start ${zt} from a Terminal window rather than a background service`;function bv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(mo(e))?J3:e!=null&&e.reason&&Vx[e.reason]?Vx[e.reason]:(e==null?void 0:e.reason)||n}function mo(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const Gx={no_install:"ccusage is not installed, and AGENTS_DECK_NO_INSTALL=1 forbids fetching it — unset that variable and restart the deck, or install ccusage yourself",timeout:"ccusage took more than 90 seconds and was stopped — a narrower range usually finishes",bad_output:"ccusage ran but printed no usage data — try again, and run ccusage daily --json in a terminal if it keeps happening",run_failed:"ccusage could not report usage — try again",bad_range:"that date range is not a YYYYMMDD date — reopen the modal and pick one of the presets",unreachable:"the deck did not answer — check it is still running, then try again"},eL="ccusage could not be started — npx is not on this deck's PATH. Install Node's npm/npx, or put ccusage on PATH yourself";function tL(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function nL(e,n){return tL(mo(e))?eL:e!=null&&e.reason&&Gx[e.reason]?Gx[e.reason]:(e==null?void 0:e.reason)||n}function au(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&vC(e.state)?e.error:e!=null&&e.reason&&Wx[e.reason]?Wx[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const rL=1500;async function Ql(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Sv=ue.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"})]}));Sv.displayName="SuccessMark";function sL({onClose:e,onChanged:n}){const[r,i]=j.useState("login"),[o,l]=j.useState(null),[u,c]=j.useState(""),[h,p]=j.useState(""),[d,m]=j.useState(!1),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useRef(!1),S=j.useRef(null),k=j.useRef(null),E=j.useRef(null),C=j.useRef(null),I=j.useCallback(()=>{b.current&&Ql({action:"login-cancel"}).catch(()=>{}),e()},[e]),O=vo(I,{focusRef:E}),A=j.useCallback(async()=>{m(!0),w(null),b.current=!0;const B=await Ql({action:"login"}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){w(au(B,"could not start the sign-in"));return}l(B)},[]);j.useEffect(()=>{if(!G3(o==null?void 0:o.state))return;const B=window.setInterval(async()=>{try{const z=await fetch("/api/claude-accounts/login");z.ok&&l(await z.json())}catch{}},rL);return()=>window.clearInterval(B)},[o]);const U=j.useRef(n);U.current=n;const L=j.useRef(Z3());j.useEffect(()=>{var B;(o==null?void 0:o.state)==="awaiting_code"&&((B=S.current)==null||B.focus()),L.current.shouldAnnounce(o==null?void 0:o.state)&&U.current()},[o==null?void 0:o.state]),j.useEffect(()=>{var B;r==="paste"&&((B=k.current)==null||B.focus())},[r]);const P=j.useCallback(async()=>{var z;m(!0),w(null);const B=await Ql({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){w(au(B,"the code was not accepted")),B!=null&&B.state&&l(B),(z=S.current)==null||z.select();return}c(""),l(B)},[u,o]),q=j.useCallback(async()=>{m(!0),w(null);const B=await Ql({action:"import",blob:h}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){w(au(B,"the import failed"));return}p(""),_({added:B.added===!0,num:B.num??null,email:B.email??null}),n()},[h,n]),G=(o==null?void 0:o.state)==="done"?o.account:null,F=vC(o==null?void 0:o.state)||!!(y&&b.current&&!d),T=X3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:I,role:"presentation",children:g.jsxs("div",{ref:O,className:"modal aa-modal",onClick:B=>B.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":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:I,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?G?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:C}),g.jsx(Hx,{anchor:C}),g.jsx("h4",{children:G.added?`Account ${G.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:G.email}),G.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:S,type:"text",value:u,onChange:B=>c(B.target.value),onKeyDown:B=>{B.key==="Enter"&&u.trim()&&!d&&P()},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:d||!u.trim()||o.state==="registering",onClick:P,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."})]})]}):F?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:T.title}),g.jsx("p",{className:"aa-err",children:T.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{b.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||b.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",ref:E,className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:C}),N.added&&g.jsx(Hx,{anchor:C}),g.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:N.added?g.jsxs(g.Fragment,{children:[N.email?g.jsx("strong",{children:N.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:h,onChange:B=>p(B.target.value),onKeyDown:B=>{B.key==="Enter"&&h.trim()&&!d&&q()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:q,children:d?"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."]})]})})]})})}function iL(e,n){const r=new Set(e),i=e.length?Math.max(...e):0;return[...new Set([...e,i+1])].sort((o,l)=>o-l).map(o=>{const l=o===n?"here":r.has(o)?"swap":"free";return{slot:o,kind:l,label:l==="here"?`slot ${o}`:`slot ${o} · ${l}`}})}function oL(e,n,r){if(!(r!=null&&r.ok))return null;const i=Number.isInteger(r.to)?r.to:null;if(i==null)return{menuFor:null,confirmRemove:null,shareFor:null,swapNote:null};const o=r.swapped===!0&&i!==n;return{menuFor:e.menuFor===n?i:o&&e.menuFor===i?n:e.menuFor,confirmRemove:null,shareFor:null,swapNote:o?{at:i,displaced:n}:null}}function aL(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const lL=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function Yx(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function uL(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=mo(n.body);return{text:bv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function Kx(e,n){return n?e!=null&&e.reload&&e.text===n.text&&e.raw===n.raw?e:n:e!=null&&e.reload?null:e}const Xx=15e3,cL=8e3,dL=1800,fL=3e4,hL=[70,80,85,90,95];function pL(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function Qx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function mL(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function gL(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 vL({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),i=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?pL(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:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function yL(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(i=>window.setTimeout(()=>i(!1),500))])}catch{n=!1}if(n)return!0;try{const i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),i.remove()}catch{n=!1}return n}function wL(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function xL({onClose:e}){var re,le,fe;const[n,r]=j.useState(null),[i,o]=j.useState(null),[l,u]=j.useState(null),[c,h]=j.useState(!1),[p,d]=j.useState(null),[m,y]=j.useState(null),[w,N]=j.useState(()=>Math.floor(Date.now()/1e3)),_=j.useRef(null),[b,S]=j.useState(null),[k,E]=j.useState(!1),[C,I]=j.useState(""),[O,A]=j.useState(null),[U,L]=j.useState(null),[P,q]=j.useState(null),[G,F]=j.useState(!1),[T,B]=j.useState(null),z=j.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),fL);try{const[ve,Te]=await Promise.all([fetch(`/api/claude-accounts${te?"?refresh=1":""}`,{signal:ce.signal}),fetch("/api/cswap-auto",{signal:ce.signal})]);ve.ok&&r(await ve.json()),Te.ok&&o(await Te.json());const ye=uL([await Yx(ve),await Yx(Te)]);y(ke=>Kx(ke,ye))}catch{y(ve=>Kx(ve,lL))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),ne=j.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:bv(ve,"command failed"),raw:mo(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=j.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:au(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);j.useEffect(()=>(z(!0),_.current=window.setInterval(()=>z(!1),Xx),()=>{_.current!=null&&window.clearInterval(_.current)}),[z]),j.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const $=((re=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:re.value)??"90",Q=(le=n==null?void 0:n.accounts)==null?void 0:le.find(te=>te.active),M=Q!=null&&Q.lanes.length?Math.max(...Q.lanes.map(te=>te.pct)):null,V=M!=null&&M>=Number($)-15,K=async te=>{d(te),y(null);try{const Ce=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:te})})).json().catch(()=>null);Ce!=null&&Ce.ok||y({text:bv(Ce,"the switch failed"),raw:mo(Ce)}),await z(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},H=async(te,ce)=>{const{commit:Ce,alias:ve}=aL(C,ce);if(Ce){const Te=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await z(!0),!(Te!=null&&Te.ok))return;I(ve)}A(te),window.setTimeout(()=>A(Te=>Te===te?null:Te),dL)},J=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=oL({menuFor:b,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await z(!0),ve){S(ve.menuFor),L(ve.confirmRemove),ve.shareFor==null&&(q(null),F(!1)),B(ve.swapNote);const Te=ve.swapNote;Te&&window.setTimeout(()=>B(ye=>ye===Te?null:ye),cL)}};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:()=>E(!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:()=>z(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m?g.jsxs("div",{className:"ap-empty",role:"alert",children:[g.jsx("span",{title:m.raw||void 0,children:m.text}),g.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",Xx/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>z(!0),children:c?"trying…":"try again"})]}):g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>g.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:te.num}),te.alias&&g.jsx("span",{className:"ap-alias",children:te.alias}),g.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),g.jsx("button",{type:"button",className:`ap-more${b===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":b===te.num,"aria-controls":b===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{S(b===te.num?null:te.num),I(te.alias??""),L(null),q(null),F(!1),B(null),A(null)},children:"⋯"}),te.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:p!=null||te.disabled,onClick:()=>K(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:p===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>g.jsx(vL,{lane:ce,nowSec:w},ce.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=gL(te.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>E(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((i==null?void 0:i.enabled)||(i==null?void 0:i.external))&&!te.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>ne({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>z(!0)),title:te.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:te.disabled?"held out":"in rotation"}),te.fetchedAt?g.jsxs("span",{className:`ap-age${te.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 ",Qx(te.fetchedAt,w),mL(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),b===te.num&&g.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[g.jsxs("div",{className:"ap-manage-name",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:C,onChange:ce=>I(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&H(te.num,te.alias)},placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>H(te.num,te.alias),title:"A short name to show instead of the email",children:O===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>J(te.num,Number(ce.target.value)),children:iL((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>g.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${zt}. The share carries a live login and expires in 10 minutes.`,onClick:async()=>{F(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&q({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${U===te.num?" armed":""}`,disabled:l!=null,title:U===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(U!==te.num){L(te.num),window.setTimeout(()=>L(ce=>ce===te.num?null:ce),4e3);return}L(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{S(null),z(!0)})},children:U===te.num?"confirm":"remove"})]}),(T==null?void 0:T.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Te=>Te.num===T.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return g.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${T.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${T.displaced}.`,children:["swapped with slot ",T.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=wL(P.expiresAt,w),Ce=ce.tone==="gone";return g.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:P.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){F(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&q({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await yL(P.blob)&&(F(!0),window.setTimeout(()=>F(!1),1800))},children:Ce?"make a new share":G?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.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:[M!=null&&g.jsxs("span",{className:`ap-auto-now${V?" near":""}`,children:[Math.round(M),"%"]}),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:$,disabled:l!=null,onChange:te=>ne({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>z(!0)),children:hL.map(te=>g.jsxs("option",{value:te,children:[te,"%"]},te))})}),g.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>ne({action:"enable",enabled:!i.enabled},"enable").then(()=>z(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.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",i.enabled?" — this toggle takes over when you stop it.":"."]}),i.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",Qx(i.lastTick.at,w)]})})]}),m&&g.jsxs("div",{className:"ap-failure",role:"alert",children:[g.jsx("span",{className:"ap-failure-text",title:m.raw||void 0,children:m.text}),g.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),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})`:"","."]})]})}),k&&g.jsx(sL,{onClose:()=>E(!1),onChanged:()=>z(!0)})]})}const _L=3e4;function bL({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function SL({bundle:e,running:n,pending:r,lastTried:i}){return n?bL({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function kL(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function EL({asked:e,reported:n}){return n?n!==e:!1}function NL(e){const n=e.thresholdMs??_L;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 CL({agentCount:e,onConfirm:n,onCancel:r}){const i=j.useRef(null),o=vo(r,{focusRef:i,layer:_O}),l=e===0?"This deletes the server's event log":`This removes ${e===1?"the one agent":`all ${e} agents`} on the canvas and deletes the server's event log`;return g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{ref:o,className:"modal clear-confirm",onClick:u=>u.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"status-dot err","aria-hidden":!0}),g.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),g.jsxs("section",{className:"modal-body",children:[g.jsxs("p",{className:"modal-note",children:[l," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),g.jsxs("div",{className:"cc-actions",children:[g.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),g.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function RL(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function jL(e){return e.slice().sort((n,r)=>n.y-r.y||n.x-r.x)}function TL(e,n,r){var u;if(e.length===0)return null;const i=jL(e),o=n?i.findIndex(c=>c.id===n):-1,l=o===-1?r===1?0:i.length-1:(o+r+i.length)%i.length;return((u=i[l])==null?void 0:u.id)??null}const AL=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Escape","Delete","Backspace"]);function IL(e,n){return n==null?{kind:"deck",nodeId:null}:e.key==="Enter"||e.key===" "?{kind:"activate",nodeId:n,additive:e.shiftKey}:AL.has(e.key)?{kind:"node",nodeId:n}:{kind:"deck",nodeId:n}}const ML=new Set(["","BODY","HTML","#DOCUMENT"]);function PL(e){return!e||Yv(e)?!1:!ML.has(String(e.tagName??"").toUpperCase())}function Zl(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function OL(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function yC(e,n,r){return!n.has(e)||r.has(e)}function LL(e,n,r,i){return!n.has(e)&&yC(e,r,i)}function qL(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function $L(e,n,r,i){r.set(e,n),i.delete(e)}const DL=40,FL=120;function zL(e,n){let r=null,i=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(h,p,d)=>{if(r!=null){if(i<=h)return;u()}const m=Math.min(d,Math.max(0,h-p));i=h,r=n.setTimeout(l,m)};return{live(h=DL){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=FL){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function BL(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const i=n;return n=[],i}}}const UL="1",Zx="agent-dag.schema",HL=["agent-dag.layout","agent-dag.viewport"];function wC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function WL(e,n=UL){let r=null;try{r=e.getItem(Zx)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of HL)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(Zx,n)}catch{}return i}const xC="agent-dag.theme";function VL(e){return e==="light"?"light":"dark"}function GL(){return VL(wC(xC))}function YL({waiting:e,running:n}){return{title:e>0?`(${e}) ${zt}`:zt,icon:e>0?"waiting":n>0?"running":"idle"}}const Ld={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function qd(e,n){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">${n==="waiting"?`<circle cx="16" cy="16" r="14.5" fill="${e}"/>`:`<circle cx="16" cy="16" r="12" fill="none" stroke="${e}" stroke-width="5"/>`+(n==="running"?`<circle cx="16" cy="16" r="5" fill="${e}"/>`:"")}</svg>`}const KL=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(qd(Ld.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(qd(Ld.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(qd(Ld.idle,"idle"))}`});function XL(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function QL(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function ZL(e){return!e.answer||e.answer.range!==e.want?{phase:"busy",stale:!1}:e.answer.ok?{phase:e.answer.days>0?"chart":"empty",stale:e.loading}:{phase:"error",stale:e.loading}}function Jl(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"}const JL=[7,14,30,90];function eq(e){const[n,r]=j.useState(null),[i,o]=j.useState(!1),l=j.useRef(XL()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${QL(p)}${c?"&refresh=1":""}`;fetch(m).then(y=>y.json()).then(y=>{h()&&r({range:p,resp:y})}).catch(()=>{h()&&r({range:p,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{h()&&o(!1)})};return j.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function tq({onClose:e}){var C,I,O;const[n,r]=j.useState(30),[i,o]=j.useState(null),{landed:l,loading:u,reload:c}=eq(n),h=j.useRef(null),p=vo(e,{focusRef:h}),d=ZL({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((C=l.resp.days)==null?void 0:C.length)??0}}),m=d.phase==="chart"?l.resp.days??[]:[],y=j.useMemo(()=>m.reduce((A,U)=>Math.max(A,U.totalCost),0),[m]),{totalCost:w,totalTok:N,inOut:_,cacheRead:b,modelCosts:S}=j.useMemo(()=>{let A=0,U=0,L=0,P=0;const q=new Map;for(const G of m){A+=G.totalCost,U+=G.totalTokens,L+=G.inputTokens+G.outputTokens,P+=G.cacheReadTokens;for(const F of G.modelBreakdowns)q.set(F.modelName,(q.get(F.modelName)??0)+F.cost)}return{totalCost:A,totalTok:U,inOut:L,cacheRead:P,modelCosts:q}},[m]),k=j.useMemo(()=>Array.from(S.entries()).sort((A,U)=>U[1]-A[1]),[S]),E=i?m.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{ref:p,className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-modal":"true","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:JL.map(A=>g.jsxs("button",{role:"tab","aria-selected":n===A,className:`uh-range-btn${n===A?" on":""}`,onClick:()=>{r(A),o(null)},children:[A,"d"]},A))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),g.jsx("button",{ref:h,className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),d.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):d.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:mo(l.resp)||void 0,children:[nL(l.resp,"ccusage did not report usage"),g.jsx("div",{children:g.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):d.phase==="empty"?g.jsx("div",{className:`uh-status${d.stale?" uh-stale":""}`,"aria-busy":d.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:d.stale?"uh-stale":void 0,"aria-busy":d.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(eu,{label:"total cost",val:ze(w),accent:!0}),g.jsx(eu,{label:"tokens",val:Ft(N)}),g.jsx(eu,{label:"input+output",val:Ft(_)}),g.jsx(eu,{label:"cache reads",val:Ft(b)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:m.map(A=>{const U=y>0?A.totalCost/y*100:0,L=A.period===i;return g.jsxs("button",{className:`uh-bar-col${L?" sel":""}`,onClick:()=>o(L?null:A.period),title:`${A.period} · ${ze(A.totalCost)}`,style:{flexBasis:`${100/m.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(U,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((P,q)=>q.cost-P.cost).map(P=>{const q=A.totalCost>0?P.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${q}%`,background:Jl(P.modelName)}},P.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:k.map(([A,U])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Jl(A)}}),li(A)," ",g.jsx("span",{className:"uh-legend-cost",children:ze(U)})]},A))}),E&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:E.period}),g.jsx("span",{className:"uh-detail-cost",children:ze(E.totalCost)}),(O=(I=E.metadata)==null?void 0:I.agents)!=null&&O.length?g.jsx("span",{className:"uh-detail-agents",children:E.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(tu,{label:"input",val:Ft(E.inputTokens)}),g.jsx(tu,{label:"output",val:Ft(E.outputTokens)}),g.jsx(tu,{label:"cache write",val:Ft(E.cacheCreationTokens)}),g.jsx(tu,{label:"cache read",val:Ft(E.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:E.modelBreakdowns.slice().sort((A,U)=>U.cost-A.cost).map(A=>{const U=E.totalCost>0?A.cost/E.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:Jl(A.modelName)}}),li(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${U}%`,background:Jl(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:ze(A.cost)})]},A.modelName)})})]})]})]})})}function eu({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function tu({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 Kv(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 $d,Jx;function nq(){if(Jx)return $d;Jx=1;function e(){this.__data__=[],this.size=0}return $d=e,$d}var Dd,e_;function yo(){if(e_)return Dd;e_=1;function e(n,r){return n===r||n!==n&&r!==r}return Dd=e,Dd}var Fd,t_;function Tu(){if(t_)return Fd;t_=1;var e=yo();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Fd=n,Fd}var zd,n_;function rq(){if(n_)return zd;n_=1;var e=Tu(),n=Array.prototype,r=n.splice;function i(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return zd=i,zd}var Bd,r_;function sq(){if(r_)return Bd;r_=1;var e=Tu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Bd=n,Bd}var Ud,s_;function iq(){if(s_)return Ud;s_=1;var e=Tu();function n(r){return e(this.__data__,r)>-1}return Ud=n,Ud}var Hd,i_;function oq(){if(i_)return Hd;i_=1;var e=Tu();function n(r,i){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,i])):o[l][1]=i,this}return Hd=n,Hd}var Wd,o_;function Au(){if(o_)return Wd;o_=1;var e=nq(),n=rq(),r=sq(),i=iq(),o=oq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Wd=l,Wd}var Vd,a_;function aq(){if(a_)return Vd;a_=1;var e=Au();function n(){this.__data__=new e,this.size=0}return Vd=n,Vd}var Gd,l_;function lq(){if(l_)return Gd;l_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return Gd=e,Gd}var Yd,u_;function uq(){if(u_)return Yd;u_=1;function e(n){return this.__data__.get(n)}return Yd=e,Yd}var Kd,c_;function cq(){if(c_)return Kd;c_=1;function e(n){return this.__data__.has(n)}return Kd=e,Kd}var Xd,d_;function _C(){if(d_)return Xd;d_=1;var e=typeof $l=="object"&&$l&&$l.Object===Object&&$l;return Xd=e,Xd}var Qd,f_;function tr(){if(f_)return Qd;f_=1;var e=_C(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return Qd=r,Qd}var Zd,h_;function wo(){if(h_)return Zd;h_=1;var e=tr(),n=e.Symbol;return Zd=n,Zd}var Jd,p_;function dq(){if(p_)return Jd;p_=1;var e=wo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),h=u[o];try{u[o]=void 0;var p=!0}catch{}var d=i.call(u);return p&&(c?u[o]=h:delete u[o]),d}return Jd=l,Jd}var ef,m_;function fq(){if(m_)return ef;m_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return ef=r,ef}var tf,g_;function ui(){if(g_)return tf;g_=1;var e=wo(),n=dq(),r=fq(),i="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:i:l&&l in Object(c)?n(c):r(c)}return tf=u,tf}var nf,v_;function Ln(){if(v_)return nf;v_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return nf=e,nf}var rf,y_;function qa(){if(y_)return rf;y_=1;var e=ui(),n=Ln(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var h=e(c);return h==i||h==o||h==r||h==l}return rf=u,rf}var sf,w_;function hq(){if(w_)return sf;w_=1;var e=tr(),n=e["__core-js_shared__"];return sf=n,sf}var of,x_;function pq(){if(x_)return of;x_=1;var e=hq(),n=(function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function r(i){return!!n&&n in i}return of=r,of}var af,__;function bC(){if(__)return af;__=1;var e=Function.prototype,n=e.toString;function r(i){if(i!=null){try{return n.call(i)}catch{}try{return i+""}catch{}}return""}return af=r,af}var lf,b_;function mq(){if(b_)return lf;b_=1;var e=qa(),n=pq(),r=Ln(),i=bC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,h=u.toString,p=c.hasOwnProperty,d=RegExp("^"+h.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var w=e(y)?d:l;return w.test(i(y))}return lf=m,lf}var uf,S_;function gq(){if(S_)return uf;S_=1;function e(n,r){return n==null?void 0:n[r]}return uf=e,uf}var cf,k_;function ci(){if(k_)return cf;k_=1;var e=mq(),n=gq();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return cf=r,cf}var df,E_;function Xv(){if(E_)return df;E_=1;var e=ci(),n=tr(),r=e(n,"Map");return df=r,df}var ff,N_;function Iu(){if(N_)return ff;N_=1;var e=ci(),n=e(Object,"create");return ff=n,ff}var hf,C_;function vq(){if(C_)return hf;C_=1;var e=Iu();function n(){this.__data__=e?e(null):{},this.size=0}return hf=n,hf}var pf,R_;function yq(){if(R_)return pf;R_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return pf=e,pf}var mf,j_;function wq(){if(j_)return mf;j_=1;var e=Iu(),n="__lodash_hash_undefined__",r=Object.prototype,i=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return i.call(u,l)?u[l]:void 0}return mf=o,mf}var gf,T_;function xq(){if(T_)return gf;T_=1;var e=Iu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return gf=i,gf}var vf,A_;function _q(){if(A_)return vf;A_=1;var e=Iu(),n="__lodash_hash_undefined__";function r(i,o){var l=this.__data__;return this.size+=this.has(i)?0:1,l[i]=e&&o===void 0?n:o,this}return vf=r,vf}var yf,I_;function bq(){if(I_)return yf;I_=1;var e=vq(),n=yq(),r=wq(),i=xq(),o=_q();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,yf=l,yf}var wf,M_;function Sq(){if(M_)return wf;M_=1;var e=bq(),n=Au(),r=Xv();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return wf=i,wf}var xf,P_;function kq(){if(P_)return xf;P_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return xf=e,xf}var _f,O_;function Mu(){if(O_)return _f;O_=1;var e=kq();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return _f=n,_f}var bf,L_;function Eq(){if(L_)return bf;L_=1;var e=Mu();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return bf=n,bf}var Sf,q_;function Nq(){if(q_)return Sf;q_=1;var e=Mu();function n(r){return e(this,r).get(r)}return Sf=n,Sf}var kf,$_;function Cq(){if($_)return kf;$_=1;var e=Mu();function n(r){return e(this,r).has(r)}return kf=n,kf}var Ef,D_;function Rq(){if(D_)return Ef;D_=1;var e=Mu();function n(r,i){var o=e(this,r),l=o.size;return o.set(r,i),this.size+=o.size==l?0:1,this}return Ef=n,Ef}var Nf,F_;function Qv(){if(F_)return Nf;F_=1;var e=Sq(),n=Eq(),r=Nq(),i=Cq(),o=Rq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Nf=l,Nf}var Cf,z_;function jq(){if(z_)return Cf;z_=1;var e=Au(),n=Xv(),r=Qv(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var h=c.__data__;if(!n||h.length<i-1)return h.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(h)}return c.set(l,u),this.size=c.size,this}return Cf=o,Cf}var Rf,B_;function Pu(){if(B_)return Rf;B_=1;var e=Au(),n=aq(),r=lq(),i=uq(),o=cq(),l=jq();function u(c){var h=this.__data__=new e(c);this.size=h.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,Rf=u,Rf}var jf,U_;function Zv(){if(U_)return jf;U_=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o&&r(n[i],i,n)!==!1;);return n}return jf=e,jf}var Tf,H_;function SC(){if(H_)return Tf;H_=1;var e=ci(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return Tf=n,Tf}var Af,W_;function Ou(){if(W_)return Af;W_=1;var e=SC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Af=n,Af}var If,V_;function Lu(){if(V_)return If;V_=1;var e=Ou(),n=yo(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var h=l[u];(!(i.call(l,u)&&n(h,c))||c===void 0&&!(u in l))&&e(l,u,c)}return If=o,If}var Mf,G_;function $a(){if(G_)return Mf;G_=1;var e=Lu(),n=Ou();function r(i,o,l,u){var c=!l;l||(l={});for(var h=-1,p=o.length;++h<p;){var d=o[h],m=u?u(l[d],i[d],d,l,i):void 0;m===void 0&&(m=i[d]),c?n(l,d,m):e(l,d,m)}return l}return Mf=r,Mf}var Pf,Y_;function Tq(){if(Y_)return Pf;Y_=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Pf=e,Pf}var Of,K_;function vr(){if(K_)return Of;K_=1;function e(n){return n!=null&&typeof n=="object"}return Of=e,Of}var Lf,X_;function Aq(){if(X_)return Lf;X_=1;var e=ui(),n=vr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Lf=i,Lf}var qf,Q_;function Da(){if(Q_)return qf;Q_=1;var e=Aq(),n=vr(),r=Object.prototype,i=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&i.call(u,"callee")&&!o.call(u,"callee")};return qf=l,qf}var $f,Z_;function bt(){if(Z_)return $f;Z_=1;var e=Array.isArray;return $f=e,$f}var va={exports:{}},Df,J_;function Iq(){if(J_)return Df;J_=1;function e(){return!1}return Df=e,Df}va.exports;var e1;function xo(){return e1||(e1=1,(function(e,n){var r=tr(),i=Iq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,h=c?c.isBuffer:void 0,p=h||i;e.exports=p})(va,va.exports)),va.exports}var Ff,t1;function qu(){if(t1)return Ff;t1=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(i,o){var l=typeof i;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(i))&&i>-1&&i%1==0&&i<o}return Ff=r,Ff}var zf,n1;function Jv(){if(n1)return zf;n1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return zf=n,zf}var Bf,r1;function Mq(){if(r1)return Bf;r1=1;var e=ui(),n=Jv(),r=vr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",h="[object Function]",p="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",w="[object Set]",N="[object String]",_="[object WeakMap]",b="[object ArrayBuffer]",S="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",C="[object Int8Array]",I="[object Int16Array]",O="[object Int32Array]",A="[object Uint8Array]",U="[object Uint8ClampedArray]",L="[object Uint16Array]",P="[object Uint32Array]",q={};q[k]=q[E]=q[C]=q[I]=q[O]=q[A]=q[U]=q[L]=q[P]=!0,q[i]=q[o]=q[b]=q[l]=q[S]=q[u]=q[c]=q[h]=q[p]=q[d]=q[m]=q[y]=q[w]=q[N]=q[_]=!1;function G(F){return r(F)&&n(F.length)&&!!q[e(F)]}return Bf=G,Bf}var Uf,s1;function $u(){if(s1)return Uf;s1=1;function e(n){return function(r){return n(r)}}return Uf=e,Uf}var ya={exports:{}};ya.exports;var i1;function ey(){return i1||(i1=1,(function(e,n){var r=_C(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l&&r.process,c=(function(){try{var h=o&&o.require&&o.require("util").types;return h||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(ya,ya.exports)),ya.exports}var Hf,o1;function Fa(){if(o1)return Hf;o1=1;var e=Mq(),n=$u(),r=ey(),i=r&&r.isTypedArray,o=i?n(i):e;return Hf=o,Hf}var Wf,a1;function kC(){if(a1)return Wf;a1=1;var e=Tq(),n=Da(),r=bt(),i=xo(),o=qu(),l=Fa(),u=Object.prototype,c=u.hasOwnProperty;function h(p,d){var m=r(p),y=!m&&n(p),w=!m&&!y&&i(p),N=!m&&!y&&!w&&l(p),_=m||y||w||N,b=_?e(p.length,String):[],S=b.length;for(var k in p)(d||c.call(p,k))&&!(_&&(k=="length"||w&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,S)))&&b.push(k);return b}return Wf=h,Wf}var Vf,l1;function Du(){if(l1)return Vf;l1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return Vf=n,Vf}var Gf,u1;function EC(){if(u1)return Gf;u1=1;function e(n,r){return function(i){return n(r(i))}}return Gf=e,Gf}var Yf,c1;function Pq(){if(c1)return Yf;c1=1;var e=EC(),n=e(Object.keys,Object);return Yf=n,Yf}var Kf,d1;function ty(){if(d1)return Kf;d1=1;var e=Du(),n=Pq(),r=Object.prototype,i=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))i.call(l,c)&&c!="constructor"&&u.push(c);return u}return Kf=o,Kf}var Xf,f1;function Vr(){if(f1)return Xf;f1=1;var e=qa(),n=Jv();function r(i){return i!=null&&n(i.length)&&!e(i)}return Xf=r,Xf}var Qf,h1;function ks(){if(h1)return Qf;h1=1;var e=kC(),n=ty(),r=Vr();function i(o){return r(o)?e(o):n(o)}return Qf=i,Qf}var Zf,p1;function Oq(){if(p1)return Zf;p1=1;var e=$a(),n=ks();function r(i,o){return i&&e(o,n(o),i)}return Zf=r,Zf}var Jf,m1;function Lq(){if(m1)return Jf;m1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return Jf=e,Jf}var eh,g1;function qq(){if(g1)return eh;g1=1;var e=Ln(),n=Du(),r=Lq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),h=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||h.push(p);return h}return eh=l,eh}var th,v1;function di(){if(v1)return th;v1=1;var e=kC(),n=qq(),r=Vr();function i(o){return r(o)?e(o,!0):n(o)}return th=i,th}var nh,y1;function $q(){if(y1)return nh;y1=1;var e=$a(),n=di();function r(i,o){return i&&e(o,n(o),i)}return nh=r,nh}var wa={exports:{}};wa.exports;var w1;function NC(){return w1||(w1=1,(function(e,n){var r=tr(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function h(p,d){if(d)return p.slice();var m=p.length,y=c?c(m):new p.constructor(m);return p.copy(y),y}e.exports=h})(wa,wa.exports)),wa.exports}var rh,x1;function CC(){if(x1)return rh;x1=1;function e(n,r){var i=-1,o=n.length;for(r||(r=Array(o));++i<o;)r[i]=n[i];return r}return rh=e,rh}var sh,_1;function RC(){if(_1)return sh;_1=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=0,u=[];++i<o;){var c=n[i];r(c,i,n)&&(u[l++]=c)}return u}return sh=e,sh}var ih,b1;function jC(){if(b1)return ih;b1=1;function e(){return[]}return ih=e,ih}var oh,S1;function ny(){if(S1)return oh;S1=1;var e=RC(),n=jC(),r=Object.prototype,i=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return i.call(u,c)}))}:n;return oh=l,oh}var ah,k1;function Dq(){if(k1)return ah;k1=1;var e=$a(),n=ny();function r(i,o){return e(i,n(i),o)}return ah=r,ah}var lh,E1;function ry(){if(E1)return lh;E1=1;function e(n,r){for(var i=-1,o=r.length,l=n.length;++i<o;)n[l+i]=r[i];return n}return lh=e,lh}var uh,N1;function Fu(){if(N1)return uh;N1=1;var e=EC(),n=e(Object.getPrototypeOf,Object);return uh=n,uh}var ch,C1;function TC(){if(C1)return ch;C1=1;var e=ry(),n=Fu(),r=ny(),i=jC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return ch=l,ch}var dh,R1;function Fq(){if(R1)return dh;R1=1;var e=$a(),n=TC();function r(i,o){return e(i,n(i),o)}return dh=r,dh}var fh,j1;function AC(){if(j1)return fh;j1=1;var e=ry(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return fh=r,fh}var hh,T1;function IC(){if(T1)return hh;T1=1;var e=AC(),n=ny(),r=ks();function i(o){return e(o,r,n)}return hh=i,hh}var ph,A1;function zq(){if(A1)return ph;A1=1;var e=AC(),n=TC(),r=di();function i(o){return e(o,r,n)}return ph=i,ph}var mh,I1;function Bq(){if(I1)return mh;I1=1;var e=ci(),n=tr(),r=e(n,"DataView");return mh=r,mh}var gh,M1;function Uq(){if(M1)return gh;M1=1;var e=ci(),n=tr(),r=e(n,"Promise");return gh=r,gh}var vh,P1;function MC(){if(P1)return vh;P1=1;var e=ci(),n=tr(),r=e(n,"Set");return vh=r,vh}var yh,O1;function Hq(){if(O1)return yh;O1=1;var e=ci(),n=tr(),r=e(n,"WeakMap");return yh=r,yh}var wh,L1;function _o(){if(L1)return wh;L1=1;var e=Bq(),n=Xv(),r=Uq(),i=MC(),o=Hq(),l=ui(),u=bC(),c="[object Map]",h="[object Object]",p="[object Promise]",d="[object Set]",m="[object WeakMap]",y="[object DataView]",w=u(e),N=u(n),_=u(r),b=u(i),S=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=p||i&&k(new i)!=d||o&&k(new o)!=m)&&(k=function(E){var C=l(E),I=C==h?E.constructor:void 0,O=I?u(I):"";if(O)switch(O){case w:return y;case N:return c;case _:return p;case b:return d;case S:return m}return C}),wh=k,wh}var xh,q1;function Wq(){if(q1)return xh;q1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i){var o=i.length,l=new i.constructor(o);return o&&typeof i[0]=="string"&&n.call(i,"index")&&(l.index=i.index,l.input=i.input),l}return xh=r,xh}var _h,$1;function PC(){if($1)return _h;$1=1;var e=tr(),n=e.Uint8Array;return _h=n,_h}var bh,D1;function sy(){if(D1)return bh;D1=1;var e=PC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return bh=n,bh}var Sh,F1;function Vq(){if(F1)return Sh;F1=1;var e=sy();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Sh=n,Sh}var kh,z1;function Gq(){if(z1)return kh;z1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return kh=n,kh}var Eh,B1;function Yq(){if(B1)return Eh;B1=1;var e=wo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return Eh=i,Eh}var Nh,U1;function OC(){if(U1)return Nh;U1=1;var e=sy();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Nh=n,Nh}var Ch,H1;function Kq(){if(H1)return Ch;H1=1;var e=sy(),n=Vq(),r=Gq(),i=Yq(),o=OC(),l="[object Boolean]",u="[object Date]",c="[object Map]",h="[object Number]",p="[object RegExp]",d="[object Set]",m="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",b="[object Float64Array]",S="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",C="[object Uint8Array]",I="[object Uint8ClampedArray]",O="[object Uint16Array]",A="[object Uint32Array]";function U(L,P,q){var G=L.constructor;switch(P){case w:return e(L);case l:case u:return new G(+L);case N:return n(L,q);case _:case b:case S:case k:case E:case C:case I:case O:case A:return o(L,q);case c:return new G;case h:case m:return new G(L);case p:return r(L);case d:return new G;case y:return i(L)}}return Ch=U,Ch}var Rh,W1;function LC(){if(W1)return Rh;W1=1;var e=Ln(),n=Object.create,r=(function(){function i(){}return function(o){if(!e(o))return{};if(n)return n(o);i.prototype=o;var l=new i;return i.prototype=void 0,l}})();return Rh=r,Rh}var jh,V1;function qC(){if(V1)return jh;V1=1;var e=LC(),n=Fu(),r=Du();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return jh=i,jh}var Th,G1;function Xq(){if(G1)return Th;G1=1;var e=_o(),n=vr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return Th=i,Th}var Ah,Y1;function Qq(){if(Y1)return Ah;Y1=1;var e=Xq(),n=$u(),r=ey(),i=r&&r.isMap,o=i?n(i):e;return Ah=o,Ah}var Ih,K1;function Zq(){if(K1)return Ih;K1=1;var e=_o(),n=vr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Ih=i,Ih}var Mh,X1;function Jq(){if(X1)return Mh;X1=1;var e=Zq(),n=$u(),r=ey(),i=r&&r.isSet,o=i?n(i):e;return Mh=o,Mh}var Ph,Q1;function $C(){if(Q1)return Ph;Q1=1;var e=Pu(),n=Zv(),r=Lu(),i=Oq(),o=$q(),l=NC(),u=CC(),c=Dq(),h=Fq(),p=IC(),d=zq(),m=_o(),y=Wq(),w=Kq(),N=qC(),_=bt(),b=xo(),S=Qq(),k=Ln(),E=Jq(),C=ks(),I=di(),O=1,A=2,U=4,L="[object Arguments]",P="[object Array]",q="[object Boolean]",G="[object Date]",F="[object Error]",T="[object Function]",B="[object GeneratorFunction]",z="[object Map]",ne="[object Number]",Z="[object Object]",$="[object RegExp]",Q="[object Set]",M="[object String]",V="[object Symbol]",K="[object WeakMap]",H="[object ArrayBuffer]",J="[object DataView]",re="[object Float32Array]",le="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Te="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[L]=ke[P]=ke[H]=ke[J]=ke[q]=ke[G]=ke[re]=ke[le]=ke[fe]=ke[te]=ke[ce]=ke[z]=ke[ne]=ke[Z]=ke[$]=ke[Q]=ke[M]=ke[V]=ke[Ce]=ke[ve]=ke[Te]=ke[ye]=!0,ke[F]=ke[T]=ke[K]=!1;function Ke(we,_e,Be,ft,ht,He){var De,Je=_e&O,Xe=_e&A,vt=_e&U;if(Be&&(De=ht?Be(we,ft,ht,He):Be(we)),De!==void 0)return De;if(!k(we))return we;var ot=_(we);if(ot){if(De=y(we),!Je)return u(we,De)}else{var yt=m(we),Kt=yt==T||yt==B;if(b(we))return l(we,Je);if(yt==Z||yt==L||Kt&&!ht){if(De=Xe||Kt?{}:N(we),!Je)return Xe?h(we,o(De,we)):c(we,i(De,we))}else{if(!ke[yt])return ht?we:{};De=w(we,yt,Je)}}He||(He=new e);var Mt=He.get(we);if(Mt)return Mt;He.set(we,De),E(we)?we.forEach(function(pt){De.add(Ke(pt,_e,Be,pt,we,He))}):S(we)&&we.forEach(function(pt,mt){De.set(mt,Ke(pt,_e,Be,mt,we,He))});var Ze=vt?Xe?d:p:Xe?I:C,wt=ot?void 0:Ze(we);return n(wt||we,function(pt,mt){wt&&(mt=pt,pt=we[mt]),r(De,mt,Ke(pt,_e,Be,mt,we,He))}),De}return Ph=Ke,Ph}var Oh,Z1;function e$(){if(Z1)return Oh;Z1=1;var e=$C(),n=4;function r(i){return e(i,n)}return Oh=r,Oh}var Lh,J1;function iy(){if(J1)return Lh;J1=1;function e(n){return function(){return n}}return Lh=e,Lh}var qh,eb;function t$(){if(eb)return qh;eb=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),h=c.length;h--;){var p=c[n?h:++l];if(i(u[p],p,u)===!1)break}return r}}return qh=e,qh}var $h,tb;function oy(){if(tb)return $h;tb=1;var e=t$(),n=e();return $h=n,$h}var Dh,nb;function ay(){if(nb)return Dh;nb=1;var e=oy(),n=ks();function r(i,o){return i&&e(i,o,n)}return Dh=r,Dh}var Fh,rb;function n$(){if(rb)return Fh;rb=1;var e=Vr();function n(r,i){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=i?u:-1,h=Object(o);(i?c--:++c<u)&&l(h[c],c,h)!==!1;);return o}}return Fh=n,Fh}var zh,sb;function zu(){if(sb)return zh;sb=1;var e=ay(),n=n$(),r=n(e);return zh=r,zh}var Bh,ib;function fi(){if(ib)return Bh;ib=1;function e(n){return n}return Bh=e,Bh}var Uh,ob;function DC(){if(ob)return Uh;ob=1;var e=fi();function n(r){return typeof r=="function"?r:e}return Uh=n,Uh}var Hh,ab;function FC(){if(ab)return Hh;ab=1;var e=Zv(),n=zu(),r=DC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Hh=o,Hh}var Wh,lb;function zC(){return lb||(lb=1,Wh=FC()),Wh}var Vh,ub;function r$(){if(ub)return Vh;ub=1;var e=zu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return Vh=n,Vh}var Gh,cb;function s$(){if(cb)return Gh;cb=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return Gh=n,Gh}var Yh,db;function i$(){if(db)return Yh;db=1;function e(n){return this.__data__.has(n)}return Yh=e,Yh}var Kh,fb;function BC(){if(fb)return Kh;fb=1;var e=Qv(),n=s$(),r=i$();function i(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return i.prototype.add=i.prototype.push=n,i.prototype.has=r,Kh=i,Kh}var Xh,hb;function o$(){if(hb)return Xh;hb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o;)if(r(n[i],i,n))return!0;return!1}return Xh=e,Xh}var Qh,pb;function UC(){if(pb)return Qh;pb=1;function e(n,r){return n.has(r)}return Qh=e,Qh}var Zh,mb;function HC(){if(mb)return Zh;mb=1;var e=BC(),n=o$(),r=UC(),i=1,o=2;function l(u,c,h,p,d,m){var y=h&i,w=u.length,N=c.length;if(w!=N&&!(y&&N>w))return!1;var _=m.get(u),b=m.get(c);if(_&&b)return _==c&&b==u;var S=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++S<w;){var C=u[S],I=c[S];if(p)var O=y?p(I,C,S,c,u,m):p(C,I,S,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(E){if(!n(c,function(A,U){if(!r(E,U)&&(C===A||d(C,A,h,p,m)))return E.push(U)})){k=!1;break}}else if(!(C===I||d(C,I,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return Zh=l,Zh}var Jh,gb;function a$(){if(gb)return Jh;gb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return Jh=e,Jh}var ep,vb;function ly(){if(vb)return ep;vb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return ep=e,ep}var tp,yb;function l$(){if(yb)return tp;yb=1;var e=wo(),n=PC(),r=yo(),i=HC(),o=a$(),l=ly(),u=1,c=2,h="[object Boolean]",p="[object Date]",d="[object Error]",m="[object Map]",y="[object Number]",w="[object RegExp]",N="[object Set]",_="[object String]",b="[object Symbol]",S="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,C=E?E.valueOf:void 0;function I(O,A,U,L,P,q,G){switch(U){case k:if(O.byteLength!=A.byteLength||O.byteOffset!=A.byteOffset)return!1;O=O.buffer,A=A.buffer;case S:return!(O.byteLength!=A.byteLength||!q(new n(O),new n(A)));case h:case p:case y:return r(+O,+A);case d:return O.name==A.name&&O.message==A.message;case w:case _:return O==A+"";case m:var F=o;case N:var T=L&u;if(F||(F=l),O.size!=A.size&&!T)return!1;var B=G.get(O);if(B)return B==A;L|=c,G.set(O,A);var z=i(F(O),F(A),L,P,q,G);return G.delete(O),z;case b:if(C)return C.call(O)==C.call(A)}return!1}return tp=I,tp}var np,wb;function u$(){if(wb)return np;wb=1;var e=IC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,h,p,d){var m=c&n,y=e(l),w=y.length,N=e(u),_=N.length;if(w!=_&&!m)return!1;for(var b=w;b--;){var S=y[b];if(!(m?S in u:i.call(u,S)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var C=!0;d.set(l,u),d.set(u,l);for(var I=m;++b<w;){S=y[b];var O=l[S],A=u[S];if(h)var U=m?h(A,O,S,u,l,d):h(O,A,S,l,u,d);if(!(U===void 0?O===A||p(O,A,c,h,d):U)){C=!1;break}I||(I=S=="constructor")}if(C&&!I){var L=l.constructor,P=u.constructor;L!=P&&"constructor"in l&&"constructor"in u&&!(typeof L=="function"&&L instanceof L&&typeof P=="function"&&P instanceof P)&&(C=!1)}return d.delete(l),d.delete(u),C}return np=o,np}var rp,xb;function c$(){if(xb)return rp;xb=1;var e=Pu(),n=HC(),r=l$(),i=u$(),o=_o(),l=bt(),u=xo(),c=Fa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,b,S,k,E,C){var I=l(_),O=l(b),A=I?d:o(_),U=O?d:o(b);A=A==p?m:A,U=U==p?m:U;var L=A==m,P=U==m,q=A==U;if(q&&u(_)){if(!u(b))return!1;I=!0,L=!1}if(q&&!L)return C||(C=new e),I||c(_)?n(_,b,S,k,E,C):r(_,b,A,S,k,E,C);if(!(S&h)){var G=L&&w.call(_,"__wrapped__"),F=P&&w.call(b,"__wrapped__");if(G||F){var T=G?_.value():_,B=F?b.value():b;return C||(C=new e),E(T,B,S,k,C)}}return q?(C||(C=new e),i(_,b,S,k,E,C)):!1}return rp=N,rp}var sp,_b;function WC(){if(_b)return sp;_b=1;var e=c$(),n=vr();function r(i,o,l,u,c){return i===o?!0:i==null||o==null||!n(i)&&!n(o)?i!==i&&o!==o:e(i,o,l,u,r,c)}return sp=r,sp}var ip,bb;function d$(){if(bb)return ip;bb=1;var e=Pu(),n=WC(),r=1,i=2;function o(l,u,c,h){var p=c.length,d=p,m=!h;if(l==null)return!d;for(l=Object(l);p--;){var y=c[p];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<d;){y=c[p];var w=y[0],N=l[w],_=y[1];if(m&&y[2]){if(N===void 0&&!(w in l))return!1}else{var b=new e;if(h)var S=h(N,_,w,l,u,b);if(!(S===void 0?n(_,N,r|i,h,b):S))return!1}}return!0}return ip=o,ip}var op,Sb;function VC(){if(Sb)return op;Sb=1;var e=Ln();function n(r){return r===r&&!e(r)}return op=n,op}var ap,kb;function f$(){if(kb)return ap;kb=1;var e=VC(),n=ks();function r(i){for(var o=n(i),l=o.length;l--;){var u=o[l],c=i[u];o[l]=[u,c,e(c)]}return o}return ap=r,ap}var lp,Eb;function GC(){if(Eb)return lp;Eb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return lp=e,lp}var up,Nb;function h$(){if(Nb)return up;Nb=1;var e=d$(),n=f$(),r=GC();function i(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return up=i,up}var cp,Cb;function bo(){if(Cb)return cp;Cb=1;var e=ui(),n=vr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return cp=i,cp}var dp,Rb;function uy(){if(Rb)return dp;Rb=1;var e=bt(),n=bo(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\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:i.test(l)||!r.test(l)||u!=null&&l in Object(u)}return dp=o,dp}var fp,jb;function p$(){if(jb)return fp;jb=1;var e=Qv(),n="Expected a function";function r(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],h=l.cache;if(h.has(c))return h.get(c);var p=i.apply(this,u);return l.cache=h.set(c,p)||h,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,fp=r,fp}var hp,Tb;function m$(){if(Tb)return hp;Tb=1;var e=p$(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return hp=r,hp}var pp,Ab;function g$(){if(Ab)return pp;Ab=1;var e=m$(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,i=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,h,p){l.push(h?p.replace(r,"$1"):c||u)}),l});return pp=i,pp}var mp,Ib;function Bu(){if(Ib)return mp;Ib=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=Array(o);++i<o;)l[i]=r(n[i],i,n);return l}return mp=e,mp}var gp,Mb;function v$(){if(Mb)return gp;Mb=1;var e=wo(),n=Bu(),r=bt(),i=bo(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(i(c))return l?l.call(c):"";var h=c+"";return h=="0"&&1/c==-1/0?"-0":h}return gp=u,gp}var vp,Pb;function YC(){if(Pb)return vp;Pb=1;var e=v$();function n(r){return r==null?"":e(r)}return vp=n,vp}var yp,Ob;function Uu(){if(Ob)return yp;Ob=1;var e=bt(),n=uy(),r=g$(),i=YC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return yp=o,yp}var wp,Lb;function za(){if(Lb)return wp;Lb=1;var e=bo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return wp=n,wp}var xp,qb;function Hu(){if(qb)return xp;qb=1;var e=Uu(),n=za();function r(i,o){o=e(o,i);for(var l=0,u=o.length;i!=null&&l<u;)i=i[n(o[l++])];return l&&l==u?i:void 0}return xp=r,xp}var _p,$b;function y$(){if($b)return _p;$b=1;var e=Hu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return _p=n,_p}var bp,Db;function w$(){if(Db)return bp;Db=1;function e(n,r){return n!=null&&r in Object(n)}return bp=e,bp}var Sp,Fb;function KC(){if(Fb)return Sp;Fb=1;var e=Uu(),n=Da(),r=bt(),i=qu(),o=Jv(),l=za();function u(c,h,p){h=e(h,c);for(var d=-1,m=h.length,y=!1;++d<m;){var w=l(h[d]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++d!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&i(w,m)&&(r(c)||n(c)))}return Sp=u,Sp}var kp,zb;function XC(){if(zb)return kp;zb=1;var e=w$(),n=KC();function r(i,o){return i!=null&&n(i,o,e)}return kp=r,kp}var Ep,Bb;function x$(){if(Bb)return Ep;Bb=1;var e=WC(),n=y$(),r=XC(),i=uy(),o=VC(),l=GC(),u=za(),c=1,h=2;function p(d,m){return i(d)&&o(m)?l(u(d),m):function(y){var w=n(y,d);return w===void 0&&w===m?r(y,d):e(m,w,c|h)}}return Ep=p,Ep}var Np,Ub;function QC(){if(Ub)return Np;Ub=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Np=e,Np}var Cp,Hb;function _$(){if(Hb)return Cp;Hb=1;var e=Hu();function n(r){return function(i){return e(i,r)}}return Cp=n,Cp}var Rp,Wb;function b$(){if(Wb)return Rp;Wb=1;var e=QC(),n=_$(),r=uy(),i=za();function o(l){return r(l)?e(i(l)):n(l)}return Rp=o,Rp}var jp,Vb;function Gr(){if(Vb)return jp;Vb=1;var e=h$(),n=x$(),r=fi(),i=bt(),o=b$();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?i(u)?n(u[0],u[1]):e(u):o(u)}return jp=l,jp}var Tp,Gb;function ZC(){if(Gb)return Tp;Gb=1;var e=RC(),n=r$(),r=Gr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return Tp=o,Tp}var Ap,Yb;function S$(){if(Yb)return Ap;Yb=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Ap=r,Ap}var Ip,Kb;function JC(){if(Kb)return Ip;Kb=1;var e=S$(),n=KC();function r(i,o){return i!=null&&n(i,o,e)}return Ip=r,Ip}var Mp,Xb;function k$(){if(Xb)return Mp;Xb=1;var e=ty(),n=_o(),r=Da(),i=bt(),o=Vr(),l=xo(),u=Du(),c=Fa(),h="[object Map]",p="[object Set]",d=Object.prototype,m=d.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(i(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var N=n(w);if(N==h||N==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(m.call(w,_))return!1;return!0}return Mp=y,Mp}var Pp,Qb;function eR(){if(Qb)return Pp;Qb=1;function e(n){return n===void 0}return Pp=e,Pp}var Op,Zb;function tR(){if(Zb)return Op;Zb=1;var e=zu(),n=Vr();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,h,p){u[++l]=o(c,h,p)}),u}return Op=r,Op}var Lp,Jb;function nR(){if(Jb)return Lp;Jb=1;var e=Bu(),n=Gr(),r=tR(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Lp=o,Lp}var qp,eS;function E$(){if(eS)return qp;eS=1;function e(n,r,i,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(i=n[++l]);++l<u;)i=r(i,n[l],l,n);return i}return qp=e,qp}var $p,tS;function N$(){if(tS)return $p;tS=1;function e(n,r,i,o,l){return l(n,function(u,c,h){i=o?(o=!1,u):r(i,u,c,h)}),i}return $p=e,$p}var Dp,nS;function rR(){if(nS)return Dp;nS=1;var e=E$(),n=zu(),r=Gr(),i=N$(),o=bt();function l(u,c,h){var p=o(u)?e:i,d=arguments.length<3;return p(u,r(c,4),h,d,n)}return Dp=l,Dp}var Fp,rS;function C$(){if(rS)return Fp;rS=1;var e=ui(),n=bt(),r=vr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Fp=o,Fp}var zp,sS;function R$(){if(sS)return zp;sS=1;var e=QC(),n=e("length");return zp=n,zp}var Bp,iS;function j$(){if(iS)return Bp;iS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function h(p){return c.test(p)}return Bp=h,Bp}var Up,oS;function T$(){if(oS)return Up;oS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",h="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+h+")",d="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",N=p+"?",_="["+l+"]?",b="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",S=_+N+b,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+S,"g");function C(I){for(var O=E.lastIndex=0;E.test(I);)++O;return O}return Up=C,Up}var Hp,aS;function A$(){if(aS)return Hp;aS=1;var e=R$(),n=j$(),r=T$();function i(o){return n(o)?r(o):e(o)}return Hp=i,Hp}var Wp,lS;function I$(){if(lS)return Wp;lS=1;var e=ty(),n=_o(),r=Vr(),i=C$(),o=A$(),l="[object Map]",u="[object Set]";function c(h){if(h==null)return 0;if(r(h))return i(h)?o(h):h.length;var p=n(h);return p==l||p==u?h.size:e(h).length}return Wp=c,Wp}var Vp,uS;function M$(){if(uS)return Vp;uS=1;var e=Zv(),n=LC(),r=ay(),i=Gr(),o=Fu(),l=bt(),u=xo(),c=qa(),h=Ln(),p=Fa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var b=m&&m.constructor;_?w=N?new b:[]:h(m)?w=c(b)?n(o(m)):{}:w={}}return(_?e:r)(m,function(S,k,E){return y(w,S,k,E)}),w}return Vp=d,Vp}var Gp,cS;function P$(){if(cS)return Gp;cS=1;var e=wo(),n=Da(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return Gp=o,Gp}var Yp,dS;function cy(){if(dS)return Yp;dS=1;var e=ry(),n=P$();function r(i,o,l,u,c){var h=-1,p=i.length;for(l||(l=n),c||(c=[]);++h<p;){var d=i[h];o>0&&l(d)?o>1?r(d,o-1,l,u,c):e(c,d):u||(c[c.length]=d)}return c}return Yp=r,Yp}var Kp,fS;function O$(){if(fS)return Kp;fS=1;function e(n,r,i){switch(i.length){case 0:return n.call(r);case 1:return n.call(r,i[0]);case 2:return n.call(r,i[0],i[1]);case 3:return n.call(r,i[0],i[1],i[2])}return n.apply(r,i)}return Kp=e,Kp}var Xp,hS;function sR(){if(hS)return Xp;hS=1;var e=O$(),n=Math.max;function r(i,o,l){return o=n(o===void 0?i.length-1:o,0),function(){for(var u=arguments,c=-1,h=n(u.length-o,0),p=Array(h);++c<h;)p[c]=u[o+c];c=-1;for(var d=Array(o+1);++c<o;)d[c]=u[c];return d[o]=l(p),e(i,this,d)}}return Xp=r,Xp}var Qp,pS;function L$(){if(pS)return Qp;pS=1;var e=iy(),n=SC(),r=fi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return Qp=i,Qp}var Zp,mS;function q$(){if(mS)return Zp;mS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),h=n-(c-u);if(u=c,h>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Zp=i,Zp}var Jp,gS;function iR(){if(gS)return Jp;gS=1;var e=L$(),n=q$(),r=n(e);return Jp=r,Jp}var em,vS;function Wu(){if(vS)return em;vS=1;var e=fi(),n=sR(),r=iR();function i(o,l){return r(n(o,l,e),o+"")}return em=i,em}var tm,yS;function oR(){if(yS)return tm;yS=1;function e(n,r,i,o){for(var l=n.length,u=i+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return tm=e,tm}var nm,wS;function $$(){if(wS)return nm;wS=1;function e(n){return n!==n}return nm=e,nm}var rm,xS;function D$(){if(xS)return rm;xS=1;function e(n,r,i){for(var o=i-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return rm=e,rm}var sm,_S;function F$(){if(_S)return sm;_S=1;var e=oR(),n=$$(),r=D$();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return sm=i,sm}var im,bS;function z$(){if(bS)return im;bS=1;var e=F$();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return im=n,im}var om,SS;function B$(){if(SS)return om;SS=1;function e(n,r,i){for(var o=-1,l=n==null?0:n.length;++o<l;)if(i(r,n[o]))return!0;return!1}return om=e,om}var am,kS;function U$(){if(kS)return am;kS=1;function e(){}return am=e,am}var lm,ES;function H$(){if(ES)return lm;ES=1;var e=MC(),n=U$(),r=ly(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return lm=o,lm}var um,NS;function W$(){if(NS)return um;NS=1;var e=BC(),n=z$(),r=B$(),i=UC(),o=H$(),l=ly(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],b=_;if(d)N=!1,y=r;else if(w>=u){var S=p?null:o(h);if(S)return l(S);N=!1,y=i,b=new e}else b=p?[]:_;e:for(;++m<w;){var k=h[m],E=p?p(k):k;if(k=d||k!==0?k:0,N&&E===E){for(var C=b.length;C--;)if(b[C]===E)continue e;p&&b.push(E),_.push(k)}else y(b,E,d)||(b!==_&&b.push(E),_.push(k))}return _}return um=c,um}var cm,CS;function aR(){if(CS)return cm;CS=1;var e=Vr(),n=vr();function r(i){return n(i)&&e(i)}return cm=r,cm}var dm,RS;function V$(){if(RS)return dm;RS=1;var e=cy(),n=Wu(),r=W$(),i=aR(),o=n(function(l){return r(e(l,1,i,!0))});return dm=o,dm}var fm,jS;function G$(){if(jS)return fm;jS=1;var e=Bu();function n(r,i){return e(i,function(o){return r[o]})}return fm=n,fm}var hm,TS;function lR(){if(TS)return hm;TS=1;var e=G$(),n=ks();function r(i){return i==null?[]:e(i,n(i))}return hm=r,hm}var pm,AS;function qn(){if(AS)return pm;AS=1;var e;if(typeof Kv=="function")try{e={clone:e$(),constant:iy(),each:zC(),filter:ZC(),has:JC(),isArray:bt(),isEmpty:k$(),isFunction:qa(),isUndefined:eR(),keys:ks(),map:nR(),reduce:rR(),size:I$(),transform:M$(),union:V$(),values:lR()}}catch{}return e||(e=window._),pm=e,pm}var mm,IS;function dy(){if(IS)return mm;IS=1;var e=qn();mm=o;var n="\0",r="\0",i="";function o(d){this._isDirected=e.has(d,"directed")?d.directed:!0,this._isMultigraph=e.has(d,"multigraph")?d.multigraph:!1,this._isCompound=e.has(d,"compound")?d.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(d){return this._label=d,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultNodeLabelFn=d,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._in[m])})},o.prototype.sinks=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._out[m])})},o.prototype.setNodes=function(d,m){var y=arguments,w=this;return e.each(d,function(N){y.length>1?w.setNode(N,m):w.setNode(N)}),this},o.prototype.setNode=function(d,m){return e.has(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=m),this):(this._nodes[d]=arguments.length>1?m:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=r,this._children[d]={},this._children[r][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)},o.prototype.node=function(d){return this._nodes[d]},o.prototype.hasNode=function(d){return e.has(this._nodes,d)},o.prototype.removeNode=function(d){var m=this;if(e.has(this._nodes,d)){var y=function(w){m.removeEdge(m._edgeObjs[w])};delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],e.each(this.children(d),function(w){m.setParent(w)}),delete this._children[d]),e.each(e.keys(this._in[d]),y),delete this._in[d],delete this._preds[d],e.each(e.keys(this._out[d]),y),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this},o.prototype.setParent=function(d,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===d)throw new Error("Setting "+m+" as parent of "+d+" would create a cycle");this.setNode(m)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=m,this._children[m][d]=!0,this},o.prototype._removeFromParentsChildList=function(d){delete this._children[this._parent[d]][d]},o.prototype.parent=function(d){if(this._isCompound){var m=this._parent[d];if(m!==r)return m}},o.prototype.children=function(d){if(e.isUndefined(d)&&(d=r),this._isCompound){var m=this._children[d];if(m)return e.keys(m)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}},o.prototype.predecessors=function(d){var m=this._preds[d];if(m)return e.keys(m)},o.prototype.successors=function(d){var m=this._sucs[d];if(m)return e.keys(m)},o.prototype.neighbors=function(d){var m=this.predecessors(d);if(m)return e.union(m,this.successors(d))},o.prototype.isLeaf=function(d){var m;return this.isDirected()?m=this.successors(d):m=this.neighbors(d),m.length===0},o.prototype.filterNodes=function(d){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(_,b){d(b)&&m.setNode(b,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var b=y.parent(_);return b===void 0||m.hasNode(b)?(w[_]=b,b):b in w?w[b]:N(b)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,N(_))}),m},o.prototype.setDefaultEdgeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultEdgeLabelFn=d,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(d,m){var y=this,w=arguments;return e.reduce(d,function(N,_){return w.length>1?y.setEdge(N,_,m):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var d,m,y,w,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(d=_.v,m=_.w,y=_.name,arguments.length===2&&(w=arguments[1],N=!0)):(d=_,m=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],N=!0)),d=""+d,m=""+m,e.isUndefined(y)||(y=""+y);var b=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,b))return N&&(this._edgeLabels[b]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(m),this._edgeLabels[b]=N?w:this._defaultEdgeLabelFn(d,m,y);var S=h(this._isDirected,d,m,y);return d=S.v,m=S.w,Object.freeze(S),this._edgeObjs[b]=S,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][b]=S,this._out[d][b]=S,this._edgeCount++,this},o.prototype.edge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y),N=this._edgeObjs[w];return N&&(d=N.v,m=N.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[m],d),u(this._sucs[d],m),delete this._in[m][w],delete this._out[d][w],this._edgeCount--),this},o.prototype.inEdges=function(d,m){var y=this._in[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.v===m}):w}},o.prototype.outEdges=function(d,m){var y=this._out[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.w===m}):w}},o.prototype.nodeEdges=function(d,m){var y=this.inEdges(d,m);if(y)return y.concat(this.outEdges(d,m))};function l(d,m){d[m]?d[m]++:d[m]=1}function u(d,m){--d[m]||delete d[m]}function c(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}var S={v:N,w:_};return w&&(S.name=w),S}function p(d,m){return c(d,m.v,m.w,m.name)}return mm}var gm,MS;function Y$(){return MS||(MS=1,gm="2.1.8"),gm}var vm,PS;function K$(){return PS||(PS=1,vm={Graph:dy(),version:Y$()}),vm}var ym,OS;function X$(){if(OS)return ym;OS=1;var e=qn(),n=dy();ym={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:i(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function i(u){return e.map(u.nodes(),function(c){var h=u.node(c),p=u.parent(c),d={v:c};return e.isUndefined(h)||(d.value=h),e.isUndefined(p)||(d.parent=p),d})}function o(u){return e.map(u.edges(),function(c){var h=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(h)||(p.value=h),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(h){c.setNode(h.v,h.value),h.parent&&c.setParent(h.v,h.parent)}),e.each(u.edges,function(h){c.setEdge({v:h.v,w:h.w,name:h.name},h.value)}),c}return ym}var wm,LS;function Q$(){if(LS)return wm;LS=1;var e=qn();wm=n;function n(r){var i={},o=[],l;function u(c){e.has(i,c)||(i[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return wm}var xm,qS;function uR(){if(qS)return xm;qS=1;var e=qn();xm=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var i=this._keyIndices[r];if(i!==void 0)return this._arr[i].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,i){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:i}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,i){var o=this._keyIndices[r];if(i>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+i);this._arr[o].priority=i,this._decrease(o)},n.prototype._heapify=function(r){var i=this._arr,o=2*r,l=o+1,u=r;o<i.length&&(u=i[o].priority<i[u].priority?o:u,l<i.length&&(u=i[l].priority<i[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var i=this._arr,o=i[r].priority,l;r!==0&&(l=r>>1,!(i[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,i){var o=this._arr,l=this._keyIndices,u=o[r],c=o[i];o[r]=c,o[i]=u,l[c.key]=r,l[u.key]=i},xm}var _m,$S;function cR(){if($S)return _m;$S=1;var e=qn(),n=uR();_m=i;var r=e.constant(1);function i(l,u,c,h){return o(l,String(u),c||r,h||function(p){return l.outEdges(p)})}function o(l,u,c,h){var p={},d=new n,m,y,w=function(N){var _=N.v!==m?N.v:N.w,b=p[_],S=c(N),k=y.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+S);k<b.distance&&(b.distance=k,b.predecessor=m,d.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;p[N]={distance:_},d.add(N,_)});d.size()>0&&(m=d.removeMin(),y=p[m],y.distance!==Number.POSITIVE_INFINITY);)h(m).forEach(w);return p}return _m}var bm,DS;function Z$(){if(DS)return bm;DS=1;var e=cR(),n=qn();bm=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return bm}var Sm,FS;function dR(){if(FS)return Sm;FS=1;var e=qn();Sm=n;function n(r){var i=0,o=[],l={},u=[];function c(h){var p=l[h]={onStack:!0,lowlink:i,index:i++};if(o.push(h),r.successors(h).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var d=[],m;do m=o.pop(),l[m].onStack=!1,d.push(m);while(h!==m);u.push(d)}}return r.nodes().forEach(function(h){e.has(l,h)||c(h)}),u}return Sm}var km,zS;function J$(){if(zS)return km;zS=1;var e=qn(),n=dR();km=r;function r(i){return e.filter(n(i),function(o){return o.length>1||o.length===1&&i.hasEdge(o[0],o[0])})}return km}var Em,BS;function eD(){if(BS)return Em;BS=1;var e=qn();Em=r;var n=e.constant(1);function r(o,l,u){return i(o,l||n,u||function(c){return o.outEdges(c)})}function i(o,l,u){var c={},h=o.nodes();return h.forEach(function(p){c[p]={},c[p][p]={distance:0},h.forEach(function(d){p!==d&&(c[p][d]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(d){var m=d.v===p?d.w:d.v,y=l(d);c[p][m]={distance:y,predecessor:p}})}),h.forEach(function(p){var d=c[p];h.forEach(function(m){var y=c[m];h.forEach(function(w){var N=y[p],_=d[w],b=y[w],S=N.distance+_.distance;S<b.distance&&(b.distance=S,b.predecessor=_.predecessor)})})}),c}return Em}var Nm,US;function fR(){if(US)return Nm;US=1;var e=qn();Nm=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(h){if(e.has(l,h))throw new r;e.has(o,h)||(l[h]=!0,o[h]=!0,e.each(i.predecessors(h),c),delete l[h],u.push(h))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Nm}var Cm,HS;function tD(){if(HS)return Cm;HS=1;var e=fR();Cm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Cm}var Rm,WS;function hR(){if(WS)return Rm;WS=1;var e=qn();Rm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],h={};return e.each(o,function(p){if(!i.hasNode(p))throw new Error("Graph does not have node: "+p);r(i,p,l==="post",h,u,c)}),c}function r(i,o,l,u,c,h){e.has(u,o)||(u[o]=!0,l||h.push(o),e.each(c(o),function(p){r(i,p,l,u,c,h)}),l&&h.push(o))}return Rm}var jm,VS;function nD(){if(VS)return jm;VS=1;var e=hR();jm=n;function n(r,i){return e(r,i,"post")}return jm}var Tm,GS;function rD(){if(GS)return Tm;GS=1;var e=hR();Tm=n;function n(r,i){return e(r,i,"pre")}return Tm}var Am,YS;function sD(){if(YS)return Am;YS=1;var e=qn(),n=dy(),r=uR();Am=i;function i(o,l){var u=new n,c={},h=new r,p;function d(y){var w=y.v===p?y.w:y.v,N=h.priority(w);if(N!==void 0){var _=l(y);_<N&&(c[w]=p,h.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){h.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),h.decrease(o.nodes()[0],0);for(var m=!1;h.size()>0;){if(p=h.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(p).forEach(d)}return u}return Am}var Im,KS;function iD(){return KS||(KS=1,Im={components:Q$(),dijkstra:cR(),dijkstraAll:Z$(),findCycles:J$(),floydWarshall:eD(),isAcyclic:tD(),postorder:nD(),preorder:rD(),prim:sD(),tarjan:dR(),topsort:fR()}),Im}var Mm,XS;function oD(){if(XS)return Mm;XS=1;var e=K$();return Mm={Graph:e.Graph,json:X$(),alg:iD(),version:e.version},Mm}var Pm,QS;function Jn(){if(QS)return Pm;QS=1;var e;if(typeof Kv=="function")try{e=oD()}catch{}return e||(e=window.graphlib),Pm=e,Pm}var Om,ZS;function aD(){if(ZS)return Om;ZS=1;var e=$C(),n=1,r=4;function i(o){return e(o,n|r)}return Om=i,Om}var Lm,JS;function Vu(){if(JS)return Lm;JS=1;var e=yo(),n=Vr(),r=qu(),i=Ln();function o(l,u,c){if(!i(c))return!1;var h=typeof u;return(h=="number"?n(c)&&r(u,c.length):h=="string"&&u in c)?e(c[u],l):!1}return Lm=o,Lm}var qm,ek;function lD(){if(ek)return qm;ek=1;var e=Wu(),n=yo(),r=Vu(),i=di(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,h){c=Object(c);var p=-1,d=h.length,m=d>2?h[2]:void 0;for(m&&r(h[0],h[1],m)&&(d=1);++p<d;)for(var y=h[p],w=i(y),N=-1,_=w.length;++N<_;){var b=w[N],S=c[b];(S===void 0||n(S,o[b])&&!l.call(c,b))&&(c[b]=y[b])}return c});return qm=u,qm}var $m,tk;function uD(){if(tk)return $m;tk=1;var e=Gr(),n=Vr(),r=ks();function i(o){return function(l,u,c){var h=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(m){return p(h[m],m,h)}}var d=o(l,u,c);return d>-1?h[p?l[d]:d]:void 0}}return $m=i,$m}var Dm,nk;function cD(){if(nk)return Dm;nk=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Dm=n,Dm}var Fm,rk;function dD(){if(rk)return Fm;rk=1;var e=cD(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Fm=r,Fm}var zm,sk;function fD(){if(sk)return zm;sk=1;var e=dD(),n=Ln(),r=bo(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function h(p){if(typeof p=="number")return p;if(r(p))return i;if(n(p)){var d=typeof p.valueOf=="function"?p.valueOf():p;p=n(d)?d+"":d}if(typeof p!="string")return p===0?p:+p;p=e(p);var m=l.test(p);return m||u.test(p)?c(p.slice(2),m?2:8):o.test(p)?i:+p}return zm=h,zm}var Bm,ik;function pR(){if(ik)return Bm;ik=1;var e=fD(),n=1/0,r=17976931348623157e292;function i(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return Bm=i,Bm}var Um,ok;function hD(){if(ok)return Um;ok=1;var e=pR();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Um=n,Um}var Hm,ak;function pD(){if(ak)return Hm;ak=1;var e=oR(),n=Gr(),r=hD(),i=Math.max;function o(l,u,c){var h=l==null?0:l.length;if(!h)return-1;var p=c==null?0:r(c);return p<0&&(p=i(h+p,0)),e(l,n(u,3),p)}return Hm=o,Hm}var Wm,lk;function mD(){if(lk)return Wm;lk=1;var e=uD(),n=pD(),r=e(n);return Wm=r,Wm}var Vm,uk;function mR(){if(uk)return Vm;uk=1;var e=cy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return Vm=n,Vm}var Gm,ck;function gD(){if(ck)return Gm;ck=1;var e=oy(),n=DC(),r=di();function i(o,l){return o==null?o:e(o,n(l),r)}return Gm=i,Gm}var Ym,dk;function vD(){if(dk)return Ym;dk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return Ym=e,Ym}var Km,fk;function yD(){if(fk)return Km;fk=1;var e=Ou(),n=ay(),r=Gr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,h,p){e(u,h,l(c,h,p))}),u}return Km=i,Km}var Xm,hk;function fy(){if(hk)return Xm;hk=1;var e=bo();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],h=i(c);if(h!=null&&(p===void 0?h===h&&!e(h):o(h,p)))var p=h,d=c}return d}return Xm=n,Xm}var Qm,pk;function wD(){if(pk)return Qm;pk=1;function e(n,r){return n>r}return Qm=e,Qm}var Zm,mk;function xD(){if(mk)return Zm;mk=1;var e=fy(),n=wD(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return Zm=i,Zm}var Jm,gk;function gR(){if(gk)return Jm;gk=1;var e=Ou(),n=yo();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return Jm=r,Jm}var eg,vk;function _D(){if(vk)return eg;vk=1;var e=ui(),n=Fu(),r=vr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,h=u.call(Object);function p(d){if(!r(d)||e(d)!=i)return!1;var m=n(d);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==h}return eg=p,eg}var tg,yk;function vR(){if(yk)return tg;yk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return tg=e,tg}var ng,wk;function bD(){if(wk)return ng;wk=1;var e=$a(),n=di();function r(i){return e(i,n(i))}return ng=r,ng}var rg,xk;function SD(){if(xk)return rg;xk=1;var e=gR(),n=NC(),r=OC(),i=CC(),o=qC(),l=Da(),u=bt(),c=aR(),h=xo(),p=qa(),d=Ln(),m=_D(),y=Fa(),w=vR(),N=bD();function _(b,S,k,E,C,I,O){var A=w(b,k),U=w(S,k),L=O.get(U);if(L){e(b,k,L);return}var P=I?I(A,U,k+"",b,S,O):void 0,q=P===void 0;if(q){var G=u(U),F=!G&&h(U),T=!G&&!F&&y(U);P=U,G||F||T?u(A)?P=A:c(A)?P=i(A):F?(q=!1,P=n(U,!0)):T?(q=!1,P=r(U,!0)):P=[]:m(U)||l(U)?(P=A,l(A)?P=N(A):(!d(A)||p(A))&&(P=o(U))):q=!1}q&&(O.set(U,P),C(P,U,E,I,O),O.delete(U)),e(b,k,P)}return rg=_,rg}var sg,_k;function kD(){if(_k)return sg;_k=1;var e=Pu(),n=gR(),r=oy(),i=SD(),o=Ln(),l=di(),u=vR();function c(h,p,d,m,y){h!==p&&r(p,function(w,N){if(y||(y=new e),o(w))i(h,p,N,d,c,m,y);else{var _=m?m(u(h,N),w,N+"",h,p,y):void 0;_===void 0&&(_=w),n(h,N,_)}},l)}return sg=c,sg}var ig,bk;function ED(){if(bk)return ig;bk=1;var e=Wu(),n=Vu();function r(i){return e(function(o,l){var u=-1,c=l.length,h=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(h=i.length>3&&typeof h=="function"?(c--,h):void 0,p&&n(l[0],l[1],p)&&(h=c<3?void 0:h,c=1),o=Object(o);++u<c;){var d=l[u];d&&i(o,d,u,h)}return o})}return ig=r,ig}var og,Sk;function ND(){if(Sk)return og;Sk=1;var e=kD(),n=ED(),r=n(function(i,o,l){e(i,o,l)});return og=r,og}var ag,kk;function yR(){if(kk)return ag;kk=1;function e(n,r){return n<r}return ag=e,ag}var lg,Ek;function CD(){if(Ek)return lg;Ek=1;var e=fy(),n=yR(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return lg=i,lg}var ug,Nk;function RD(){if(Nk)return ug;Nk=1;var e=fy(),n=Gr(),r=yR();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return ug=i,ug}var cg,Ck;function jD(){if(Ck)return cg;Ck=1;var e=tr(),n=function(){return e.Date.now()};return cg=n,cg}var dg,Rk;function TD(){if(Rk)return dg;Rk=1;var e=Lu(),n=Uu(),r=qu(),i=Ln(),o=za();function l(u,c,h,p){if(!i(u))return u;c=n(c,u);for(var d=-1,m=c.length,y=m-1,w=u;w!=null&&++d<m;){var N=o(c[d]),_=h;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(d!=y){var b=w[N];_=p?p(b,N,w):void 0,_===void 0&&(_=i(b)?b:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return dg=l,dg}var fg,jk;function AD(){if(jk)return fg;jk=1;var e=Hu(),n=TD(),r=Uu();function i(o,l,u){for(var c=-1,h=l.length,p={};++c<h;){var d=l[c],m=e(o,d);u(m,d)&&n(p,r(d,o),m)}return p}return fg=i,fg}var hg,Tk;function ID(){if(Tk)return hg;Tk=1;var e=AD(),n=XC();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return hg=r,hg}var pg,Ak;function MD(){if(Ak)return pg;Ak=1;var e=mR(),n=sR(),r=iR();function i(o){return r(n(o,void 0,e),o+"")}return pg=i,pg}var mg,Ik;function PD(){if(Ik)return mg;Ik=1;var e=ID(),n=MD(),r=n(function(i,o){return i==null?{}:e(i,o)});return mg=r,mg}var gg,Mk;function OD(){if(Mk)return gg;Mk=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,h=n(e((o-i)/(l||1)),0),p=Array(h);h--;)p[u?h:++c]=i,i+=l;return p}return gg=r,gg}var vg,Pk;function LD(){if(Pk)return vg;Pk=1;var e=OD(),n=Vu(),r=pR();function i(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return vg=i,vg}var yg,Ok;function qD(){if(Ok)return yg;Ok=1;var e=LD(),n=e();return yg=n,yg}var wg,Lk;function $D(){if(Lk)return wg;Lk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return wg=e,wg}var xg,qk;function DD(){if(qk)return xg;qk=1;var e=bo();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),h=i!==void 0,p=i===null,d=i===i,m=e(i);if(!p&&!m&&!c&&r>i||c&&h&&d&&!p&&!m||l&&h&&d||!o&&d||!u)return 1;if(!l&&!c&&!m&&r<i||m&&o&&u&&!l&&!c||p&&o&&u||!h&&u||!d)return-1}return 0}return xg=n,xg}var _g,$k;function FD(){if($k)return _g;$k=1;var e=DD();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,h=u.length,p=o.length;++l<h;){var d=e(u[l],c[l]);if(d){if(l>=p)return d;var m=o[l];return d*(m=="desc"?-1:1)}}return r.index-i.index}return _g=n,_g}var bg,Dk;function zD(){if(Dk)return bg;Dk=1;var e=Bu(),n=Hu(),r=Gr(),i=tR(),o=$D(),l=$u(),u=FD(),c=fi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(b){return n(b,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,b,S){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,b){return u(_,b,y)})}return bg=p,bg}var Sg,Fk;function BD(){if(Fk)return Sg;Fk=1;var e=cy(),n=zD(),r=Wu(),i=Vu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&i(l,u[0],u[1])?u=[]:c>2&&i(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Sg=o,Sg}var kg,zk;function UD(){if(zk)return kg;zk=1;var e=YC(),n=0;function r(i){var o=++n;return e(i)+o}return kg=r,kg}var Eg,Bk;function HD(){if(Bk)return Eg;Bk=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var h=o<u?r[o]:void 0;i(c,n[o],h)}return c}return Eg=e,Eg}var Ng,Uk;function WD(){if(Uk)return Ng;Uk=1;var e=Lu(),n=HD();function r(i,o){return n(i||[],o||[],e)}return Ng=r,Ng}var Cg,Hk;function it(){if(Hk)return Cg;Hk=1;var e;if(typeof Kv=="function")try{e={cloneDeep:aD(),constant:iy(),defaults:lD(),each:zC(),filter:ZC(),find:mD(),flatten:mR(),forEach:FC(),forIn:gD(),has:JC(),isUndefined:eR(),last:vD(),map:nR(),mapValues:yD(),max:xD(),merge:ND(),min:CD(),minBy:RD(),now:jD(),pick:PD(),range:qD(),reduce:rR(),sortBy:BD(),uniqueId:UD(),values:lR(),zipObject:WD()}}catch{}return e||(e=window._),Cg=e,Cg}var Rg,Wk;function VD(){if(Wk)return Rg;Wk=1,Rg=e;function e(){var i={};i._next=i._prev=i,this._sentinel=i}e.prototype.dequeue=function(){var i=this._sentinel,o=i._prev;if(o!==i)return n(o),o},e.prototype.enqueue=function(i){var o=this._sentinel;i._prev&&i._next&&n(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o},e.prototype.toString=function(){for(var i=[],o=this._sentinel,l=o._prev;l!==o;)i.push(JSON.stringify(l,r)),l=l._prev;return"["+i.join(", ")+"]"};function n(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function r(i,o){if(i!=="_next"&&i!=="_prev")return o}return Rg}var jg,Vk;function GD(){if(Vk)return jg;Vk=1;var e=it(),n=Jn().Graph,r=VD();jg=o;var i=e.constant(1);function o(p,d){if(p.nodeCount()<=1)return[];var m=c(p,d||i),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,d,m){for(var y=[],w=d[d.length-1],N=d[0],_;p.nodeCount();){for(;_=N.dequeue();)u(p,d,m,_);for(;_=w.dequeue();)u(p,d,m,_);if(p.nodeCount()){for(var b=d.length-2;b>0;--b)if(_=d[b].dequeue(),_){y=y.concat(u(p,d,m,_,!0));break}}}return y}function u(p,d,m,y,w){var N=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var b=p.edge(_),S=p.node(_.v);w&&N.push({v:_.v,w:_.w}),S.out-=b,h(d,m,S)}),e.forEach(p.outEdges(y.v),function(_){var b=p.edge(_),S=_.w,k=p.node(S);k.in-=b,h(d,m,k)}),p.removeNode(y.v),N}function c(p,d){var m=new n,y=0,w=0;e.forEach(p.nodes(),function(b){m.setNode(b,{v:b,in:0,out:0})}),e.forEach(p.edges(),function(b){var S=m.edge(b.v,b.w)||0,k=d(b),E=S+k;m.setEdge(b.v,b.w,E),w=Math.max(w,m.node(b.v).out+=k),y=Math.max(y,m.node(b.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(b){h(N,_,m.node(b))}),{graph:m,buckets:N,zeroIdx:_}}function h(p,d,m){m.out?m.in?p[m.out-m.in+d].enqueue(m):p[p.length-1].enqueue(m):p[0].enqueue(m)}return jg}var Tg,Gk;function YD(){if(Gk)return Tg;Gk=1;var e=it(),n=GD();Tg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(h){var p=l.edge(h);l.removeEdge(h),p.forwardName=h.name,p.reversed=!0,l.setEdge(h.w,h.v,p,e.uniqueId("rev"))});function c(h){return function(p){return h.edge(p).weight}}}function i(l){var u=[],c={},h={};function p(d){e.has(h,d)||(h[d]=!0,c[d]=!0,e.forEach(l.outEdges(d),function(m){e.has(c,m.w)?u.push(m):p(m.w)}),delete c[d])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var h=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,h)}})}return Tg}var Ag,Yk;function hn(){if(Yk)return Ag;Yk=1;var e=it(),n=Jn().Graph;Ag={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:h,normalizeRanks:p,removeEmptyRanks:d,addBorderNode:m,maxRank:y,partition:w,time:N,notime:_};function r(b,S,k,E){var C;do C=e.uniqueId(E);while(b.hasNode(C));return k.dummy=S,b.setNode(C,k),C}function i(b){var S=new n().setGraph(b.graph());return e.forEach(b.nodes(),function(k){S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){var E=S.edge(k.v,k.w)||{weight:0,minlen:1},C=b.edge(k);S.setEdge(k.v,k.w,{weight:E.weight+C.weight,minlen:Math.max(E.minlen,C.minlen)})}),S}function o(b){var S=new n({multigraph:b.isMultigraph()}).setGraph(b.graph());return e.forEach(b.nodes(),function(k){b.children(k).length||S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){S.setEdge(k,b.edge(k))}),S}function l(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.outEdges(k),function(C){E[C.w]=(E[C.w]||0)+b.edge(C).weight}),E});return e.zipObject(b.nodes(),S)}function u(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.inEdges(k),function(C){E[C.v]=(E[C.v]||0)+b.edge(C).weight}),E});return e.zipObject(b.nodes(),S)}function c(b,S){var k=b.x,E=b.y,C=S.x-k,I=S.y-E,O=b.width/2,A=b.height/2;if(!C&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var U,L;return Math.abs(I)*O>Math.abs(C)*A?(I<0&&(A=-A),U=A*C/I,L=A):(C<0&&(O=-O),U=O,L=O*I/C),{x:k+U,y:E+L}}function h(b){var S=e.map(e.range(y(b)+1),function(){return[]});return e.forEach(b.nodes(),function(k){var E=b.node(k),C=E.rank;e.isUndefined(C)||(S[C][E.order]=k)}),S}function p(b){var S=e.min(e.map(b.nodes(),function(k){return b.node(k).rank}));e.forEach(b.nodes(),function(k){var E=b.node(k);e.has(E,"rank")&&(E.rank-=S)})}function d(b){var S=e.min(e.map(b.nodes(),function(I){return b.node(I).rank})),k=[];e.forEach(b.nodes(),function(I){var O=b.node(I).rank-S;k[O]||(k[O]=[]),k[O].push(I)});var E=0,C=b.graph().nodeRankFactor;e.forEach(k,function(I,O){e.isUndefined(I)&&O%C!==0?--E:E&&e.forEach(I,function(A){b.node(A).rank+=E})})}function m(b,S,k,E){var C={width:0,height:0};return arguments.length>=4&&(C.rank=k,C.order=E),r(b,"border",C,S)}function y(b){return e.max(e.map(b.nodes(),function(S){var k=b.node(S).rank;if(!e.isUndefined(k))return k}))}function w(b,S){var k={lhs:[],rhs:[]};return e.forEach(b,function(E){S(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(b,S){var k=e.now();try{return S()}finally{console.log(b+" time: "+(e.now()-k)+"ms")}}function _(b,S){return S()}return Ag}var Ig,Kk;function KD(){if(Kk)return Ig;Kk=1;var e=it(),n=hn();Ig={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){i(l,u)})}function i(l,u){var c=u.v,h=l.node(c).rank,p=u.w,d=l.node(p).rank,m=u.name,y=l.edge(u),w=y.labelRank;if(d!==h+1){l.removeEdge(u);var N,_,b;for(b=0,++h;h<d;++b,++h)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:h},N=n.addDummyNode(l,"edge",_,"_d"),h===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},m),b===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,p,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),h=c.edgeLabel,p;for(l.setEdge(c.edgeObj,h);c.dummy;)p=l.successors(u)[0],l.removeNode(u),h.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(h.x=c.x,h.y=c.y,h.width=c.width,h.height=c.height),u=p,c=l.node(u)})}return Ig}var Mg,Xk;function xu(){if(Xk)return Mg;Xk=1;var e=it();Mg={longestPath:n,slack:r};function n(i){var o={};function l(u){var c=i.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var h=e.min(e.map(i.outEdges(u),function(p){return l(p.w)-i.edge(p).minlen}));return(h===Number.POSITIVE_INFINITY||h===void 0||h===null)&&(h=0),c.rank=h}e.forEach(i.sources(),l)}function r(i,o){return i.node(o.w).rank-i.node(o.v).rank-i.edge(o).minlen}return Mg}var Pg,Qk;function wR(){if(Qk)return Pg;Qk=1;var e=it(),n=Jn().Graph,r=xu().slack;Pg=i;function i(c){var h=new n({directed:!1}),p=c.nodes()[0],d=c.nodeCount();h.setNode(p,{});for(var m,y;o(h,c)<d;)m=l(h,c),y=h.hasNode(m.v)?r(c,m):-r(c,m),u(h,c,y);return h}function o(c,h){function p(d){e.forEach(h.nodeEdges(d),function(m){var y=m.v,w=d===y?m.w:y;!c.hasNode(w)&&!r(h,m)&&(c.setNode(w,{}),c.setEdge(d,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,h){return e.minBy(h.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(h,p)})}function u(c,h,p){e.forEach(c.nodes(),function(d){h.node(d).rank+=p})}return Pg}var Og,Zk;function XD(){if(Zk)return Og;Zk=1;var e=it(),n=wR(),r=xu().slack,i=xu().longestPath,o=Jn().alg.preorder,l=Jn().alg.postorder,u=hn().simplify;Og=c,c.initLowLimValues=m,c.initCutValues=h,c.calcCutValue=d,c.leaveEdge=w,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var C=n(E);m(C),h(C,E);for(var I,O;I=w(C);)O=N(C,E,I),_(C,E,I,O)}function h(E,C){var I=l(E,E.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(O){p(E,C,O)})}function p(E,C,I){var O=E.node(I),A=O.parent;E.edge(I,A).cutvalue=d(E,C,I)}function d(E,C,I){var O=E.node(I),A=O.parent,U=!0,L=C.edge(I,A),P=0;return L||(U=!1,L=C.edge(A,I)),P=L.weight,e.forEach(C.nodeEdges(I),function(q){var G=q.v===I,F=G?q.w:q.v;if(F!==A){var T=G===U,B=C.edge(q).weight;if(P+=T?B:-B,S(E,I,F)){var z=E.edge(I,F).cutvalue;P+=T?-z:z}}}),P}function m(E,C){arguments.length<2&&(C=E.nodes()[0]),y(E,{},1,C)}function y(E,C,I,O,A){var U=I,L=E.node(O);return C[O]=!0,e.forEach(E.neighbors(O),function(P){e.has(C,P)||(I=y(E,C,I,P,O))}),L.low=U,L.lim=I++,A?L.parent=A:delete L.parent,I}function w(E){return e.find(E.edges(),function(C){return E.edge(C).cutvalue<0})}function N(E,C,I){var O=I.v,A=I.w;C.hasEdge(O,A)||(O=I.w,A=I.v);var U=E.node(O),L=E.node(A),P=U,q=!1;U.lim>L.lim&&(P=L,q=!0);var G=e.filter(C.edges(),function(F){return q===k(E,E.node(F.v),P)&&q!==k(E,E.node(F.w),P)});return e.minBy(G,function(F){return r(C,F)})}function _(E,C,I,O){var A=I.v,U=I.w;E.removeEdge(A,U),E.setEdge(O.v,O.w,{}),m(E),h(E,C),b(E,C)}function b(E,C){var I=e.find(E.nodes(),function(A){return!C.node(A).parent}),O=o(E,I);O=O.slice(1),e.forEach(O,function(A){var U=E.node(A).parent,L=C.edge(A,U),P=!1;L||(L=C.edge(U,A),P=!0),C.node(A).rank=C.node(U).rank+(P?L.minlen:-L.minlen)})}function S(E,C,I){return E.hasEdge(C,I)}function k(E,C,I){return I.low<=C.lim&&C.lim<=I.lim}return Og}var Lg,Jk;function QD(){if(Jk)return Lg;Jk=1;var e=xu(),n=e.longestPath,r=wR(),i=XD();Lg=o;function o(h){switch(h.graph().ranker){case"network-simplex":c(h);break;case"tight-tree":u(h);break;case"longest-path":l(h);break;default:c(h)}}var l=n;function u(h){n(h),r(h)}function c(h){i(h)}return Lg}var qg,eE;function ZD(){if(eE)return qg;eE=1;var e=it();qg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),h=c.edgeObj,p=r(o,l,h.v,h.w),d=p.path,m=p.lca,y=0,w=d[y],N=!0;u!==h.w;){if(c=o.node(u),N){for(;(w=d[y])!==m&&o.node(w).maxRank<c.rank;)y++;w===m&&(N=!1)}if(!N){for(;y<d.length-1&&o.node(w=d[y+1]).minRank<=c.rank;)y++;w=d[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var h=[],p=[],d=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),h.push(y);while(y&&(l[y].low>d||m>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:h.concat(p.reverse()),lca:w}}function i(o){var l={},u=0;function c(h){var p=u;e.forEach(o.children(h),c),l[h]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return qg}var $g,tE;function JD(){if(tE)return $g;tE=1;var e=it(),n=hn();$g={run:r,cleanup:u};function r(c){var h=n.addDummyNode(c,"root",{},"_root"),p=o(c),d=e.max(e.values(p))-1,m=2*d+1;c.graph().nestingRoot=h,e.forEach(c.edges(),function(w){c.edge(w).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(w){i(c,h,m,y,d,p,w)}),c.graph().nodeRankFactor=m}function i(c,h,p,d,m,y,w){var N=c.children(w);if(!N.length){w!==h&&c.setEdge(h,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),b=n.addBorderNode(c,"_bb"),S=c.node(w);c.setParent(_,w),S.borderTop=_,c.setParent(b,w),S.borderBottom=b,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),C=E.borderTop?E.borderTop:k,I=E.borderBottom?E.borderBottom:k,O=E.borderTop?d:2*d,A=C!==I?1:m-y[w]+1;c.setEdge(_,C,{weight:O,minlen:A,nestingEdge:!0}),c.setEdge(I,b,{weight:O,minlen:A,nestingEdge:!0})}),c.parent(w)||c.setEdge(h,_,{weight:0,minlen:m+y[w]})}function o(c){var h={};function p(d,m){var y=c.children(d);y&&y.length&&e.forEach(y,function(w){p(w,m+1)}),h[d]=m}return e.forEach(c.children(),function(d){p(d,1)}),h}function l(c){return e.reduce(c.edges(),function(h,p){return h+c.edge(p).weight},0)}function u(c){var h=c.graph();c.removeNode(h.nestingRoot),delete h.nestingRoot,e.forEach(c.edges(),function(p){var d=c.edge(p);d.nestingEdge&&c.removeEdge(p)})}return $g}var Dg,nE;function e4(){if(nE)return Dg;nE=1;var e=it(),n=hn();Dg=r;function r(o){function l(u){var c=o.children(u),h=o.node(u);if(c.length&&e.forEach(c,l),e.has(h,"minRank")){h.borderLeft=[],h.borderRight=[];for(var p=h.minRank,d=h.maxRank+1;p<d;++p)i(o,"borderLeft","_bl",u,h,p),i(o,"borderRight","_br",u,h,p)}}e.forEach(o.children(),l)}function i(o,l,u,c,h,p){var d={width:0,height:0,rank:p,borderType:l},m=h[l][p-1],y=n.addDummyNode(o,"border",d,u);h[l][p]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return Dg}var Fg,rE;function t4(){if(rE)return Fg;rE=1;var e=it();Fg={adjust:n,undo:r};function n(p){var d=p.graph().rankdir.toLowerCase();(d==="lr"||d==="rl")&&i(p)}function r(p){var d=p.graph().rankdir.toLowerCase();(d==="bt"||d==="rl")&&l(p),(d==="lr"||d==="rl")&&(c(p),i(p))}function i(p){e.forEach(p.nodes(),function(d){o(p.node(d))}),e.forEach(p.edges(),function(d){o(p.edge(d))})}function o(p){var d=p.width;p.width=p.height,p.height=d}function l(p){e.forEach(p.nodes(),function(d){u(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(d){h(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,h),e.has(m,"x")&&h(m)})}function h(p){var d=p.x;p.x=p.y,p.y=d}return Fg}var zg,sE;function n4(){if(sE)return zg;sE=1;var e=it();zg=n;function n(r){var i={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(i,p)){i[p]=!0;var d=r.node(p);u[d.rank].push(p),e.forEach(r.successors(p),c)}}var h=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(h,c),u}return zg}var Bg,iE;function r4(){if(iE)return Bg;iE=1;var e=it();Bg=n;function n(i,o){for(var l=0,u=1;u<o.length;++u)l+=r(i,o[u-1],o[u]);return l}function r(i,o,l){for(var u=e.zipObject(l,e.map(l,function(y,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(w){return{pos:u[w.w],weight:i.edge(w).weight}}),"pos")}),!0),h=1;h<l.length;)h<<=1;var p=2*h-1;h-=1;var d=e.map(new Array(p),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var w=y.pos+h;d[w]+=y.weight;for(var N=0;w>0;)w%2&&(N+=d[w+1]),w=w-1>>1,d[w]+=y.weight;m+=y.weight*N})),m}return Bg}var Ug,oE;function s4(){if(oE)return Ug;oE=1;var e=it();Ug=n;function n(r,i){return e.map(i,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,h){var p=r.edge(h),d=r.node(h.v);return{sum:c.sum+p.weight*d.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Ug}var Hg,aE;function i4(){if(aE)return Hg;aE=1;var e=it();Hg=n;function n(o,l){var u={};e.forEach(o,function(h,p){var d=u[h.v]={indegree:0,in:[],out:[],vs:[h.v],i:p};e.isUndefined(h.barycenter)||(d.barycenter=h.barycenter,d.weight=h.weight)}),e.forEach(l.edges(),function(h){var p=u[h.v],d=u[h.w];!e.isUndefined(p)&&!e.isUndefined(d)&&(d.indegree++,p.out.push(u[h.w]))});var c=e.filter(u,function(h){return!h.indegree});return r(c)}function r(o){var l=[];function u(p){return function(d){d.merged||(e.isUndefined(d.barycenter)||e.isUndefined(p.barycenter)||d.barycenter>=p.barycenter)&&i(p,d)}}function c(p){return function(d){d.in.push(p),--d.indegree===0&&o.push(d)}}for(;o.length;){var h=o.pop();l.push(h),e.forEach(h.in.reverse(),u(h)),e.forEach(h.out,c(h))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["vs","i","barycenter","weight"])})}function i(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 Wg,lE;function o4(){if(lE)return Wg;lE=1;var e=it(),n=hn();Wg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),h=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),d=[],m=0,y=0,w=0;h.sort(o(!!u)),w=i(d,p,w),e.forEach(h,function(_){w+=_.vs.length,d.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,w=i(d,p,w)});var N={vs:e.flatten(d,!0)};return y&&(N.barycenter=m/y,N.weight=y),N}function i(l,u,c){for(var h;u.length&&(h=e.last(u)).i<=c;)u.pop(),l.push(h.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 Wg}var Vg,uE;function a4(){if(uE)return Vg;uE=1;var e=it(),n=s4(),r=i4(),i=o4();Vg=o;function o(c,h,p,d){var m=c.children(h),y=c.node(h),w=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};w&&(m=e.filter(m,function(I){return I!==w&&I!==N}));var b=n(c,m);e.forEach(b,function(I){if(c.children(I.v).length){var O=o(c,I.v,p,d);_[I.v]=O,e.has(O,"barycenter")&&u(I,O)}});var S=r(b,p);l(S,_);var k=i(S,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),C=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+C.order)/(k.weight+2),k.weight+=2}return k}function l(c,h){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(d){return h[d]?h[d].vs:d}),!0)})}function u(c,h){e.isUndefined(c.barycenter)?(c.barycenter=h.barycenter,c.weight=h.weight):(c.barycenter=(c.barycenter*c.weight+h.barycenter*h.weight)/(c.weight+h.weight),c.weight+=h.weight)}return Vg}var Gg,cE;function l4(){if(cE)return Gg;cE=1;var e=it(),n=Jn().Graph;Gg=r;function r(o,l,u){var c=i(o),h=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var d=o.node(p),m=o.parent(p);(d.rank===l||d.minRank<=l&&l<=d.maxRank)&&(h.setNode(p),h.setParent(p,m||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,N=h.edge(w,p),_=e.isUndefined(N)?0:N.weight;h.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(d,"minRank")&&h.setNode(p,{borderLeft:d.borderLeft[l],borderRight:d.borderRight[l]}))}),h}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return Gg}var Yg,dE;function u4(){if(dE)return Yg;dE=1;var e=it();Yg=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var h=r.parent(c),p,d;h;){if(p=r.parent(h),p?(d=l[p],l[p]=h):(d=u,u=h),d&&d!==h){i.setEdge(d,h);return}h=p}})}return Yg}var Kg,fE;function c4(){if(fE)return Kg;fE=1;var e=it(),n=n4(),r=r4(),i=a4(),o=l4(),l=u4(),u=Jn().Graph,c=hn();Kg=h;function h(y){var w=c.maxRank(y),N=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),b=n(y);m(y,b);for(var S=Number.POSITIVE_INFINITY,k,E=0,C=0;C<4;++E,++C){d(E%2?N:_,E%4>=2),b=c.buildLayerMatrix(y);var I=r(y,b);I<S&&(C=0,k=e.cloneDeep(b),S=I)}m(y,k)}function p(y,w,N){return e.map(w,function(_){return o(y,_,N)})}function d(y,w){var N=new u;e.forEach(y,function(_){var b=_.graph().root,S=i(_,b,N,w);e.forEach(S.vs,function(k,E){_.node(k).order=E}),l(_,N,S.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,b){y.node(_).order=b})})}return Kg}var Xg,hE;function d4(){if(hE)return Xg;hE=1;var e=it(),n=Jn().Graph,r=hn();Xg={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(S,k){var E={};function C(I,O){var A=0,U=0,L=I.length,P=e.last(O);return e.forEach(O,function(q,G){var F=l(S,q),T=F?S.node(F).order:L;(F||q===P)&&(e.forEach(O.slice(U,G+1),function(B){e.forEach(S.predecessors(B),function(z){var ne=S.node(z),Z=ne.order;(Z<A||T<Z)&&!(ne.dummy&&S.node(B).dummy)&&u(E,z,B)})}),U=G+1,A=T)}),O}return e.reduce(k,C),E}function o(S,k){var E={};function C(O,A,U,L,P){var q;e.forEach(e.range(A,U),function(G){q=O[G],S.node(q).dummy&&e.forEach(S.predecessors(q),function(F){var T=S.node(F);T.dummy&&(T.order<L||T.order>P)&&u(E,F,q)})})}function I(O,A){var U=-1,L,P=0;return e.forEach(A,function(q,G){if(S.node(q).dummy==="border"){var F=S.predecessors(q);F.length&&(L=S.node(F[0]).order,C(A,P,G,U,L),P=G,U=L)}C(A,P,A.length,L,O.length)}),A}return e.reduce(k,I),E}function l(S,k){if(S.node(k).dummy)return e.find(S.predecessors(k),function(E){return S.node(E).dummy})}function u(S,k,E){if(k>E){var C=k;k=E,E=C}var I=S[k];I||(S[k]=I={}),I[E]=!0}function c(S,k,E){if(k>E){var C=k;k=E,E=C}return e.has(S[k],E)}function h(S,k,E,C){var I={},O={},A={};return e.forEach(k,function(U){e.forEach(U,function(L,P){I[L]=L,O[L]=L,A[L]=P})}),e.forEach(k,function(U){var L=-1;e.forEach(U,function(P){var q=C(P);if(q.length){q=e.sortBy(q,function(z){return A[z]});for(var G=(q.length-1)/2,F=Math.floor(G),T=Math.ceil(G);F<=T;++F){var B=q[F];O[P]===P&&L<A[B]&&!c(E,P,B)&&(O[B]=P,O[P]=I[P]=I[B],L=A[B])}}})}),{root:I,align:O}}function p(S,k,E,C,I){var O={},A=d(S,k,E,I),U=I?"borderLeft":"borderRight";function L(G,F){for(var T=A.nodes(),B=T.pop(),z={};B;)z[B]?G(B):(z[B]=!0,T.push(B),T=T.concat(F(B))),B=T.pop()}function P(G){O[G]=A.inEdges(G).reduce(function(F,T){return Math.max(F,O[T.v]+A.edge(T))},0)}function q(G){var F=A.outEdges(G).reduce(function(B,z){return Math.min(B,O[z.w]-A.edge(z))},Number.POSITIVE_INFINITY),T=S.node(G);F!==Number.POSITIVE_INFINITY&&T.borderType!==U&&(O[G]=Math.max(O[G],F))}return L(P,A.predecessors.bind(A)),L(q,A.successors.bind(A)),e.forEach(C,function(G){O[G]=O[E[G]]}),O}function d(S,k,E,C){var I=new n,O=S.graph(),A=_(O.nodesep,O.edgesep,C);return e.forEach(k,function(U){var L;e.forEach(U,function(P){var q=E[P];if(I.setNode(q),L){var G=E[L],F=I.edge(G,q);I.setEdge(G,q,Math.max(A(S,P,L),F||0))}L=P})}),I}function m(S,k){return e.minBy(e.values(k),function(E){var C=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(E,function(O,A){var U=b(S,A)/2;C=Math.max(O+U,C),I=Math.min(O-U,I)}),C-I})}function y(S,k){var E=e.values(k),C=e.min(E),I=e.max(E);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(A){var U=O+A,L=S[U],P;if(L!==k){var q=e.values(L);P=A==="l"?C-e.min(q):I-e.max(q),P&&(S[U]=e.mapValues(L,function(G){return G+P}))}})})}function w(S,k){return e.mapValues(S.ul,function(E,C){if(k)return S[k.toLowerCase()][C];var I=e.sortBy(e.map(S,C));return(I[1]+I[2])/2})}function N(S){var k=r.buildLayerMatrix(S),E=e.merge(i(S,k),o(S,k)),C={},I;e.forEach(["u","d"],function(A){I=A==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(I=e.map(I,function(G){return e.values(G).reverse()}));var L=(A==="u"?S.predecessors:S.successors).bind(S),P=h(S,I,E,L),q=p(S,I,P.root,P.align,U==="r");U==="r"&&(q=e.mapValues(q,function(G){return-G})),C[A+U]=q})});var O=m(S,C);return y(C,O),w(C,S.graph().align)}function _(S,k,E){return function(C,I,O){var A=C.node(I),U=C.node(O),L=0,P;if(L+=A.width/2,e.has(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":P=-A.width/2;break;case"r":P=A.width/2;break}if(P&&(L+=E?P:-P),P=0,L+=(A.dummy?k:S)/2,L+=(U.dummy?k:S)/2,L+=U.width/2,e.has(U,"labelpos"))switch(U.labelpos.toLowerCase()){case"l":P=U.width/2;break;case"r":P=-U.width/2;break}return P&&(L+=E?P:-P),P=0,L}}function b(S,k){return S.node(k).width}return Xg}var Qg,pE;function f4(){if(pE)return Qg;pE=1;var e=it(),n=hn(),r=d4().positionX;Qg=i;function i(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,h=0;e.forEach(u,function(p){var d=e.max(e.map(p,function(m){return l.node(m).height}));e.forEach(p,function(m){l.node(m).y=h+d/2}),h+=d+c})}return Qg}var Zg,mE;function h4(){if(mE)return Zg;mE=1;var e=it(),n=YD(),r=KD(),i=QD(),o=hn().normalizeRanks,l=ZD(),u=hn().removeEmptyRanks,c=JD(),h=e4(),p=t4(),d=c4(),m=f4(),y=hn(),w=Jn().Graph;Zg=N;function N(H,J){var re=J&&J.debugTiming?y.time:y.notime;re("layout",function(){var le=re(" buildLayoutGraph",function(){return L(H)});re(" runLayout",function(){_(le,re)}),re(" updateInputGraph",function(){b(H,le)})})}function _(H,J){J(" makeSpaceForEdgeLabels",function(){P(H)}),J(" removeSelfEdges",function(){$(H)}),J(" acyclic",function(){n.run(H)}),J(" nestingGraph.run",function(){c.run(H)}),J(" rank",function(){i(y.asNonCompoundGraph(H))}),J(" injectEdgeLabelProxies",function(){q(H)}),J(" removeEmptyRanks",function(){u(H)}),J(" nestingGraph.cleanup",function(){c.cleanup(H)}),J(" normalizeRanks",function(){o(H)}),J(" assignRankMinMax",function(){G(H)}),J(" removeEdgeLabelProxies",function(){F(H)}),J(" normalize.run",function(){r.run(H)}),J(" parentDummyChains",function(){l(H)}),J(" addBorderSegments",function(){h(H)}),J(" order",function(){d(H)}),J(" insertSelfEdges",function(){Q(H)}),J(" adjustCoordinateSystem",function(){p.adjust(H)}),J(" position",function(){m(H)}),J(" positionSelfEdges",function(){M(H)}),J(" removeBorderNodes",function(){Z(H)}),J(" normalize.undo",function(){r.undo(H)}),J(" fixupEdgeLabelCoords",function(){z(H)}),J(" undoCoordinateSystem",function(){p.undo(H)}),J(" translateGraph",function(){T(H)}),J(" assignNodeIntersects",function(){B(H)}),J(" reversePoints",function(){ne(H)}),J(" acyclic.undo",function(){n.undo(H)})}function b(H,J){e.forEach(H.nodes(),function(re){var le=H.node(re),fe=J.node(re);le&&(le.x=fe.x,le.y=fe.y,J.children(re).length&&(le.width=fe.width,le.height=fe.height))}),e.forEach(H.edges(),function(re){var le=H.edge(re),fe=J.edge(re);le.points=fe.points,e.has(fe,"x")&&(le.x=fe.x,le.y=fe.y)}),H.graph().width=J.graph().width,H.graph().height=J.graph().height}var S=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],C=["width","height"],I={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function L(H){var J=new w({multigraph:!0,compound:!0}),re=K(H.graph());return J.setGraph(e.merge({},k,V(re,S),e.pick(re,E))),e.forEach(H.nodes(),function(le){var fe=K(H.node(le));J.setNode(le,e.defaults(V(fe,C),I)),J.setParent(le,H.parent(le))}),e.forEach(H.edges(),function(le){var fe=K(H.edge(le));J.setEdge(le,e.merge({},A,V(fe,O),e.pick(fe,U)))}),J}function P(H){var J=H.graph();J.ranksep/=2,e.forEach(H.edges(),function(re){var le=H.edge(re);le.minlen*=2,le.labelpos.toLowerCase()!=="c"&&(J.rankdir==="TB"||J.rankdir==="BT"?le.width+=le.labeloffset:le.height+=le.labeloffset)})}function q(H){e.forEach(H.edges(),function(J){var re=H.edge(J);if(re.width&&re.height){var le=H.node(J.v),fe=H.node(J.w),te={rank:(fe.rank-le.rank)/2+le.rank,e:J};y.addDummyNode(H,"edge-proxy",te,"_ep")}})}function G(H){var J=0;e.forEach(H.nodes(),function(re){var le=H.node(re);le.borderTop&&(le.minRank=H.node(le.borderTop).rank,le.maxRank=H.node(le.borderBottom).rank,J=e.max(J,le.maxRank))}),H.graph().maxRank=J}function F(H){e.forEach(H.nodes(),function(J){var re=H.node(J);re.dummy==="edge-proxy"&&(H.edge(re.e).labelRank=re.rank,H.removeNode(J))})}function T(H){var J=Number.POSITIVE_INFINITY,re=0,le=Number.POSITIVE_INFINITY,fe=0,te=H.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Te){var ye=Te.x,ke=Te.y,Ke=Te.width,we=Te.height;J=Math.min(J,ye-Ke/2),re=Math.max(re,ye+Ke/2),le=Math.min(le,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach(H.nodes(),function(Te){ve(H.node(Te))}),e.forEach(H.edges(),function(Te){var ye=H.edge(Te);e.has(ye,"x")&&ve(ye)}),J-=ce,le-=Ce,e.forEach(H.nodes(),function(Te){var ye=H.node(Te);ye.x-=J,ye.y-=le}),e.forEach(H.edges(),function(Te){var ye=H.edge(Te);e.forEach(ye.points,function(ke){ke.x-=J,ke.y-=le}),e.has(ye,"x")&&(ye.x-=J),e.has(ye,"y")&&(ye.y-=le)}),te.width=re-J+ce,te.height=fe-le+Ce}function B(H){e.forEach(H.edges(),function(J){var re=H.edge(J),le=H.node(J.v),fe=H.node(J.w),te,ce;re.points?(te=re.points[0],ce=re.points[re.points.length-1]):(re.points=[],te=fe,ce=le),re.points.unshift(y.intersectRect(le,te)),re.points.push(y.intersectRect(fe,ce))})}function z(H){e.forEach(H.edges(),function(J){var re=H.edge(J);if(e.has(re,"x"))switch((re.labelpos==="l"||re.labelpos==="r")&&(re.width-=re.labeloffset),re.labelpos){case"l":re.x-=re.width/2+re.labeloffset;break;case"r":re.x+=re.width/2+re.labeloffset;break}})}function ne(H){e.forEach(H.edges(),function(J){var re=H.edge(J);re.reversed&&re.points.reverse()})}function Z(H){e.forEach(H.nodes(),function(J){if(H.children(J).length){var re=H.node(J),le=H.node(re.borderTop),fe=H.node(re.borderBottom),te=H.node(e.last(re.borderLeft)),ce=H.node(e.last(re.borderRight));re.width=Math.abs(ce.x-te.x),re.height=Math.abs(fe.y-le.y),re.x=te.x+re.width/2,re.y=le.y+re.height/2}}),e.forEach(H.nodes(),function(J){H.node(J).dummy==="border"&&H.removeNode(J)})}function $(H){e.forEach(H.edges(),function(J){if(J.v===J.w){var re=H.node(J.v);re.selfEdges||(re.selfEdges=[]),re.selfEdges.push({e:J,label:H.edge(J)}),H.removeEdge(J)}})}function Q(H){var J=y.buildLayerMatrix(H);e.forEach(J,function(re){var le=0;e.forEach(re,function(fe,te){var ce=H.node(fe);ce.order=te+le,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode(H,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++le,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function M(H){e.forEach(H.nodes(),function(J){var re=H.node(J);if(re.dummy==="selfedge"){var le=H.node(re.e.v),fe=le.x+le.width/2,te=le.y,ce=re.x-fe,Ce=le.height/2;H.setEdge(re.e,re.label),H.removeNode(J),re.label.points=[{x:fe+2*ce/3,y:te-Ce},{x:fe+5*ce/6,y:te-Ce},{x:fe+ce,y:te},{x:fe+5*ce/6,y:te+Ce},{x:fe+2*ce/3,y:te+Ce}],re.label.x=re.x,re.label.y=re.y}})}function V(H,J){return e.mapValues(e.pick(H,J),Number)}function K(H){var J={};return e.forEach(H,function(re,le){J[le.toLowerCase()]=re}),J}return Zg}var Jg,gE;function p4(){if(gE)return Jg;gE=1;var e=it(),n=hn(),r=Jn().Graph;Jg={debugOrdering:i};function i(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,h){var p="layer"+h;u.setNode(p,{rank:"same"}),e.reduce(c,function(d,m){return u.setEdge(d,m,{style:"invis"}),m})}),u}return Jg}var ev,vE;function m4(){return vE||(vE=1,ev="0.8.5"),ev}var tv,yE;function g4(){return yE||(yE=1,tv={graphlib:Jn(),layout:h4(),debug:p4(),util:{time:hn().time,notime:hn().notime},version:m4()}),tv}var v4=g4();const wE=Rv(v4),go=240,_u=130,uo=74,Gu=72,xE=uo+Gu;function y4(e,n){var i;let r=go;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??go);return r}const xR=420,w4=2;function ja(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function x4(e,n){return((n==null?void 0:n.get(e))??0)>0?xR:0}function _4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Ta(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??go)+x4(e,r),h:Math.max((i==null?void 0:i.height)??_u,_4(e,r))}}function b4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function S4(e,n,r,i,o,l){const u=new wE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),h=new Set(c);for(const S of c){const{w:k,h:E}=Ta(S,i,l);u.setNode(S,{width:k,height:E})}for(const S of n)h.has(S.source)&&h.has(S.target)&&u.setEdge(S.source,S.target);wE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const S of c){const k=u.node(S);if(!k)continue;const E=i.get(S),C=(E==null?void 0:E.width)??go,I=(E==null?void 0:E.height)??_u,O=Ta(S,i,l),A=k.x-O.w/2,U=k.y-O.h/2;p.set(S,{x:A,y:U}),A<d&&(d=A),U<m&&(m=U),A+C>y&&(y=A+C),U+I>w&&(w=U+I)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[S,k]of p)p.set(S,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let b=null;for(const S of e){const k=o.get(S);if(!k)continue;const E=i.get(S),C=(E==null?void 0:E.width)??go,I=(E==null?void 0:E.height)??_u;b=b===null?{minX:k.x,minY:k.y,maxX:k.x+C,maxY:k.y+I}:{minX:Math.min(b.minX,k.x),minY:Math.min(b.minY,k.y),maxX:Math.max(b.maxX,k.x+C),maxY:Math.max(b.maxY,k.y+I)}}return{positions:p,width:N,height:_,pinnedBox:b}}function k4(e,n,r={}){const i=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const S of e){const k=ja(S),E=c.get(k);E?E.push(S.id):c.set(k,[S.id])}const p=Array.from(c.keys()).sort().map(S=>({sid:S,...S4(c.get(S),n,i,l,o,u)})),d=y4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=S=>{const k=[[]];let E=0;for(const C of p)k.length<S&&E>0&&E+C.height>m&&(k.push([]),E=0),k[k.length-1].push(C),E+=C.height+xE;return k},w=S=>S.reduce((k,E)=>Math.max(k,E.width),0)+xR;let N=y(r.availableWidth?w4:1);N.length>1&&N.reduce((k,E)=>k+w(E),0)+d*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let b=0;for(const S of N){const k=w(S);let E=0;for(const{positions:C,height:I,pinnedBox:O}of S){for(const[U,L]of C)_.set(U,{x:L.x+b,y:L.y+E});let A=E+I;O&&O.maxY>A&&O.minX<b+k&&b<O.maxX&&(A=O.maxY),E=A+xE}b+=k+d}return e.map(S=>{const k=o.get(S.id);if(k)return{...S,position:k};const E=_.get(S.id);return E?{...S,position:E}:S})}function E4(e,n,r,i,o){const u=uo+Gu,c=60,h=w=>Ta(w,i,o),p=new Map(e.map(w=>[w.id,ja(w)])),d=[],m=e.map(w=>({id:w.id,pos:r.get(w.id)??n.get(w.id)})).filter(w=>w.pos!=null).sort((w,N)=>w.pos.y-N.pos.y||w.pos.x-N.pos.x||w.id.localeCompare(N.id)),y=[];for(const{id:w,pos:N}of m){const{w:_,h:b}=h(w),S=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:b,sid:S});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const C=d.find(I=>{const O=I.sid===S?24:c,A=I.sid===S?24:u;return N.x<I.x+I.w+O&&I.x<N.x+_+O&&k<I.y+I.h+A&&I.y<k+b+A});if(!C)break;k=C.y+C.h+(C.sid===S?24:u)}k!==N.y&&(n.set(w,{x:N.x,y:k}),y.push(w)),d.push({x:N.x,y:k,w:_,h:b,sid:S})}return y}function N4(e,n,r,i,o,l){const u=_=>Ta(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const b=ja(_),S=h.get(b);S?S.push(_):h.set(b,[_])}const p=new Set;for(const[_,b]of h)b.every(S=>o.has(S.id)&&!r.has(S.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const b=c(_.id);if(!b)continue;const{w:S,h:k}=u(_.id),E=ja(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:b.x,y:b.y,w:S,h:k})}if(d.size===0)return[];const y=uo+Gu,w=(_,b,S,k)=>m.some(E=>_<E.x+E.w+uo&&E.x<_+S+uo&&b<E.y+E.h+y&&E.y<b+k+y),N=[];for(const _ of[...d.keys()].sort()){const b=d.get(_);let S=1/0,k=1/0,E=-1/0,C=-1/0;for(const q of b){const G=c(q.id),{w:F,h:T}=u(q.id);S=Math.min(S,G.x),k=Math.min(k,G.y),E=Math.max(E,G.x+F),C=Math.max(C,G.y+T)}const I=E-S,O=C-k,A=[...new Set(m.map(q=>Math.round(q.x)))].sort((q,G)=>q-G),U=A.length?A:[S],L=[0,...m.map(q=>q.y+q.h+y)].sort((q,G)=>q-G);let P=null;e:for(const q of U)for(const G of L){if(G>=k)break;if(!w(q,G,I,O)){P={x:q,y:G};break e}}if(P){const q=P.x-S,G=P.y-k;for(const F of b){const T=c(F.id);n.set(F.id,{x:T.x+q,y:T.y+G})}N.push(_)}for(const q of b){const G=c(q.id),{w:F,h:T}=u(q.id);m.push({x:G.x,y:G.y,w:F,h:T})}}return N}function C4(e,n,r,i,o,l=!1,u){const p=uo+Gu+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Ta(P,i,u),b=P=>r.get(P)??n.get(P),S=new Map;for(const P of e){if(!b(P.id))continue;const q=ja(P),G=S.get(q);G?G.push(P):S.set(q,[P])}const k=[],E=new Set,C=new Set,I=o.size===0;for(const P of[...S.keys()].sort()){const q=S.get(P);let G=1/0,F=1/0,T=-1/0,B=-1/0,z=!1;for(const Q of q){const M=b(Q.id),{w:V,h:K}=_(Q.id);G=Math.min(G,M.x),F=Math.min(F,M.y),T=Math.max(T,M.x+V),B=Math.max(B,M.y+K),r.has(Q.id)&&(z=!0)}const ne=T-G,Z=B-F;C.add(P);const $=o.get(P);$&&(ne>$.w+d||Z>$.h+d)&&E.add(P),o.set(P,{w:ne,h:Z}),k.push({sid:P,members:q.map(Q=>Q.id),x:G,y:F,w:ne,h:Z,anchored:z,mass:1})}for(const P of[...o.keys()])C.has(P)||o.delete(P);if(l||I)return[];let O=!1;for(let P=0;P<k.length&&!O;P++)for(let q=P+1;q<k.length;q++){const G=k[P],F=k[q];if(!(G.anchored&&F.anchored)&&Math.abs(G.x+G.w/2-(F.x+F.w/2))<(G.w+F.w)/2+61&&Math.abs(G.y+G.h/2-(F.y+F.h/2))<(G.h+F.h)/2+p){O=!0;break}}if(E.size===0&&!O)return[];if(E.size>0)for(const P of k)E.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(go*_u));const A=new Map(k.map(P=>[P.sid,P.x])),U=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const q=new Map,G=new Map;let F=0;for(let T=0;T<k.length;T++)for(let B=T+1;B<k.length;B++){const z=k[T],ne=k[B];if(z.anchored&&ne.anchored)continue;const Z=z.x+z.w/2,$=z.y+z.h/2,Q=ne.x+ne.w/2,M=ne.y+ne.h/2,V=(z.w+ne.w)/2+61-Math.abs(Z-Q),K=(z.h+ne.h)/2+p-Math.abs($-M);if(V<=0||K<=0)continue;const H=(De,Je)=>!De.anchored&&!(Je<0&&De.x<=0),J=(De,Je)=>!De.anchored&&!(Je<0&&De.y<=0),re=(De,Je,Xe)=>{const vt=De===Je,ot=vt?z.sid<ne.sid?-1:1:Math.sign(De-Je);return Xe(z,ot)||Xe(ne,-ot)?ot:vt&&(Xe(z,-ot)||Xe(ne,ot))?-ot:0},le=re(Z,Q,H),fe=re($,M,J),te=le!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||V*m<K),[ve,Te,ye,ke]=Ce?[le,V,q,H]:[fe,K,G,J],Ke=ke(z,ve),we=ke(ne,-ve),_e=z.mass,Be=ne.mass,ft=Ke?we?Be/(_e+Be):1:0,ht=we?Ke?_e/(_e+Be):1:0,He=Te*w;ye.set(z.sid,(ye.get(z.sid)??0)+ve*He*ft),ye.set(ne.sid,(ye.get(ne.sid)??0)-ve*He*ht),F+=He}for(const T of k)T.anchored||(T.x=Math.max(0,T.x+(q.get(T.sid)??0)),T.y=Math.max(0,T.y+(G.get(T.sid)??0)));if(F<N)break}const L=[];for(const P of k){const q=P.x-A.get(P.sid),G=P.y-U.get(P.sid);if(!(Math.abs(q)<1&&Math.abs(G)<1)){for(const F of P.members){if(r.has(F))continue;const T=n.get(F);T&&n.set(F,{x:T.x+q,y:T.y+G})}L.push(P.sid)}}return L}const R4=600;function kv(e,n){return!(e.exitAt!=null&&n-e.exitAt>R4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function j4(e,n){const r=new Set;for(const i of e.agents.values())kv(i,n)&&r.add(i.id);return r}function T4(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function A4(e,n,r=0){if(!e)return!1;for(const i of n)if(T4(e,i,r))return!0;return!1}const _R="sessionGroup";function I4(e,n){var i;if(e.type===_R)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const M4="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function P4(e){if(e.checkDisabled)return M4;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function O4(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function L4(e){if(e==null)return{kind:"unknown",lead:"No data yet. Start a Claude Code or Codex session — it appears here as soon as its first hook fires.",workspace:null,tail:""};const n=e.trim();return n===""?{kind:"machine",lead:"No data yet. Start a Claude Code or Codex session anywhere on this machine — this deck is unscoped and captures every workspace.",workspace:null,tail:""}:{kind:"scoped",lead:"No data yet. This deck only captures sessions running under",workspace:n,tail:" — start one there, or restart it without --workspace/--scope to watch the whole machine."}}function bR(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function q4(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${bR(e.held)} held until you resume (Space)`:"Connected — updates held until you resume (Space)"}:{tone:"live",label:"live",title:"Receiving events"}:{tone:"dead",label:"offline",title:e.paused?"SSE disconnected — and the canvas is paused, so resuming will not bring events back until it reconnects":"SSE disconnected"}}function $4(e){return e.paused?e.held<=0?{label:"Resume",title:"Nothing has arrived since you paused. Resume to follow the canvas again (Space)"}:{label:`Resume · ${e.held} held`,title:`${bR(e.held)} arrived while paused and will be applied in order when you resume (Space)`}:{label:"Pause",title:"Pause live updates — events keep arriving and are applied when you resume (Space)"}}function SR(e,n){return e!==""&&n>0}function D4(e,n,r){return e===""?{active:!1,matched:n,total:r,count:null,empty:!1,message:null,dim:!1}:{active:!0,matched:n,total:r,count:`${n} of ${r}`,empty:n===0,message:n===0?`No agents match “${e}”`:null,dim:SR(e,n)}}function Ev(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`}function F4(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function z4(e,n,r){const i=new Date(e),o=Ev(n-e);return{label:F4(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function pa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const B4={agent:DO,sessionGroup:JO},kR="react-flow__node";function _E(e){var n,r;return!!e&&((r=(n=e.classList)==null?void 0:n.contains)==null?void 0:r.call(n,kR))===!0}function U4(e){try{const n=document.querySelector(`.${kR}[data-id="${CSS.escape(e)}"]`);n==null||n.focus({preventScroll:!0})}catch{}}const H4=420,nu=18,W4=9e4,V4=200,G4=5*6e4,Y4=6,K4=2*6e4,hy="agent-dag.layout",py="agent-dag.viewport",ER="agent-dag.summariesDismissed",NR="agent-dag.sessionListOpen",CR="agent-dag.detailOpen",RR="agent-dag.usagePanelOpen",bE="agent-dag.accountsPanelOpen",SE="agent-dag.versionNoticeDismissed",kE="agent-dag.oldNameNoticeDismissed",X4=15*6e4,EE={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:"},NE="agent-dag.autoRestart",CE="agent-dag.bundleReloadedFor";function Q4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(NR)==="1"}catch{return!1}}function Z4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(NR,e?"1":"0")}catch{}}function J4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(CR)==="1"}catch{return!1}}function e5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CR,e?"1":"0")}catch{}}function t5(){const e=wC(RR);return e===null?!0:e==="1"}function n5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(RR,e?"1":"0")}catch{}}function r5(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(ER);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function RE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(ER,JSON.stringify(r))}catch{}}function s5(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(hy);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function nv(e,n){if(!(typeof window>"u"))try{const r={};for(const[i,o]of e)r[i]=o;for(const[i,o]of n)r[i]=o;window.localStorage.setItem(hy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function i5(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(py);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 o5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(py,JSON.stringify(e))}catch{}}function jE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(hy)}catch{}try{window.localStorage.removeItem(py)}catch{}}}function a5(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const d of e.agents.values())d.sessionId===n&&i.push(d);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:i.map(d=>({id:d.id,kind:d.kind,label:d.label,parentId:d.parentId,state:d.state,startedAt:d.startedAt,endedAt:d.endedAt,model:d.model,cwd:d.cwd,usage:d.usage,prompts:d.prompts,tools:d.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),h=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");h.href=c,h.download=`${zt}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Nv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Cv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},l5={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 jR(e){return e.startsWith("mcp__")?"mcp":l5[e]??"other"}function TR(e,n){var i,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(i=e.cwd)!=null&&i.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function u5(e,n){if(!n)return null;const r=new Set([n]);let i=n;for(;i;){const l=e.agents.get(i);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),i=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function c5(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,b,S,k){const E=[],C=[],I=new Set;if(l)for(const F of e.agents.values())S.has(F.id)&&TR(F,l)&&I.add(F.id);const O=SR(l,I.size);for(const F of e.agents.values()){if(!S.has(F.id))continue;const T=O&&!I.has(F.id),B=F.exitAt!=null,z=b!=null&&!b.has(F.id),ne=[T?"rf-dim":"",B?"rf-exiting":"",z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(F.id);if(E.push({id:F.id,type:"agent",position:{x:0,y:0},data:{...F,now:n,onOpenContext:k},className:ne,...Z?{width:Z.width,height:Z.height}:null}),F.parentId&&S.has(F.parentId)){const $=Vv(F.sessionId),Q=l&&!I.has(F.id)&&!I.has(F.parentId),M=B,V=_.size>0&&(_.has(F.id)||_.has(F.parentId)),K=b!=null&&!b.has(F.id)&&!b.has(F.parentId),H=F.state==="active"?2:1.5,J=V?H+1.5:H,re=Q||M?.2:K?.12:1,le=["sess-edge",F.state==="active"?"sess-live":"sess-idle",M?"rf-edge-exiting":"",V?"rf-edge-selected":""].filter(Boolean).join(" ");C.push({id:`e:${F.parentId}->${F.id}`,source:F.parentId,target:F.id,animated:(F.state==="active"||V)&&!Q&&!M,type:"smoothstep",style:{"--session-hue":$,strokeWidth:J,opacity:re,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:le})}}const A=new Map;for(const F of e.agents.values())F.tools.length>0&&A.set(F.id,Math.min(4,F.tools.length));const U=`${w}#lanes:${b4(A)}`,L=E.filter(F=>LL(F.id,o,m,y));if(L.length>0||U!==N.current){if(L.length>0){const F=k4(E,C,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:A});for(const T of F)yC(T.id,m,y)&&$L(T.id,T.position,m,y);N4(E,m,o,u,new Set(L.map(T=>T.id)),A)}E4(E,m,o,u,A),N.current=U}const P=C4(E,m,o,u,c,!p||d,A);P.length>0&&h(P),Zl(m,e.agents),Zl(y,e.agents),Zl(o,e.agents),Zl(u,OL(e.agents.values()));const q=[];let G=!1;for(const F of E){let T=o.get(F.id)??m.get(F.id);T||(T=qL(F.id,m,y),G=!0),q.push({...F,position:T})}return G&&(N.current=""),{nodes:q,edges:C}}function d5(){return g.jsx(Wv,{children:g.jsx(f5,{})})}function f5(){var Fs,Po,Ua,Ha;const e=Oa(),n=j.useRef(wv()),[,r]=j.useState(0),i=j.useCallback(()=>r(W=>W+1),[]),[o,l]=j.useState(()=>new Set),[u,c]=j.useState(null),[h,p]=j.useState(null),d=j.useCallback((W,Y)=>{l(oe=>{if(!Y)return new Set([W]);const de=new Set(oe);return de.has(W)?de.delete(W):de.add(W),de}),c(oe=>Y&&oe===W?oe:W)},[]),m=j.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useCallback(W=>_(W),[]),[S,k]=j.useState(!1),E=j.useRef(r5()),[C,I]=j.useState(Q4);j.useEffect(()=>{Z4(C)},[C]);const[O,A]=j.useState(J4);j.useEffect(()=>{e5(O)},[O]);const[U,L]=j.useState(t5);j.useEffect(()=>{n5(U)},[U]);const[P,q]=j.useState(()=>{try{const W=window.localStorage.getItem(bE);return W===null?!0:W==="1"}catch{return!0}});j.useEffect(()=>{try{window.localStorage.setItem(bE,P?"1":"0")}catch{}},[P]);const[G,F]=j.useState(null),[T,B]=j.useState(!1),[z,ne]=j.useState(0),[Z,$]=j.useState(0);j.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(F(W.enabled===!0),ne((W.foreign??[]).filter(Y=>Y.worksHere).length),$(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const Q=j.useCallback(async()=>{B(!0);try{const Y=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!G})})).json().catch(()=>null);Y!=null&&Y.ok&&F(Y.enabled===!0),fetch("/api/sound-hook").then(oe=>oe.ok?oe.json():null).then(oe=>{oe!=null&&oe.ok&&(ne((oe.foreign??[]).filter(de=>de.worksHere).length),$(typeof oe.parked=="number"?oe.parked:0))}).catch(()=>{})}catch{}finally{B(!1)}},[G]),[M,V]=j.useState(!1),[K,H]=j.useState(null),[J,re]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(SE)??""}catch{return""}}),[le,fe]=j.useState(!1),te=j.useRef(0),[ce,Ce]=j.useState(!1),ve=j.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(Y=>Y.ok?Y.json():null).then(Y=>{Y&&H(Y)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),Te=j.useCallback(()=>{ve(Date.now()-te.current>=X4)},[ve]);j.useEffect(()=>{ve();const W=window.setInterval(Te,5*6e4),Y=()=>{document.visibilityState==="visible"&&Te()};return document.addEventListener("visibilitychange",Y),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",Y)}},[ve,Te]),j.useEffect(()=>{M&&ve()},[M,ve]);const ye=(K==null?void 0:K.notice)??null,[ke,Ke]=j.useState(null);j.useEffect(()=>{let W=!1;return fetch("/api/health").then(Y=>Y.ok?Y.json():null).then(Y=>{W||!Y||typeof Y.workspace!="string"||Ke(Y.workspace)}).catch(()=>{}),()=>{W=!0}},[M]);const we=ye?`${ye.kind}:${ye.to}`:"",_e=ye!=null&&J!==we,Be=j.useCallback(()=>{if(!ye)return;const W=J===we?"":we;re(W);try{window.localStorage.setItem(SE,W)}catch{}},[ye,we,J]),[ft,ht]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(kE)??""}catch{return""}}),He=K!=null&&K.invokedAs&&K.invokedAs!==zt?K.invokedAs:null,De=He!=null&&ft!==He,Je=j.useCallback(()=>{if(He){ht(He);try{window.localStorage.setItem(kE,He)}catch{}}},[He]),Xe=((Fs=K==null?void 0:K.upgrade)==null?void 0:Fs.state)??"idle",vt=kL(K==null?void 0:K.upgrade),ot=j.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);j.useEffect(()=>{if(Xe!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Xe,ve]);const yt=j.useCallback(async()=>{var oe;const W=K==null?void 0:K.command;if(!W)return;let Y=!1;try{Y=await Promise.race([((oe=navigator.clipboard)==null?void 0:oe.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{Y=!1}if(!Y)try{const de=document.createElement("textarea");de.value=W,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),Y=document.execCommand("copy"),de.remove()}catch{Y=!1}Y&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[K==null?void 0:K.command]),Kt=j.useCallback(()=>{I(W=>(W||q(!1),!W))},[]),Mt=j.useCallback(()=>{q(W=>(W||I(!1),!W))},[]),[Ze,wt]=j.useState(!1),[pt,mt]=j.useState(0),_n=j.useRef(null),[Xt,Pt]=j.useState(!1),Qt=j.useRef(null),[yr,bn]=j.useState(0),Zt=j.useRef(BL()),[pn,Sn]=j.useState(!1),Yr=j.useCallback(()=>{const W=Zt.current,Y=W.setPaused(!W.paused);for(const oe of Y)n.current=Rx(n.current,oe);Sn(W.paused)},[]),[ut,hi]=j.useState(Date.now()),[nr,Es]=j.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(NE)!=="0"}catch{return!0}}),pi=j.useCallback(()=>{Es(W=>{const Y=!W;try{window.localStorage.setItem(NE,Y?"1":"0")}catch{}return Y})},[]),[Jt,rr]=j.useState(!1),[wr,So]=j.useState("restart"),[sr,xr]=j.useState(null),mn=j.useRef(!1),Kr=j.useRef(null),mi=j.useRef(0),Xr=j.useCallback(async W=>{if(mn.current)return;const Y=(W==null?void 0:W.upgrade)===!0;mn.current=!0,Kr.current=vt;const oe=++mi.current;So(Y?"npx":"restart"),rr(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ye==null?void 0:ye.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:Y})})}catch{}window.setTimeout(()=>{if(mi.current===oe&&mn.current){mn.current=!1,rr(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},Y?18e4:3e4)},[ye==null?void 0:ye.to,vt]),Ns=j.useRef(null);j.useEffect(()=>{let W=!1;for(const oe of n.current.agents.values())if(oe.state==="active"){W=!0;break}const Y=NL({enabled:nr,kind:ye==null?void 0:ye.kind,canRestart:(K==null?void 0:K.canRestart)===!0,busy:W,idleSince:Ns.current,now:ut});Ns.current=Y.idleSince,Y.restart&&Xr()},[nr,ye==null?void 0:ye.kind,K==null?void 0:K.canRestart,ut,Xr]),j.useEffect(()=>{const W=K==null?void 0:K.running;let Y=null,oe=null;try{Y=window.sessionStorage.getItem("agent-dag.restartPending"),oe=window.sessionStorage.getItem(CE)}catch{return}const de=SL({bundle:"1.33.150",running:W,pending:Y,lastTried:oe});if(de==="reload"){try{window.sessionStorage.setItem(CE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1),xr(W??null);const xe=window.setTimeout(()=>xr(null),6e3);return()=>window.clearTimeout(xe)},[K==null?void 0:K.running]),j.useEffect(()=>{if(Jt&&EL({asked:Kr.current,reported:vt})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1)}},[Jt,vt]);const gn=j.useRef(s5()).current;j.useRef(!1);const Rt=j.useRef(new Map(gn.positions.filter(([W])=>gn.pins.includes(W)))),_r=j.useRef(null),Qr=j.useState(()=>i5())[0],[en,Zr]=j.useState(""),[Cs,gi]=j.useState(()=>new Set),[ir,vi]=j.useState(GL),[et,ko]=j.useState(!1),br=j.useRef(null);j.useEffect(()=>{document.documentElement.dataset.theme=ir;try{window.localStorage.setItem(xC,ir)}catch{}},[ir]),j.useEffect(()=>{if(!Qr)return;const W=window.setTimeout(()=>{try{e.setViewport(Qr,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,Qr]);const Rs=j.useRef(!0);j.useEffect(()=>{const W=new EventSource("/events"),Y=zL(i,{now:()=>Date.now(),setTimeout:(oe,de)=>window.setTimeout(oe,de),clearTimeout:oe=>window.clearTimeout(oe)});return W.addEventListener("open",()=>{V(!0),ko(!0)}),W.addEventListener("error",()=>V(!1)),W.addEventListener("replay-end",()=>{Rs.current=!1,Y.flush()}),W.addEventListener("hook",oe=>{try{const de=JSON.parse(oe.data);if(!Zt.current.accept(de))return;n.current=Rx(n.current,de),de.replay===!0||Rs.current||Date.now()-de.receivedAt>3e4?Y.replay():Y.live()}catch{}}),()=>{W.close(),Y.cancel()}},[i]),j.useEffect(()=>{const W=setInterval(()=>{const Y=Date.now();hi(Y);let oe=iO(n.current,Y,W4);aO(n.current,Y,oO)&&(oe=!0),rO(n.current,Y,V4,G4)&&(oe=!0),sO(n.current,Y,Y4,K4)&&(oe=!0),oe&&i()},250);return()=>clearInterval(W)},[i]);const or=j.useRef(null),$n=j.useRef(0),yi=420,Ot=j.useCallback((W=500)=>{try{const Ee=document.querySelector(".canvas-wrap"),Oe=Array.from(document.querySelectorAll(".react-flow__node")).filter(xt=>xt.offsetWidth>0);if(!Ee||Oe.length===0)return;const $e=Ee.getBoundingClientRect(),Ye=e.getViewport();if(!Number.isFinite(Ye.zoom)||Ye.zoom<=0)return;const Ge=xt=>(xt-$e.left-Ye.x)/Ye.zoom,Fe=xt=>(xt-$e.top-Ye.y)/Ye.zoom,Nn=Oe.map(xt=>xt.getBoundingClientRect()),Ir=Math.min(...Nn.map(xt=>Ge(xt.left))),Oo=Math.max(...Nn.map(xt=>Ge(xt.right))),zs=Math.min(...Nn.map(xt=>Fe(xt.top))),Lo=Math.max(...Nn.map(xt=>Fe(xt.bottom))),qo=Oo-Ir,Ti=Lo-zs;if(!(qo>0&&Ti>0))return;const Bn=Math.max(.2,Math.min(1,($e.width-160)/(qo+yi)*.86,($e.height-160)/Ti*.86));e.setViewport({x:80-Ir*Bn,y:Math.max(80,($e.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},{duration:W}),$n.current=Date.now(),window.setTimeout(()=>{try{const xt={x:80-Ir*Bn,y:Math.max(80,($e.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},Wa=e.getViewport();(Math.abs(Wa.zoom-Bn)>.01||Math.abs(Wa.x-xt.x)>2)&&e.setViewport(xt,{duration:0})}catch{}},W+60)}catch{}},[e]),Ut=j.useRef(""),Sr=j.useRef(null),rn=j.useRef(0),wi=j.useCallback(()=>{rn.current=Date.now()},[]),Eo="agent-dag.autoFitDisabled",kr=j.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Eo)==="1"}catch{return!1}})()),[js,Ts]=j.useState(kr.current),Jr=j.useCallback(()=>{if(!kr.current){kr.current=!0,Ts(!0);try{window.localStorage.setItem(Eo,"1")}catch{}}},[]),xi=j.useCallback(()=>{kr.current=!1,Ts(!1);try{window.localStorage.removeItem(Eo)}catch{}Ot(400)},[e,Ot]);j.useEffect(()=>{const W=setInterval(()=>{if(kr.current||Date.now()-rn.current<800)return;const Y=n.current,oe=Date.now(),de=[];for(const Ge of Y.agents.values())kv(Ge,oe)&&de.push({id:Ge.id});if(de.length===0)return;const xe=e.getViewport(),Ee=window.innerWidth-360,Oe=window.innerHeight-52;let $e=!1,Ye=!1;for(const{id:Ge}of de){const Fe=es.current.get(Ge),Nn=Rt.current.get(Ge)??Ht.current.get(Ge);if(!Fe||!Nn)continue;Ye=!0;const Ir=Nn.x*xe.zoom+xe.x,Oo=Nn.y*xe.zoom+xe.y,zs=(Nn.x+Fe.width)*xe.zoom+xe.x,Lo=(Nn.y+Fe.height)*xe.zoom+xe.y;if(zs>0&&Ir<Ee&&Lo>0&&Oo<Oe){$e=!0;break}}Ye&&!$e&&Ot(600)},1500);return()=>clearInterval(W)},[e]);const No=j.useRef(!1),es=j.useRef(new Map),_i=j.useRef(0),Ba=j.useCallback(W=>{const Y=es.current;let oe=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ee=de.height;if(xe==null||Ee==null)continue;const Oe=Y.get(de.id);Oe?(Math.abs(Oe.height-Ee)>4||Math.abs(Oe.width-xe)>4)&&(Y.set(de.id,{width:xe,height:Ee}),oe=!0):(Y.set(de.id,{width:xe,height:Ee}),oe=!0)}return oe&&(_i.current+=1),_i.current},[]),bi=Qe(Ba),[ts,Yu]=j.useState(0);j.useEffect(()=>{let W=0;const Y=()=>{const de=es.current;let xe=!1;for(const Ee of document.querySelectorAll(".react-flow__node[data-id]")){const Oe=Ee.getAttribute("data-id");if(!Oe)continue;const $e=Ee.offsetWidth,Ye=Ee.offsetHeight;if(!$e||!Ye)continue;const Ge=de.get(Oe);(!Ge||Math.abs(Ge.width-$e)>4||Math.abs(Ge.height-Ye)>4)&&(de.set(Oe,{width:$e,height:Ye}),xe=!0)}xe&&Yu(Ee=>Ee+1)};if(No.current)return;let oe=0;return document.visibilityState==="hidden"?oe=window.setTimeout(Y,32):W=requestAnimationFrame(Y),()=>{cancelAnimationFrame(W),window.clearTimeout(oe)}});const Ht=j.useRef(new Map(gn.positions)),Ve=j.useRef(new Set),Si=j.useRef(""),Er=j.useMemo(()=>{const W=[];for(const Y of n.current.agents.values())kv(Y,ut)&&W.push(Y.id+(Y.parentId?`>${Y.parentId}`:""));return W.sort(),`${W.join("|")}#sv${bi}.${ts}`},[n.current,n.current.lastSeq,ut,bi,ts]),Nr=j.useRef(null);j.useEffect(()=>(Nr.current!=null&&window.clearTimeout(Nr.current),Nr.current=window.setTimeout(()=>{nv(Ht.current,Rt.current)},1500),()=>{Nr.current!=null&&window.clearTimeout(Nr.current)}),[Er]),j.useEffect(()=>{if(Ut.current===Er)return;const W=Ut.current;if(Ut.current=Er,!W||kr.current)return;Date.now()-$n.current>1200&&Ot(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{kr.current||Ot(500)},280)},[Er,e,Ot]);const ki=j.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const Y of o){const oe=u5(n.current,Y);if(oe)for(const de of oe)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),ar=j.useMemo(()=>j4(n.current,ut),[n.current,n.current.lastSeq,ut]),Co=j.useRef(null),[ns,As]=j.useState({w:0,h:0});j.useEffect(()=>{const W=Co.current;if(!W||typeof ResizeObserver>"u")return;const Y=new ResizeObserver(oe=>{var xe;const de=(xe=oe[0])==null?void 0:xe.contentRect;de&&As(Ee=>Math.abs(Ee.w-de.width)>40||Math.abs(Ee.h-de.height)>40?{w:de.width,h:de.height}:Ee)});return Y.observe(W),As({w:W.clientWidth,h:W.clientHeight}),()=>Y.disconnect()},[]);const lr=j.useRef(new Map),[Dn,ur]=j.useState(!1);j.useEffect(()=>{const W=window.setTimeout(()=>ur(!0),2500);return()=>window.clearTimeout(W)},[]);const[Is,Cr]=j.useState(!1),Lt=j.useRef(null),[Ro,jo]=j.useState(!1),Ms=j.useCallback(()=>{Lt.current&&(window.clearTimeout(Lt.current),Lt.current=null),Cr(!1)},[]),Ku=j.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Cr(!0),Lt.current&&window.clearTimeout(Lt.current),Lt.current=window.setTimeout(()=>Cr(!1),H4+80)})},[]);j.useEffect(()=>()=>{Lt.current&&window.clearTimeout(Lt.current)},[]);const To=ns.w>0?ns.w*.92:0,Ps=ns.h>0?ns.h:0,{nodes:Fn,edges:Xu}=j.useMemo(()=>c5(n.current,ut,To,Ps,Rt.current,en,es.current,lr.current,Ku,Dn,Ro,Ht.current,Ve.current,Er,Si,o,ki,ar,b),[n.current,n.current.lastSeq,ut,To,Ps,Dn,Ro,en,Er,o,ki,ar,b,pt]),rs=j.useMemo(()=>{const W=new Map;for(const oe of Fn){const de=oe.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=oe.width,Ee=oe.height;if(xe==null||Ee==null)continue;const Oe=oe.position.x,$e=oe.position.y,Ye=Oe+xe,Ge=$e+Ee,Fe=W.get(de.sessionId);Fe?(Fe.minX=Math.min(Fe.minX,Oe),Fe.minY=Math.min(Fe.minY,$e),Fe.maxX=Math.max(Fe.maxX,Ye),Fe.maxY=Math.max(Fe.maxY,Ge)):W.set(de.sessionId,{minX:Oe,minY:$e,maxX:Ye,maxY:Ge})}const Y=[];for(const[oe,de]of W){const xe=de.maxX-de.minX+nu*2,Ee=de.maxY-de.minY+nu*2;Y.push({id:`group:${oe}`,type:_R,position:{x:de.minX-nu,y:de.minY-nu},data:{sessionId:oe,w:xe,h:Ee},width:xe,height:Ee,style:{width:xe,height:Ee},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return Y},[Fn,ut]),Os=j.useMemo(()=>{const W=[...rs,...Fn],Y=Qt.current;return!Y||Y.size===0?W:W.map(oe=>{const de=Y.get(oe.id);return de?{...oe,position:de}:oe})},[rs,Fn,yr]),kn=j.useMemo(()=>{if(!en)return null;const W=new Set;for(const Y of n.current.agents.values())ar.has(Y.id)&&TR(Y,en)&&W.add(Y.id);return W},[n.current,n.current.lastSeq,en,ar]),En=j.useMemo(()=>D4(en,(kn==null?void 0:kn.size)??0,ar.size),[en,kn,ar]),Ei=j.useMemo(()=>{const W=new Set;for(const Y of n.current.agents.values())for(const oe of Y.tools)W.add(jR(oe.name));return Object.keys(Nv).filter(Y=>W.has(Y))},[n.current,n.current.lastSeq]);j.useEffect(()=>{if(Ei.length<=1){Pt(!1);return}let W=0;const Y=()=>{const oe=_n.current;if(oe&&!document.hidden){const de=oe.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Oe=>Oe.getBoundingClientRect()),Ee=A4(de,xe,8);Pt(Oe=>Oe===Ee?Oe:Ee)}W=window.setTimeout(Y,300)};return Y(),()=>window.clearTimeout(W)},[Ei.length]);const Ls=j.useMemo(()=>{const W=new Map;for(const oe of n.current.agents.values())for(const de of oe.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ee=xe.indexOf("__"),Oe=Ee>0?xe.slice(0,Ee):xe;W.set(Oe,(W.get(Oe)??0)+1)}const Y=[];for(const[oe,de]of W){let xe=5381;for(let Ee=0;Ee<oe.length;Ee++)xe=(xe<<5)+xe^oe.charCodeAt(Ee);Y.push({server:oe,count:de,hue:Math.abs(xe)%360})}return Y.sort((oe,de)=>de.count-oe.count),Y},[n.current,n.current.lastSeq]),Ao=j.useCallback(W=>{gi(Y=>{const oe=new Set(Y);return oe.has(W)?oe.delete(W):oe.add(W),oe})},[]),St=u?n.current.agents.get(u):null,qs=h?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===h)??null:null,Io=j.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=wv(),Rt.current.clear(),es.current.clear(),Ht.current.clear(),Si.current="",jE(),m(),i()},[i,m]),zn=j.useRef(S);zn.current=S;const Ni=j.useRef(!1);Ni.current=qs!=null||Ze||N!=null||y!=null;const Rr=j.useCallback(W=>{const Y=RL(W,{confirmOpen:zn.current,modalOpen:Ni.current});Y==="confirm"?k(!0):Y==="clear"&&(k(!1),Io())},[Io]),Ci=j.useCallback(()=>{Rt.current.clear(),Ht.current.clear(),Si.current="",jE(),i(),window.setTimeout(()=>Ot(500),80)},[i,e,Ot]),$s=j.useCallback(()=>Ot(500),[Ot]),jr=j.useRef(Fn);jr.current=Fn;const Mo=j.useRef(u);Mo.current=u;const qt=j.useCallback(W=>{const Y=jr.current,oe=TL(Y.map(Ee=>({id:Ee.id,x:Ee.position.x,y:Ee.position.y})),Mo.current,W),de=oe?Y.find(Ee=>Ee.id===oe):void 0;if(!de)return;const xe=_E(document.activeElement);d(de.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[de]})}catch{}$n.current=Date.now(),xe&&U4(de.id)},30)},[d,e]),Tr=j.useCallback(W=>{d(W,!1),window.setTimeout(()=>{try{const Y=jr.current.find(oe=>oe.id===W);Y&&e.fitView({padding:.3,duration:500,nodes:[Y]}),$n.current=Date.now()}catch{}},60)},[d,e]);j.useEffect(()=>{const W=Y=>{var $e,Ye,Ge;const oe=Y.target,de={tagName:oe==null?void 0:oe.tagName,isContentEditable:oe==null?void 0:oe.isContentEditable,role:($e=oe==null?void 0:oe.getAttribute)==null?void 0:$e.call(oe,"role"),type:oe==null?void 0:oe.type};if(Y.key==="Escape"){const Fe=SO({overlayOpen:wu.depth()>0,typing:Yv(de)});Fe==="dismiss"?wu.dismissTop():Fe==="blur"?oe==null||oe.blur():(PL(de)&&(oe==null||oe.blur()),m());return}if(lC(Y))return;const xe=_E(oe)?(Ye=oe==null?void 0:oe.getAttribute)==null?void 0:Ye.call(oe,"data-id"):null,Ee=xe&&jr.current.some(Fe=>Fe.id===xe)?xe:null,Oe=IL(Y,Ee);if(Oe.kind==="activate"){Y.preventDefault(),d(Oe.nodeId,Oe.additive);return}if(Oe.kind!=="node"&&!(Oe.nodeId==null&&AO(de))){if(Y.key==="/"){Y.preventDefault(),(Ge=br.current)==null||Ge.focus();return}Y.key===" "&&(Y.preventDefault(),Yr()),(Y.key==="c"||Y.key==="C")&&Rr("shortcut"),(Y.key==="r"||Y.key==="R")&&Ci(),(Y.key==="f"||Y.key==="F")&&$s(),(Y.key==="l"||Y.key==="L")&&Kt(),(Y.key==="h"||Y.key==="H")&&wt(Fe=>!Fe),(Y.key==="u"||Y.key==="U")&&L(Fe=>!Fe),(Y.key==="a"||Y.key==="A")&&Mt(),(Y.key==="j"||Y.key==="J")&&qt(1),(Y.key==="k"||Y.key==="K")&&qt(-1),(Y.key==="t"||Y.key==="T")&&vi(Fe=>Fe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Rr,Ci,$s,m,d,qt,Yr]);const Ar=n.current.agents.size,Ds=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,cr=j.useMemo(()=>{var Y;const W=[];for(const oe of n.current.agents.values())oe.kind==="root"&&((Y=oe.waiting)==null?void 0:Y.kind)==="permission"&&W.push({id:oe.id,label:oe.label,waiting:oe.waiting});return W.sort((oe,de)=>oe.waiting.since-de.waiting.since)},[n.current,n.current.lastSeq]),Ri=j.useMemo(()=>{const W=new Set;for(const Y of n.current.agents.values())Y.state==="active"&&W.add(Y.sessionId);return W.size},[n.current,n.current.lastSeq]),ji=j.useRef(null);j.useEffect(()=>{const W=YL({waiting:cr.length,running:Ri}),Y=ji.current;if(ji.current=W,(Y==null?void 0:Y.title)!==W.title&&(document.title=W.title),(Y==null?void 0:Y.icon)!==W.icon){const oe=document.querySelector('link[rel="icon"]');oe&&(oe.href=KL[W.icon])}},[cr.length,Ri]);const jt=j.useMemo(()=>{let W=0,Y=0,oe=0,de=0,xe=0,Ee=0,Oe=0,$e=0,Ye=0;for(const Ge of n.current.agents.values()){W+=Ge.usage.inputTokens,Y+=Ge.usage.outputTokens,oe+=Ge.usage.cacheReadTokens,de+=Ge.usage.cacheCreateTokens;const Fe=fn(Ge.usage,Ge.model);xe+=Fe.total,Ee+=Fe.input,Oe+=Fe.output,$e+=Fe.cacheRead,Ye+=Fe.cacheWrite}return{inT:W,outT:Y,cacheR:oe,cacheC:de,sum:W+Y,cost:{total:xe,input:Ee,output:Oe,cacheRead:$e,cacheWrite:Ye}}},[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"}),zt,ye?g.jsxs("button",{type:"button",className:"v stale",onClick:Be,title:ye.kind==="restart"?`Running v${ye.from}; v${ye.to} is installed on disk. Restart to pick it up.`:`Running v${ye.from}; v${ye.to} is on npm.`,children:["v",ye.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const W={running:(K==null?void 0:K.running)??"1.33.150",latest:K==null?void 0:K.latest,latestPending:K==null?void 0:K.latestPending,checkedAgo:K!=null&&K.checkedAt?Ev(ut-K.checkedAt):null,checkDisabled:K==null?void 0:K.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":O4(W),title:P4(W),children:["v",W.running]})})()]}),St&&(()=>{const W=fn(St.usage,St.model),Y=Math.max(0,((St.endedAt??ut)-St.startedAt)/1e3),oe=St.state==="active"?yu(W.total,Y):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${St.label}`,onClick:()=>{try{const xe=Fn.find(Ee=>Ee.id===St.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),$n.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${St.state}`,children:St.state==="active"?"live":St.state}),g.jsx("span",{className:"selected-label",children:St.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[ze(W.total),oe?g.jsxs("span",{className:"selected-rate",children:[" · ",oe]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{"aria-hidden":!0,className:"selected-close",onClick:xe=>{xe.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:br,type:"text",placeholder:"Search agents, cwd, tools…",value:en,onChange:W=>Zr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),en?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Zr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),En.count&&g.jsx("span",{className:`search-count${En.empty?" none":""}`,"aria-live":"polite",title:`${En.count} agents on the canvas match “${en}”`,children:En.count})]}),g.jsxs("span",{className:"status",role:"status",children:[(()=>{const W=q4({connected:M,paused:pn,held:Zt.current.size});return g.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ds}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:Ar}),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"})]}),jt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${jt.inT.toLocaleString()} out:${jt.outT.toLocaleString()} cache-r:${jt.cacheR.toLocaleString()} cache-c:${jt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:Ft(jt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Ls.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
61
|
+
Blocked since ${new Date(h.waiting.since).toLocaleTimeString()} · started ${new Date(h.startedAt).toLocaleString()}`,children:["waiting ",zx(h.waiting.since,void 0,n)]}):g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(h.startedAt).toLocaleString()}`,children:zx(h.startedAt,h.state==="active"?void 0:h.lastActivity,n)})]})]})]},h.sessionId)})]})]})}const zt="ccdeck";function Ft(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 Bx(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function O3(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 L3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function q3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/3600),o=Math.floor(r%3600/60);if(i>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return i>0?`${i}h ${o}m`:`${o}m`}function $3(e,n,r,i){const o=Math.max(0,n-i),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const h=100-e,p=l>0?e/l:0,d=p>0?h/p:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(d<o&&d<86400){const y=Math.floor(d/3600),w=Math.floor(d%3600/60);m.runsOutIn=y>0?`${y}h ${w}m`:`${w}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function ei({pct:e,label:n,reset:r,resetAt:i,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),p=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",d=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=i?q3(i,u):null,w=i&&o?$3(c,i,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:p},children:d})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:p,opacity:c===0?.4:1}}),w&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${w.expectedPct}%`,background:w.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(w.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?g.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,w&&g.jsx("span",{className:"qb-pace",style:{color:w.color},children:w.runsOutIn?`runs out in ${w.runsOutIn}`:w.label})]})]})}const D3=6e4;function F3(){const[e,n]=j.useState(null),[r,i]=j.useState(!1),o=j.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/quota?refresh=1":"/api/quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return j.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),D3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function z3(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 mC=6e4;function B3(){const[e,n]=j.useState(null),[r,i]=j.useState(!1),o=j.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const p=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");p.ok&&n(await p.json())}catch{}finally{c&&i(!1)}};return j.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),mC),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function U3(){const[e,n]=j.useState(null),r=j.useRef(null),i=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return j.useEffect(()=>(i(),r.current=window.setInterval(i,mC),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function H3({state:e,now:n,onClose:r}){var A,U;const{quota:i,loading:o,refresh:l}=F3(),{data:u,loading:c,refresh:h}=B3(),{data:p}=U3(),[d,m]=j.useState(()=>Math.floor(Date.now()/1e3));j.useEffect(()=>{const L=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(L)},[]);const{byModel:y,totalCost:w,totalTokens:N,burnRate:_}=j.useMemo(()=>{const L=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let q=0,G=0,F=0,T=0;for(const $ of e.agents.values()){const Q=$.model??"__unknown__",M=fn($.usage,$.model),V=L.get(Q);V?(V.inputTokens+=$.usage.inputTokens,V.outputTokens+=$.usage.outputTokens,V.cacheReadTokens+=$.usage.cacheReadTokens,V.cacheCreateTokens+=$.usage.cacheCreateTokens,V.cost.total+=M.total,V.cost.input+=M.input,V.cost.output+=M.output,V.cost.cacheRead+=M.cacheRead,V.cost.cacheWrite+=M.cacheWrite,V.agentCount++):L.set(Q,{model:Q,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...M},agentCount:1}),P.total+=M.total,P.input+=M.input,P.output+=M.output,P.cacheRead+=M.cacheRead,P.cacheWrite+=M.cacheWrite,q+=$.usage.inputTokens,G+=$.usage.outputTokens,F+=$.usage.cacheReadTokens,T+=$.usage.cacheCreateTokens}const B=Array.from(L.values()).sort(($,Q)=>Q.cost.total-$.cost.total);let z=0,ne=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const Q=fn($.usage,$.model);z+=Q.total,ne=Math.max(ne,(($.endedAt??n)-$.startedAt)/1e3)}const Z=ne>0?yu(z,ne):null;return{byModel:B,totalCost:P,totalTokens:{in:q,out:G,cacheR:F,cacheC:T},burnRate:Z}},[e,e.lastSeq,n]),b=j.useMemo(()=>{const L=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let q=fn(P.usage,P.model).total,G=P.usage.inputTokens,F=P.usage.outputTokens;for(const T of e.agents.values())T.sessionId!==P.sessionId||T.kind==="root"||(q+=fn(T.usage,T.model).total,G+=T.usage.inputTokens,F+=T.usage.outputTokens);L.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:q,inputTokens:G,outputTokens:F})}return L.sort((P,q)=>q.cost-P.cost).slice(0,12)},[e,e.lastSeq]),S=w.total>0,k=N.in+N.out,E=o||c,C=Bx(i==null?void 0:i.fetchedAt,d),I=Bx(u==null?void 0:u.fetchedAt,d),O=()=>{l(),h()};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:E,title:"Refresh Claude + Codex quota",children:E?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"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",C&&!o&&g.jsx("span",{className:"up-section-age",title:O3(i==null?void 0:i.source),children:C})]}),i!=null&&i.ok?g.jsxs("div",{className:"up-quota-bars",children:[i.session5hPct!=null&&g.jsx(ei,{label:"5-hour window",pct:i.session5hPct,reset:i.session5hReset,resetAt:i.session5hResetAt,windowSec:i.session5hWindowSec,nowSec:d}),i.week7dPct!=null&&g.jsx(ei,{label:"7-day window",pct:i.week7dPct,reset:i.week7dReset,resetAt:i.week7dResetAt,windowSec:i.week7dWindowSec,nowSec:d}),i.weekSonnetPct!=null&&g.jsx(ei,{label:"Sonnet (7d)",pct:i.weekSonnetPct,nowSec:d}),i.weekOpusPct!=null&&g.jsx(ei,{label:"Opus (7d)",pct:i.weekOpusPct,nowSec:d})]}):(i==null?void 0:i.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}),I&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:I})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(A=u.windows)==null?void 0:A.map(L=>g.jsx(ei,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,limitReached:u.limitReached&&L.pct>=100,nowSec:d},L.id)),(U=u.extraWindows)==null?void 0:U.map(L=>g.jsx(ei,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,nowSec:d},L.id)),u.creditLimit&&g.jsx(ei,{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:d}),(p==null?void 0:p.ok)&&p.window7d&&p.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Ft(p.window7d.totalTokens)," tokens · ",p.window7d.sessionCount," session",p.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 — ${zt} 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:z3(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),S?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:ze(w.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(L3,{cost:w}),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"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]}),N.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Ft(N.cacheR)]}),N.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Ft(N.cacheC)]})]}),y.filter(L=>L.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(L=>L.cost.total>0).map(L=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:L.model,children:li(L.model)}),g.jsx("td",{className:"up-num",children:Ft(L.inputTokens+L.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:ze(L.cost.total)})]},L.model))})]})]}),b.filter(L=>L.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:b.filter(L=>L.cost>0).map(L=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${L.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:L.label}),g.jsx("span",{className:"up-session-tokens",children:Ft(L.inputTokens+L.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:ze(L.cost)})]},L.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"}),Ft(N.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Ft(N.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 Ux=18,W3=1100,no=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},V3=Array.from({length:Ux},(e,n)=>{const r=-72+144*n/(Ux-1)+(no(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+no(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+no(n,3)*260),delay:Math.round(no(n,4)*90),dur:760+Math.round(no(n,5)*260),scale:.8+no(n,6)*.45,hue:n%4,round:n%3===0}});function Hx({anchor:e,lifetimeMs:n=W3}){var l;const[r,i]=j.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return j.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();i({x:c.left+c.width/2,y:c.top+c.height/2});const h=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(h)},[e,n,o]),o||!r?null:OI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:V3.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 gC=new Set(["awaiting_url","awaiting_code","registering"]);function G3(e){return e!=null&&gC.has(e)}function vC(e){return e!=null&&e!=="done"&&!gC.has(e)}const Y3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",K3="the sign-in did not complete";function X3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?Y3:K3)}}const Q3="done";function Z3(){let e=!1;return{shouldAnnounce(n){return n!==Q3?(e=!1,!1):e?!1:(e=!0,!0)}}}const Wx={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 ${zt}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},Vx={no_cswap:"claude-swap could not be run — it is not on this deck's PATH. Set AGENTS_DECK_CSWAP to its full path",timeout:"claude-swap took too long and was stopped — try again",switch_failed:"claude-swap refused the switch",bad_account:"that is not an account claude-swap has",unknown_setting:"claude-swap has no such setting",out_of_range:"that value is outside what the setting allows",bad_value:"claude-swap does not accept that value",set_failed:"claude-swap refused the change",command_failed:"claude-swap refused the command"},J3=`claude-swap could not read the login keychain — start ${zt} from a Terminal window rather than a background service`;function bv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(mo(e))?J3:e!=null&&e.reason&&Vx[e.reason]?Vx[e.reason]:(e==null?void 0:e.reason)||n}function mo(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const Gx={no_install:"ccusage is not installed, and AGENTS_DECK_NO_INSTALL=1 forbids fetching it — unset that variable and restart the deck, or install ccusage yourself",timeout:"ccusage took more than 90 seconds and was stopped — a narrower range usually finishes",bad_output:"ccusage ran but printed no usage data — try again, and run ccusage daily --json in a terminal if it keeps happening",run_failed:"ccusage could not report usage — try again",bad_range:"that date range is not a YYYYMMDD date — reopen the modal and pick one of the presets",unreachable:"the deck did not answer — check it is still running, then try again"},eL="ccusage could not be started — npx is not on this deck's PATH. Install Node's npm/npx, or put ccusage on PATH yourself";function tL(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function nL(e,n){return tL(mo(e))?eL:e!=null&&e.reason&&Gx[e.reason]?Gx[e.reason]:(e==null?void 0:e.reason)||n}function au(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&vC(e.state)?e.error:e!=null&&e.reason&&Wx[e.reason]?Wx[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const rL=1500;async function Ql(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Sv=ue.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"})]}));Sv.displayName="SuccessMark";function sL({onClose:e,onChanged:n}){const[r,i]=j.useState("login"),[o,l]=j.useState(null),[u,c]=j.useState(""),[h,p]=j.useState(""),[d,m]=j.useState(!1),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useRef(!1),S=j.useRef(null),k=j.useRef(null),E=j.useRef(null),C=j.useRef(null),I=j.useCallback(()=>{b.current&&Ql({action:"login-cancel"}).catch(()=>{}),e()},[e]),O=vo(I,{focusRef:E}),A=j.useCallback(async()=>{m(!0),w(null),b.current=!0;const B=await Ql({action:"login"}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){w(au(B,"could not start the sign-in"));return}l(B)},[]);j.useEffect(()=>{if(!G3(o==null?void 0:o.state))return;const B=window.setInterval(async()=>{try{const z=await fetch("/api/claude-accounts/login");z.ok&&l(await z.json())}catch{}},rL);return()=>window.clearInterval(B)},[o]);const U=j.useRef(n);U.current=n;const L=j.useRef(Z3());j.useEffect(()=>{var B;(o==null?void 0:o.state)==="awaiting_code"&&((B=S.current)==null||B.focus()),L.current.shouldAnnounce(o==null?void 0:o.state)&&U.current()},[o==null?void 0:o.state]),j.useEffect(()=>{var B;r==="paste"&&((B=k.current)==null||B.focus())},[r]);const P=j.useCallback(async()=>{var z;m(!0),w(null);const B=await Ql({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){w(au(B,"the code was not accepted")),B!=null&&B.state&&l(B),(z=S.current)==null||z.select();return}c(""),l(B)},[u,o]),q=j.useCallback(async()=>{m(!0),w(null);const B=await Ql({action:"import",blob:h}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){w(au(B,"the import failed"));return}p(""),_({added:B.added===!0,num:B.num??null,email:B.email??null}),n()},[h,n]),G=(o==null?void 0:o.state)==="done"?o.account:null,F=vC(o==null?void 0:o.state)||!!(y&&b.current&&!d),T=X3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:I,role:"presentation",children:g.jsxs("div",{ref:O,className:"modal aa-modal",onClick:B=>B.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":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:I,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?G?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:C}),g.jsx(Hx,{anchor:C}),g.jsx("h4",{children:G.added?`Account ${G.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:G.email}),G.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:S,type:"text",value:u,onChange:B=>c(B.target.value),onKeyDown:B=>{B.key==="Enter"&&u.trim()&&!d&&P()},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:d||!u.trim()||o.state==="registering",onClick:P,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."})]})]}):F?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:T.title}),g.jsx("p",{className:"aa-err",children:T.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{b.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||b.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",ref:E,className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Sv,{ref:C}),N.added&&g.jsx(Hx,{anchor:C}),g.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:N.added?g.jsxs(g.Fragment,{children:[N.email?g.jsx("strong",{children:N.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:h,onChange:B=>p(B.target.value),onKeyDown:B=>{B.key==="Enter"&&h.trim()&&!d&&q()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:q,children:d?"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."]})]})})]})})}function iL(e,n){const r=new Set(e),i=e.length?Math.max(...e):0;return[...new Set([...e,i+1])].sort((o,l)=>o-l).map(o=>{const l=o===n?"here":r.has(o)?"swap":"free";return{slot:o,kind:l,label:l==="here"?`slot ${o}`:`slot ${o} · ${l}`}})}function oL(e,n,r){if(!(r!=null&&r.ok))return null;const i=Number.isInteger(r.to)?r.to:null;if(i==null)return{menuFor:null,confirmRemove:null,shareFor:null,swapNote:null};const o=r.swapped===!0&&i!==n;return{menuFor:e.menuFor===n?i:o&&e.menuFor===i?n:e.menuFor,confirmRemove:null,shareFor:null,swapNote:o?{at:i,displaced:n}:null}}function aL(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const lL=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function Yx(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function uL(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=mo(n.body);return{text:bv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function Kx(e,n){return n?e!=null&&e.reload&&e.text===n.text&&e.raw===n.raw?e:n:e!=null&&e.reload?null:e}const Xx=15e3,cL=8e3,dL=1800,fL=3e4,hL=[70,80,85,90,95];function pL(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function Qx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function mL(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function gL(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 vL({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),i=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?pL(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:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function yL(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(i=>window.setTimeout(()=>i(!1),500))])}catch{n=!1}if(n)return!0;try{const i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),i.remove()}catch{n=!1}return n}function wL(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function xL({onClose:e}){var re,le,fe;const[n,r]=j.useState(null),[i,o]=j.useState(null),[l,u]=j.useState(null),[c,h]=j.useState(!1),[p,d]=j.useState(null),[m,y]=j.useState(null),[w,N]=j.useState(()=>Math.floor(Date.now()/1e3)),_=j.useRef(null),[b,S]=j.useState(null),[k,E]=j.useState(!1),[C,I]=j.useState(""),[O,A]=j.useState(null),[U,L]=j.useState(null),[P,q]=j.useState(null),[G,F]=j.useState(!1),[T,B]=j.useState(null),z=j.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),fL);try{const[ve,Te]=await Promise.all([fetch(`/api/claude-accounts${te?"?refresh=1":""}`,{signal:ce.signal}),fetch("/api/cswap-auto",{signal:ce.signal})]);ve.ok&&r(await ve.json()),Te.ok&&o(await Te.json());const ye=uL([await Yx(ve),await Yx(Te)]);y(ke=>Kx(ke,ye))}catch{y(ve=>Kx(ve,lL))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),ne=j.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:bv(ve,"command failed"),raw:mo(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=j.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:au(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);j.useEffect(()=>(z(!0),_.current=window.setInterval(()=>z(!1),Xx),()=>{_.current!=null&&window.clearInterval(_.current)}),[z]),j.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const $=((re=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:re.value)??"90",Q=(le=n==null?void 0:n.accounts)==null?void 0:le.find(te=>te.active),M=Q!=null&&Q.lanes.length?Math.max(...Q.lanes.map(te=>te.pct)):null,V=M!=null&&M>=Number($)-15,K=async te=>{d(te),y(null);try{const Ce=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:te})})).json().catch(()=>null);Ce!=null&&Ce.ok||y({text:bv(Ce,"the switch failed"),raw:mo(Ce)}),await z(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},H=async(te,ce)=>{const{commit:Ce,alias:ve}=aL(C,ce);if(Ce){const Te=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await z(!0),!(Te!=null&&Te.ok))return;I(ve)}A(te),window.setTimeout(()=>A(Te=>Te===te?null:Te),dL)},J=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=oL({menuFor:b,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await z(!0),ve){S(ve.menuFor),L(ve.confirmRemove),ve.shareFor==null&&(q(null),F(!1)),B(ve.swapNote);const Te=ve.swapNote;Te&&window.setTimeout(()=>B(ye=>ye===Te?null:ye),cL)}};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:()=>E(!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:()=>z(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m?g.jsxs("div",{className:"ap-empty",role:"alert",children:[g.jsx("span",{title:m.raw||void 0,children:m.text}),g.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",Xx/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>z(!0),children:c?"trying…":"try again"})]}):g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>g.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:te.num}),te.alias&&g.jsx("span",{className:"ap-alias",children:te.alias}),g.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),g.jsx("button",{type:"button",className:`ap-more${b===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":b===te.num,"aria-controls":b===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{S(b===te.num?null:te.num),I(te.alias??""),L(null),q(null),F(!1),B(null),A(null)},children:"⋯"}),te.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:p!=null||te.disabled,onClick:()=>K(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:p===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>g.jsx(vL,{lane:ce,nowSec:w},ce.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=gL(te.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>E(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((i==null?void 0:i.enabled)||(i==null?void 0:i.external))&&!te.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>ne({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>z(!0)),title:te.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:te.disabled?"held out":"in rotation"}),te.fetchedAt?g.jsxs("span",{className:`ap-age${te.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 ",Qx(te.fetchedAt,w),mL(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),b===te.num&&g.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[g.jsxs("div",{className:"ap-manage-name",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:C,onChange:ce=>I(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&H(te.num,te.alias)},placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>H(te.num,te.alias),title:"A short name to show instead of the email",children:O===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"ap-vh",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>J(te.num,Number(ce.target.value)),children:iL((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>g.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${zt}. The share carries a live login and expires in 10 minutes.`,onClick:async()=>{F(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&q({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${U===te.num?" armed":""}`,disabled:l!=null,title:U===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(U!==te.num){L(te.num),window.setTimeout(()=>L(ce=>ce===te.num?null:ce),4e3);return}L(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{S(null),z(!0)})},children:U===te.num?"confirm":"remove"})]}),(T==null?void 0:T.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Te=>Te.num===T.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return g.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${T.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${T.displaced}.`,children:["swapped with slot ",T.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=wL(P.expiresAt,w),Ce=ce.tone==="gone";return g.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:P.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){F(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&q({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await yL(P.blob)&&(F(!0),window.setTimeout(()=>F(!1),1800))},children:Ce?"make a new share":G?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.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:[M!=null&&g.jsxs("span",{className:`ap-auto-now${V?" near":""}`,children:[Math.round(M),"%"]}),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:$,disabled:l!=null,onChange:te=>ne({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>z(!0)),children:hL.map(te=>g.jsxs("option",{value:te,children:[te,"%"]},te))})}),g.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>ne({action:"enable",enabled:!i.enabled},"enable").then(()=>z(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.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",i.enabled?" — this toggle takes over when you stop it.":"."]}),i.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",Qx(i.lastTick.at,w)]})})]}),m&&g.jsxs("div",{className:"ap-failure",role:"alert",children:[g.jsx("span",{className:"ap-failure-text",title:m.raw||void 0,children:m.text}),g.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),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})`:"","."]})]})}),k&&g.jsx(sL,{onClose:()=>E(!1),onChanged:()=>z(!0)})]})}const _L=3e4;function bL({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function SL({bundle:e,running:n,pending:r,lastTried:i}){return n?bL({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function kL(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function EL({asked:e,reported:n}){return n?n!==e:!1}function NL(e){const n=e.thresholdMs??_L;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 CL({agentCount:e,onConfirm:n,onCancel:r}){const i=j.useRef(null),o=vo(r,{focusRef:i,layer:_O}),l=e===0?"This deletes the server's event log":`This removes ${e===1?"the one agent":`all ${e} agents`} on the canvas and deletes the server's event log`;return g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{ref:o,className:"modal clear-confirm",onClick:u=>u.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"status-dot err","aria-hidden":!0}),g.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),g.jsxs("section",{className:"modal-body",children:[g.jsxs("p",{className:"modal-note",children:[l," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),g.jsxs("div",{className:"cc-actions",children:[g.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),g.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function RL(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function jL(e){return e.slice().sort((n,r)=>n.y-r.y||n.x-r.x)}function TL(e,n,r){var u;if(e.length===0)return null;const i=jL(e),o=n?i.findIndex(c=>c.id===n):-1,l=o===-1?r===1?0:i.length-1:(o+r+i.length)%i.length;return((u=i[l])==null?void 0:u.id)??null}const AL=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Escape","Delete","Backspace"]);function IL(e,n){return n==null?{kind:"deck",nodeId:null}:e.key==="Enter"||e.key===" "?{kind:"activate",nodeId:n,additive:e.shiftKey}:AL.has(e.key)?{kind:"node",nodeId:n}:{kind:"deck",nodeId:n}}const ML=new Set(["","BODY","HTML","#DOCUMENT"]);function PL(e){return!e||Yv(e)?!1:!ML.has(String(e.tagName??"").toUpperCase())}function Zl(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function OL(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function yC(e,n,r){return!n.has(e)||r.has(e)}function LL(e,n,r,i){return!n.has(e)&&yC(e,r,i)}function qL(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function $L(e,n,r,i){r.set(e,n),i.delete(e)}const DL=40,FL=120;function zL(e,n){let r=null,i=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(h,p,d)=>{if(r!=null){if(i<=h)return;u()}const m=Math.min(d,Math.max(0,h-p));i=h,r=n.setTimeout(l,m)};return{live(h=DL){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=FL){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function BL(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const i=n;return n=[],i}}}const UL="1",Zx="agent-dag.schema",HL=["agent-dag.layout","agent-dag.viewport"];function wC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function WL(e,n=UL){let r=null;try{r=e.getItem(Zx)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of HL)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(Zx,n)}catch{}return i}const xC="agent-dag.theme";function VL(e){return e==="light"?"light":"dark"}function GL(){return VL(wC(xC))}function YL({waiting:e,running:n}){return{title:e>0?`(${e}) ${zt}`:zt,icon:e>0?"waiting":n>0?"running":"idle"}}const Ld={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function qd(e,n){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">${n==="waiting"?`<circle cx="16" cy="16" r="14.5" fill="${e}"/>`:`<circle cx="16" cy="16" r="12" fill="none" stroke="${e}" stroke-width="5"/>`+(n==="running"?`<circle cx="16" cy="16" r="5" fill="${e}"/>`:"")}</svg>`}const KL=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(qd(Ld.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(qd(Ld.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(qd(Ld.idle,"idle"))}`});function XL(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function QL(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function ZL(e){return!e.answer||e.answer.range!==e.want?{phase:"busy",stale:!1}:e.answer.ok?{phase:e.answer.days>0?"chart":"empty",stale:e.loading}:{phase:"error",stale:e.loading}}function Jl(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"}const JL=[7,14,30,90];function eq(e){const[n,r]=j.useState(null),[i,o]=j.useState(!1),l=j.useRef(XL()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${QL(p)}${c?"&refresh=1":""}`;fetch(m).then(y=>y.json()).then(y=>{h()&&r({range:p,resp:y})}).catch(()=>{h()&&r({range:p,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{h()&&o(!1)})};return j.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function tq({onClose:e}){var C,I,O;const[n,r]=j.useState(30),[i,o]=j.useState(null),{landed:l,loading:u,reload:c}=eq(n),h=j.useRef(null),p=vo(e,{focusRef:h}),d=ZL({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((C=l.resp.days)==null?void 0:C.length)??0}}),m=d.phase==="chart"?l.resp.days??[]:[],y=j.useMemo(()=>m.reduce((A,U)=>Math.max(A,U.totalCost),0),[m]),{totalCost:w,totalTok:N,inOut:_,cacheRead:b,modelCosts:S}=j.useMemo(()=>{let A=0,U=0,L=0,P=0;const q=new Map;for(const G of m){A+=G.totalCost,U+=G.totalTokens,L+=G.inputTokens+G.outputTokens,P+=G.cacheReadTokens;for(const F of G.modelBreakdowns)q.set(F.modelName,(q.get(F.modelName)??0)+F.cost)}return{totalCost:A,totalTok:U,inOut:L,cacheRead:P,modelCosts:q}},[m]),k=j.useMemo(()=>Array.from(S.entries()).sort((A,U)=>U[1]-A[1]),[S]),E=i?m.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{ref:p,className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-modal":"true","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:JL.map(A=>g.jsxs("button",{role:"tab","aria-selected":n===A,className:`uh-range-btn${n===A?" on":""}`,onClick:()=>{r(A),o(null)},children:[A,"d"]},A))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),g.jsx("button",{ref:h,className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),d.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):d.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:mo(l.resp)||void 0,children:[nL(l.resp,"ccusage did not report usage"),g.jsx("div",{children:g.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):d.phase==="empty"?g.jsx("div",{className:`uh-status${d.stale?" uh-stale":""}`,"aria-busy":d.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:d.stale?"uh-stale":void 0,"aria-busy":d.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(eu,{label:"total cost",val:ze(w),accent:!0}),g.jsx(eu,{label:"tokens",val:Ft(N)}),g.jsx(eu,{label:"input+output",val:Ft(_)}),g.jsx(eu,{label:"cache reads",val:Ft(b)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:m.map(A=>{const U=y>0?A.totalCost/y*100:0,L=A.period===i;return g.jsxs("button",{className:`uh-bar-col${L?" sel":""}`,onClick:()=>o(L?null:A.period),title:`${A.period} · ${ze(A.totalCost)}`,style:{flexBasis:`${100/m.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(U,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((P,q)=>q.cost-P.cost).map(P=>{const q=A.totalCost>0?P.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${q}%`,background:Jl(P.modelName)}},P.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:k.map(([A,U])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:Jl(A)}}),li(A)," ",g.jsx("span",{className:"uh-legend-cost",children:ze(U)})]},A))}),E&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:E.period}),g.jsx("span",{className:"uh-detail-cost",children:ze(E.totalCost)}),(O=(I=E.metadata)==null?void 0:I.agents)!=null&&O.length?g.jsx("span",{className:"uh-detail-agents",children:E.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(tu,{label:"input",val:Ft(E.inputTokens)}),g.jsx(tu,{label:"output",val:Ft(E.outputTokens)}),g.jsx(tu,{label:"cache write",val:Ft(E.cacheCreationTokens)}),g.jsx(tu,{label:"cache read",val:Ft(E.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:E.modelBreakdowns.slice().sort((A,U)=>U.cost-A.cost).map(A=>{const U=E.totalCost>0?A.cost/E.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:Jl(A.modelName)}}),li(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${U}%`,background:Jl(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:ze(A.cost)})]},A.modelName)})})]})]})]})})}function eu({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function tu({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 Kv(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 $d,Jx;function nq(){if(Jx)return $d;Jx=1;function e(){this.__data__=[],this.size=0}return $d=e,$d}var Dd,e_;function yo(){if(e_)return Dd;e_=1;function e(n,r){return n===r||n!==n&&r!==r}return Dd=e,Dd}var Fd,t_;function Tu(){if(t_)return Fd;t_=1;var e=yo();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Fd=n,Fd}var zd,n_;function rq(){if(n_)return zd;n_=1;var e=Tu(),n=Array.prototype,r=n.splice;function i(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return zd=i,zd}var Bd,r_;function sq(){if(r_)return Bd;r_=1;var e=Tu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Bd=n,Bd}var Ud,s_;function iq(){if(s_)return Ud;s_=1;var e=Tu();function n(r){return e(this.__data__,r)>-1}return Ud=n,Ud}var Hd,i_;function oq(){if(i_)return Hd;i_=1;var e=Tu();function n(r,i){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,i])):o[l][1]=i,this}return Hd=n,Hd}var Wd,o_;function Au(){if(o_)return Wd;o_=1;var e=nq(),n=rq(),r=sq(),i=iq(),o=oq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Wd=l,Wd}var Vd,a_;function aq(){if(a_)return Vd;a_=1;var e=Au();function n(){this.__data__=new e,this.size=0}return Vd=n,Vd}var Gd,l_;function lq(){if(l_)return Gd;l_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return Gd=e,Gd}var Yd,u_;function uq(){if(u_)return Yd;u_=1;function e(n){return this.__data__.get(n)}return Yd=e,Yd}var Kd,c_;function cq(){if(c_)return Kd;c_=1;function e(n){return this.__data__.has(n)}return Kd=e,Kd}var Xd,d_;function _C(){if(d_)return Xd;d_=1;var e=typeof $l=="object"&&$l&&$l.Object===Object&&$l;return Xd=e,Xd}var Qd,f_;function tr(){if(f_)return Qd;f_=1;var e=_C(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return Qd=r,Qd}var Zd,h_;function wo(){if(h_)return Zd;h_=1;var e=tr(),n=e.Symbol;return Zd=n,Zd}var Jd,p_;function dq(){if(p_)return Jd;p_=1;var e=wo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),h=u[o];try{u[o]=void 0;var p=!0}catch{}var d=i.call(u);return p&&(c?u[o]=h:delete u[o]),d}return Jd=l,Jd}var ef,m_;function fq(){if(m_)return ef;m_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return ef=r,ef}var tf,g_;function ui(){if(g_)return tf;g_=1;var e=wo(),n=dq(),r=fq(),i="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:i:l&&l in Object(c)?n(c):r(c)}return tf=u,tf}var nf,v_;function Ln(){if(v_)return nf;v_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return nf=e,nf}var rf,y_;function qa(){if(y_)return rf;y_=1;var e=ui(),n=Ln(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var h=e(c);return h==i||h==o||h==r||h==l}return rf=u,rf}var sf,w_;function hq(){if(w_)return sf;w_=1;var e=tr(),n=e["__core-js_shared__"];return sf=n,sf}var of,x_;function pq(){if(x_)return of;x_=1;var e=hq(),n=(function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function r(i){return!!n&&n in i}return of=r,of}var af,__;function bC(){if(__)return af;__=1;var e=Function.prototype,n=e.toString;function r(i){if(i!=null){try{return n.call(i)}catch{}try{return i+""}catch{}}return""}return af=r,af}var lf,b_;function mq(){if(b_)return lf;b_=1;var e=qa(),n=pq(),r=Ln(),i=bC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,h=u.toString,p=c.hasOwnProperty,d=RegExp("^"+h.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var w=e(y)?d:l;return w.test(i(y))}return lf=m,lf}var uf,S_;function gq(){if(S_)return uf;S_=1;function e(n,r){return n==null?void 0:n[r]}return uf=e,uf}var cf,k_;function ci(){if(k_)return cf;k_=1;var e=mq(),n=gq();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return cf=r,cf}var df,E_;function Xv(){if(E_)return df;E_=1;var e=ci(),n=tr(),r=e(n,"Map");return df=r,df}var ff,N_;function Iu(){if(N_)return ff;N_=1;var e=ci(),n=e(Object,"create");return ff=n,ff}var hf,C_;function vq(){if(C_)return hf;C_=1;var e=Iu();function n(){this.__data__=e?e(null):{},this.size=0}return hf=n,hf}var pf,R_;function yq(){if(R_)return pf;R_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return pf=e,pf}var mf,j_;function wq(){if(j_)return mf;j_=1;var e=Iu(),n="__lodash_hash_undefined__",r=Object.prototype,i=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return i.call(u,l)?u[l]:void 0}return mf=o,mf}var gf,T_;function xq(){if(T_)return gf;T_=1;var e=Iu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return gf=i,gf}var vf,A_;function _q(){if(A_)return vf;A_=1;var e=Iu(),n="__lodash_hash_undefined__";function r(i,o){var l=this.__data__;return this.size+=this.has(i)?0:1,l[i]=e&&o===void 0?n:o,this}return vf=r,vf}var yf,I_;function bq(){if(I_)return yf;I_=1;var e=vq(),n=yq(),r=wq(),i=xq(),o=_q();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,yf=l,yf}var wf,M_;function Sq(){if(M_)return wf;M_=1;var e=bq(),n=Au(),r=Xv();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return wf=i,wf}var xf,P_;function kq(){if(P_)return xf;P_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return xf=e,xf}var _f,O_;function Mu(){if(O_)return _f;O_=1;var e=kq();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return _f=n,_f}var bf,L_;function Eq(){if(L_)return bf;L_=1;var e=Mu();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return bf=n,bf}var Sf,q_;function Nq(){if(q_)return Sf;q_=1;var e=Mu();function n(r){return e(this,r).get(r)}return Sf=n,Sf}var kf,$_;function Cq(){if($_)return kf;$_=1;var e=Mu();function n(r){return e(this,r).has(r)}return kf=n,kf}var Ef,D_;function Rq(){if(D_)return Ef;D_=1;var e=Mu();function n(r,i){var o=e(this,r),l=o.size;return o.set(r,i),this.size+=o.size==l?0:1,this}return Ef=n,Ef}var Nf,F_;function Qv(){if(F_)return Nf;F_=1;var e=Sq(),n=Eq(),r=Nq(),i=Cq(),o=Rq();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Nf=l,Nf}var Cf,z_;function jq(){if(z_)return Cf;z_=1;var e=Au(),n=Xv(),r=Qv(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var h=c.__data__;if(!n||h.length<i-1)return h.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(h)}return c.set(l,u),this.size=c.size,this}return Cf=o,Cf}var Rf,B_;function Pu(){if(B_)return Rf;B_=1;var e=Au(),n=aq(),r=lq(),i=uq(),o=cq(),l=jq();function u(c){var h=this.__data__=new e(c);this.size=h.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,Rf=u,Rf}var jf,U_;function Zv(){if(U_)return jf;U_=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o&&r(n[i],i,n)!==!1;);return n}return jf=e,jf}var Tf,H_;function SC(){if(H_)return Tf;H_=1;var e=ci(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return Tf=n,Tf}var Af,W_;function Ou(){if(W_)return Af;W_=1;var e=SC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Af=n,Af}var If,V_;function Lu(){if(V_)return If;V_=1;var e=Ou(),n=yo(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var h=l[u];(!(i.call(l,u)&&n(h,c))||c===void 0&&!(u in l))&&e(l,u,c)}return If=o,If}var Mf,G_;function $a(){if(G_)return Mf;G_=1;var e=Lu(),n=Ou();function r(i,o,l,u){var c=!l;l||(l={});for(var h=-1,p=o.length;++h<p;){var d=o[h],m=u?u(l[d],i[d],d,l,i):void 0;m===void 0&&(m=i[d]),c?n(l,d,m):e(l,d,m)}return l}return Mf=r,Mf}var Pf,Y_;function Tq(){if(Y_)return Pf;Y_=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Pf=e,Pf}var Of,K_;function vr(){if(K_)return Of;K_=1;function e(n){return n!=null&&typeof n=="object"}return Of=e,Of}var Lf,X_;function Aq(){if(X_)return Lf;X_=1;var e=ui(),n=vr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Lf=i,Lf}var qf,Q_;function Da(){if(Q_)return qf;Q_=1;var e=Aq(),n=vr(),r=Object.prototype,i=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&i.call(u,"callee")&&!o.call(u,"callee")};return qf=l,qf}var $f,Z_;function bt(){if(Z_)return $f;Z_=1;var e=Array.isArray;return $f=e,$f}var va={exports:{}},Df,J_;function Iq(){if(J_)return Df;J_=1;function e(){return!1}return Df=e,Df}va.exports;var e1;function xo(){return e1||(e1=1,(function(e,n){var r=tr(),i=Iq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,h=c?c.isBuffer:void 0,p=h||i;e.exports=p})(va,va.exports)),va.exports}var Ff,t1;function qu(){if(t1)return Ff;t1=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(i,o){var l=typeof i;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(i))&&i>-1&&i%1==0&&i<o}return Ff=r,Ff}var zf,n1;function Jv(){if(n1)return zf;n1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return zf=n,zf}var Bf,r1;function Mq(){if(r1)return Bf;r1=1;var e=ui(),n=Jv(),r=vr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",h="[object Function]",p="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",w="[object Set]",N="[object String]",_="[object WeakMap]",b="[object ArrayBuffer]",S="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",C="[object Int8Array]",I="[object Int16Array]",O="[object Int32Array]",A="[object Uint8Array]",U="[object Uint8ClampedArray]",L="[object Uint16Array]",P="[object Uint32Array]",q={};q[k]=q[E]=q[C]=q[I]=q[O]=q[A]=q[U]=q[L]=q[P]=!0,q[i]=q[o]=q[b]=q[l]=q[S]=q[u]=q[c]=q[h]=q[p]=q[d]=q[m]=q[y]=q[w]=q[N]=q[_]=!1;function G(F){return r(F)&&n(F.length)&&!!q[e(F)]}return Bf=G,Bf}var Uf,s1;function $u(){if(s1)return Uf;s1=1;function e(n){return function(r){return n(r)}}return Uf=e,Uf}var ya={exports:{}};ya.exports;var i1;function ey(){return i1||(i1=1,(function(e,n){var r=_C(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l&&r.process,c=(function(){try{var h=o&&o.require&&o.require("util").types;return h||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(ya,ya.exports)),ya.exports}var Hf,o1;function Fa(){if(o1)return Hf;o1=1;var e=Mq(),n=$u(),r=ey(),i=r&&r.isTypedArray,o=i?n(i):e;return Hf=o,Hf}var Wf,a1;function kC(){if(a1)return Wf;a1=1;var e=Tq(),n=Da(),r=bt(),i=xo(),o=qu(),l=Fa(),u=Object.prototype,c=u.hasOwnProperty;function h(p,d){var m=r(p),y=!m&&n(p),w=!m&&!y&&i(p),N=!m&&!y&&!w&&l(p),_=m||y||w||N,b=_?e(p.length,String):[],S=b.length;for(var k in p)(d||c.call(p,k))&&!(_&&(k=="length"||w&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,S)))&&b.push(k);return b}return Wf=h,Wf}var Vf,l1;function Du(){if(l1)return Vf;l1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return Vf=n,Vf}var Gf,u1;function EC(){if(u1)return Gf;u1=1;function e(n,r){return function(i){return n(r(i))}}return Gf=e,Gf}var Yf,c1;function Pq(){if(c1)return Yf;c1=1;var e=EC(),n=e(Object.keys,Object);return Yf=n,Yf}var Kf,d1;function ty(){if(d1)return Kf;d1=1;var e=Du(),n=Pq(),r=Object.prototype,i=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))i.call(l,c)&&c!="constructor"&&u.push(c);return u}return Kf=o,Kf}var Xf,f1;function Vr(){if(f1)return Xf;f1=1;var e=qa(),n=Jv();function r(i){return i!=null&&n(i.length)&&!e(i)}return Xf=r,Xf}var Qf,h1;function ks(){if(h1)return Qf;h1=1;var e=kC(),n=ty(),r=Vr();function i(o){return r(o)?e(o):n(o)}return Qf=i,Qf}var Zf,p1;function Oq(){if(p1)return Zf;p1=1;var e=$a(),n=ks();function r(i,o){return i&&e(o,n(o),i)}return Zf=r,Zf}var Jf,m1;function Lq(){if(m1)return Jf;m1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return Jf=e,Jf}var eh,g1;function qq(){if(g1)return eh;g1=1;var e=Ln(),n=Du(),r=Lq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),h=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||h.push(p);return h}return eh=l,eh}var th,v1;function di(){if(v1)return th;v1=1;var e=kC(),n=qq(),r=Vr();function i(o){return r(o)?e(o,!0):n(o)}return th=i,th}var nh,y1;function $q(){if(y1)return nh;y1=1;var e=$a(),n=di();function r(i,o){return i&&e(o,n(o),i)}return nh=r,nh}var wa={exports:{}};wa.exports;var w1;function NC(){return w1||(w1=1,(function(e,n){var r=tr(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function h(p,d){if(d)return p.slice();var m=p.length,y=c?c(m):new p.constructor(m);return p.copy(y),y}e.exports=h})(wa,wa.exports)),wa.exports}var rh,x1;function CC(){if(x1)return rh;x1=1;function e(n,r){var i=-1,o=n.length;for(r||(r=Array(o));++i<o;)r[i]=n[i];return r}return rh=e,rh}var sh,_1;function RC(){if(_1)return sh;_1=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=0,u=[];++i<o;){var c=n[i];r(c,i,n)&&(u[l++]=c)}return u}return sh=e,sh}var ih,b1;function jC(){if(b1)return ih;b1=1;function e(){return[]}return ih=e,ih}var oh,S1;function ny(){if(S1)return oh;S1=1;var e=RC(),n=jC(),r=Object.prototype,i=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return i.call(u,c)}))}:n;return oh=l,oh}var ah,k1;function Dq(){if(k1)return ah;k1=1;var e=$a(),n=ny();function r(i,o){return e(i,n(i),o)}return ah=r,ah}var lh,E1;function ry(){if(E1)return lh;E1=1;function e(n,r){for(var i=-1,o=r.length,l=n.length;++i<o;)n[l+i]=r[i];return n}return lh=e,lh}var uh,N1;function Fu(){if(N1)return uh;N1=1;var e=EC(),n=e(Object.getPrototypeOf,Object);return uh=n,uh}var ch,C1;function TC(){if(C1)return ch;C1=1;var e=ry(),n=Fu(),r=ny(),i=jC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return ch=l,ch}var dh,R1;function Fq(){if(R1)return dh;R1=1;var e=$a(),n=TC();function r(i,o){return e(i,n(i),o)}return dh=r,dh}var fh,j1;function AC(){if(j1)return fh;j1=1;var e=ry(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return fh=r,fh}var hh,T1;function IC(){if(T1)return hh;T1=1;var e=AC(),n=ny(),r=ks();function i(o){return e(o,r,n)}return hh=i,hh}var ph,A1;function zq(){if(A1)return ph;A1=1;var e=AC(),n=TC(),r=di();function i(o){return e(o,r,n)}return ph=i,ph}var mh,I1;function Bq(){if(I1)return mh;I1=1;var e=ci(),n=tr(),r=e(n,"DataView");return mh=r,mh}var gh,M1;function Uq(){if(M1)return gh;M1=1;var e=ci(),n=tr(),r=e(n,"Promise");return gh=r,gh}var vh,P1;function MC(){if(P1)return vh;P1=1;var e=ci(),n=tr(),r=e(n,"Set");return vh=r,vh}var yh,O1;function Hq(){if(O1)return yh;O1=1;var e=ci(),n=tr(),r=e(n,"WeakMap");return yh=r,yh}var wh,L1;function _o(){if(L1)return wh;L1=1;var e=Bq(),n=Xv(),r=Uq(),i=MC(),o=Hq(),l=ui(),u=bC(),c="[object Map]",h="[object Object]",p="[object Promise]",d="[object Set]",m="[object WeakMap]",y="[object DataView]",w=u(e),N=u(n),_=u(r),b=u(i),S=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=p||i&&k(new i)!=d||o&&k(new o)!=m)&&(k=function(E){var C=l(E),I=C==h?E.constructor:void 0,O=I?u(I):"";if(O)switch(O){case w:return y;case N:return c;case _:return p;case b:return d;case S:return m}return C}),wh=k,wh}var xh,q1;function Wq(){if(q1)return xh;q1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i){var o=i.length,l=new i.constructor(o);return o&&typeof i[0]=="string"&&n.call(i,"index")&&(l.index=i.index,l.input=i.input),l}return xh=r,xh}var _h,$1;function PC(){if($1)return _h;$1=1;var e=tr(),n=e.Uint8Array;return _h=n,_h}var bh,D1;function sy(){if(D1)return bh;D1=1;var e=PC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return bh=n,bh}var Sh,F1;function Vq(){if(F1)return Sh;F1=1;var e=sy();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Sh=n,Sh}var kh,z1;function Gq(){if(z1)return kh;z1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return kh=n,kh}var Eh,B1;function Yq(){if(B1)return Eh;B1=1;var e=wo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return Eh=i,Eh}var Nh,U1;function OC(){if(U1)return Nh;U1=1;var e=sy();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Nh=n,Nh}var Ch,H1;function Kq(){if(H1)return Ch;H1=1;var e=sy(),n=Vq(),r=Gq(),i=Yq(),o=OC(),l="[object Boolean]",u="[object Date]",c="[object Map]",h="[object Number]",p="[object RegExp]",d="[object Set]",m="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",b="[object Float64Array]",S="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",C="[object Uint8Array]",I="[object Uint8ClampedArray]",O="[object Uint16Array]",A="[object Uint32Array]";function U(L,P,q){var G=L.constructor;switch(P){case w:return e(L);case l:case u:return new G(+L);case N:return n(L,q);case _:case b:case S:case k:case E:case C:case I:case O:case A:return o(L,q);case c:return new G;case h:case m:return new G(L);case p:return r(L);case d:return new G;case y:return i(L)}}return Ch=U,Ch}var Rh,W1;function LC(){if(W1)return Rh;W1=1;var e=Ln(),n=Object.create,r=(function(){function i(){}return function(o){if(!e(o))return{};if(n)return n(o);i.prototype=o;var l=new i;return i.prototype=void 0,l}})();return Rh=r,Rh}var jh,V1;function qC(){if(V1)return jh;V1=1;var e=LC(),n=Fu(),r=Du();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return jh=i,jh}var Th,G1;function Xq(){if(G1)return Th;G1=1;var e=_o(),n=vr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return Th=i,Th}var Ah,Y1;function Qq(){if(Y1)return Ah;Y1=1;var e=Xq(),n=$u(),r=ey(),i=r&&r.isMap,o=i?n(i):e;return Ah=o,Ah}var Ih,K1;function Zq(){if(K1)return Ih;K1=1;var e=_o(),n=vr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Ih=i,Ih}var Mh,X1;function Jq(){if(X1)return Mh;X1=1;var e=Zq(),n=$u(),r=ey(),i=r&&r.isSet,o=i?n(i):e;return Mh=o,Mh}var Ph,Q1;function $C(){if(Q1)return Ph;Q1=1;var e=Pu(),n=Zv(),r=Lu(),i=Oq(),o=$q(),l=NC(),u=CC(),c=Dq(),h=Fq(),p=IC(),d=zq(),m=_o(),y=Wq(),w=Kq(),N=qC(),_=bt(),b=xo(),S=Qq(),k=Ln(),E=Jq(),C=ks(),I=di(),O=1,A=2,U=4,L="[object Arguments]",P="[object Array]",q="[object Boolean]",G="[object Date]",F="[object Error]",T="[object Function]",B="[object GeneratorFunction]",z="[object Map]",ne="[object Number]",Z="[object Object]",$="[object RegExp]",Q="[object Set]",M="[object String]",V="[object Symbol]",K="[object WeakMap]",H="[object ArrayBuffer]",J="[object DataView]",re="[object Float32Array]",le="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Te="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[L]=ke[P]=ke[H]=ke[J]=ke[q]=ke[G]=ke[re]=ke[le]=ke[fe]=ke[te]=ke[ce]=ke[z]=ke[ne]=ke[Z]=ke[$]=ke[Q]=ke[M]=ke[V]=ke[Ce]=ke[ve]=ke[Te]=ke[ye]=!0,ke[F]=ke[T]=ke[K]=!1;function Ke(we,_e,Be,ft,ht,He){var De,Je=_e&O,Xe=_e&A,vt=_e&U;if(Be&&(De=ht?Be(we,ft,ht,He):Be(we)),De!==void 0)return De;if(!k(we))return we;var ot=_(we);if(ot){if(De=y(we),!Je)return u(we,De)}else{var yt=m(we),Kt=yt==T||yt==B;if(b(we))return l(we,Je);if(yt==Z||yt==L||Kt&&!ht){if(De=Xe||Kt?{}:N(we),!Je)return Xe?h(we,o(De,we)):c(we,i(De,we))}else{if(!ke[yt])return ht?we:{};De=w(we,yt,Je)}}He||(He=new e);var Mt=He.get(we);if(Mt)return Mt;He.set(we,De),E(we)?we.forEach(function(pt){De.add(Ke(pt,_e,Be,pt,we,He))}):S(we)&&we.forEach(function(pt,mt){De.set(mt,Ke(pt,_e,Be,mt,we,He))});var Ze=vt?Xe?d:p:Xe?I:C,wt=ot?void 0:Ze(we);return n(wt||we,function(pt,mt){wt&&(mt=pt,pt=we[mt]),r(De,mt,Ke(pt,_e,Be,mt,we,He))}),De}return Ph=Ke,Ph}var Oh,Z1;function e$(){if(Z1)return Oh;Z1=1;var e=$C(),n=4;function r(i){return e(i,n)}return Oh=r,Oh}var Lh,J1;function iy(){if(J1)return Lh;J1=1;function e(n){return function(){return n}}return Lh=e,Lh}var qh,eb;function t$(){if(eb)return qh;eb=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),h=c.length;h--;){var p=c[n?h:++l];if(i(u[p],p,u)===!1)break}return r}}return qh=e,qh}var $h,tb;function oy(){if(tb)return $h;tb=1;var e=t$(),n=e();return $h=n,$h}var Dh,nb;function ay(){if(nb)return Dh;nb=1;var e=oy(),n=ks();function r(i,o){return i&&e(i,o,n)}return Dh=r,Dh}var Fh,rb;function n$(){if(rb)return Fh;rb=1;var e=Vr();function n(r,i){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=i?u:-1,h=Object(o);(i?c--:++c<u)&&l(h[c],c,h)!==!1;);return o}}return Fh=n,Fh}var zh,sb;function zu(){if(sb)return zh;sb=1;var e=ay(),n=n$(),r=n(e);return zh=r,zh}var Bh,ib;function fi(){if(ib)return Bh;ib=1;function e(n){return n}return Bh=e,Bh}var Uh,ob;function DC(){if(ob)return Uh;ob=1;var e=fi();function n(r){return typeof r=="function"?r:e}return Uh=n,Uh}var Hh,ab;function FC(){if(ab)return Hh;ab=1;var e=Zv(),n=zu(),r=DC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Hh=o,Hh}var Wh,lb;function zC(){return lb||(lb=1,Wh=FC()),Wh}var Vh,ub;function r$(){if(ub)return Vh;ub=1;var e=zu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return Vh=n,Vh}var Gh,cb;function s$(){if(cb)return Gh;cb=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return Gh=n,Gh}var Yh,db;function i$(){if(db)return Yh;db=1;function e(n){return this.__data__.has(n)}return Yh=e,Yh}var Kh,fb;function BC(){if(fb)return Kh;fb=1;var e=Qv(),n=s$(),r=i$();function i(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return i.prototype.add=i.prototype.push=n,i.prototype.has=r,Kh=i,Kh}var Xh,hb;function o$(){if(hb)return Xh;hb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o;)if(r(n[i],i,n))return!0;return!1}return Xh=e,Xh}var Qh,pb;function UC(){if(pb)return Qh;pb=1;function e(n,r){return n.has(r)}return Qh=e,Qh}var Zh,mb;function HC(){if(mb)return Zh;mb=1;var e=BC(),n=o$(),r=UC(),i=1,o=2;function l(u,c,h,p,d,m){var y=h&i,w=u.length,N=c.length;if(w!=N&&!(y&&N>w))return!1;var _=m.get(u),b=m.get(c);if(_&&b)return _==c&&b==u;var S=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++S<w;){var C=u[S],I=c[S];if(p)var O=y?p(I,C,S,c,u,m):p(C,I,S,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(E){if(!n(c,function(A,U){if(!r(E,U)&&(C===A||d(C,A,h,p,m)))return E.push(U)})){k=!1;break}}else if(!(C===I||d(C,I,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return Zh=l,Zh}var Jh,gb;function a$(){if(gb)return Jh;gb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return Jh=e,Jh}var ep,vb;function ly(){if(vb)return ep;vb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return ep=e,ep}var tp,yb;function l$(){if(yb)return tp;yb=1;var e=wo(),n=PC(),r=yo(),i=HC(),o=a$(),l=ly(),u=1,c=2,h="[object Boolean]",p="[object Date]",d="[object Error]",m="[object Map]",y="[object Number]",w="[object RegExp]",N="[object Set]",_="[object String]",b="[object Symbol]",S="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,C=E?E.valueOf:void 0;function I(O,A,U,L,P,q,G){switch(U){case k:if(O.byteLength!=A.byteLength||O.byteOffset!=A.byteOffset)return!1;O=O.buffer,A=A.buffer;case S:return!(O.byteLength!=A.byteLength||!q(new n(O),new n(A)));case h:case p:case y:return r(+O,+A);case d:return O.name==A.name&&O.message==A.message;case w:case _:return O==A+"";case m:var F=o;case N:var T=L&u;if(F||(F=l),O.size!=A.size&&!T)return!1;var B=G.get(O);if(B)return B==A;L|=c,G.set(O,A);var z=i(F(O),F(A),L,P,q,G);return G.delete(O),z;case b:if(C)return C.call(O)==C.call(A)}return!1}return tp=I,tp}var np,wb;function u$(){if(wb)return np;wb=1;var e=IC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,h,p,d){var m=c&n,y=e(l),w=y.length,N=e(u),_=N.length;if(w!=_&&!m)return!1;for(var b=w;b--;){var S=y[b];if(!(m?S in u:i.call(u,S)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var C=!0;d.set(l,u),d.set(u,l);for(var I=m;++b<w;){S=y[b];var O=l[S],A=u[S];if(h)var U=m?h(A,O,S,u,l,d):h(O,A,S,l,u,d);if(!(U===void 0?O===A||p(O,A,c,h,d):U)){C=!1;break}I||(I=S=="constructor")}if(C&&!I){var L=l.constructor,P=u.constructor;L!=P&&"constructor"in l&&"constructor"in u&&!(typeof L=="function"&&L instanceof L&&typeof P=="function"&&P instanceof P)&&(C=!1)}return d.delete(l),d.delete(u),C}return np=o,np}var rp,xb;function c$(){if(xb)return rp;xb=1;var e=Pu(),n=HC(),r=l$(),i=u$(),o=_o(),l=bt(),u=xo(),c=Fa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,b,S,k,E,C){var I=l(_),O=l(b),A=I?d:o(_),U=O?d:o(b);A=A==p?m:A,U=U==p?m:U;var L=A==m,P=U==m,q=A==U;if(q&&u(_)){if(!u(b))return!1;I=!0,L=!1}if(q&&!L)return C||(C=new e),I||c(_)?n(_,b,S,k,E,C):r(_,b,A,S,k,E,C);if(!(S&h)){var G=L&&w.call(_,"__wrapped__"),F=P&&w.call(b,"__wrapped__");if(G||F){var T=G?_.value():_,B=F?b.value():b;return C||(C=new e),E(T,B,S,k,C)}}return q?(C||(C=new e),i(_,b,S,k,E,C)):!1}return rp=N,rp}var sp,_b;function WC(){if(_b)return sp;_b=1;var e=c$(),n=vr();function r(i,o,l,u,c){return i===o?!0:i==null||o==null||!n(i)&&!n(o)?i!==i&&o!==o:e(i,o,l,u,r,c)}return sp=r,sp}var ip,bb;function d$(){if(bb)return ip;bb=1;var e=Pu(),n=WC(),r=1,i=2;function o(l,u,c,h){var p=c.length,d=p,m=!h;if(l==null)return!d;for(l=Object(l);p--;){var y=c[p];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<d;){y=c[p];var w=y[0],N=l[w],_=y[1];if(m&&y[2]){if(N===void 0&&!(w in l))return!1}else{var b=new e;if(h)var S=h(N,_,w,l,u,b);if(!(S===void 0?n(_,N,r|i,h,b):S))return!1}}return!0}return ip=o,ip}var op,Sb;function VC(){if(Sb)return op;Sb=1;var e=Ln();function n(r){return r===r&&!e(r)}return op=n,op}var ap,kb;function f$(){if(kb)return ap;kb=1;var e=VC(),n=ks();function r(i){for(var o=n(i),l=o.length;l--;){var u=o[l],c=i[u];o[l]=[u,c,e(c)]}return o}return ap=r,ap}var lp,Eb;function GC(){if(Eb)return lp;Eb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return lp=e,lp}var up,Nb;function h$(){if(Nb)return up;Nb=1;var e=d$(),n=f$(),r=GC();function i(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return up=i,up}var cp,Cb;function bo(){if(Cb)return cp;Cb=1;var e=ui(),n=vr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return cp=i,cp}var dp,Rb;function uy(){if(Rb)return dp;Rb=1;var e=bt(),n=bo(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\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:i.test(l)||!r.test(l)||u!=null&&l in Object(u)}return dp=o,dp}var fp,jb;function p$(){if(jb)return fp;jb=1;var e=Qv(),n="Expected a function";function r(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],h=l.cache;if(h.has(c))return h.get(c);var p=i.apply(this,u);return l.cache=h.set(c,p)||h,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,fp=r,fp}var hp,Tb;function m$(){if(Tb)return hp;Tb=1;var e=p$(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return hp=r,hp}var pp,Ab;function g$(){if(Ab)return pp;Ab=1;var e=m$(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,i=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,h,p){l.push(h?p.replace(r,"$1"):c||u)}),l});return pp=i,pp}var mp,Ib;function Bu(){if(Ib)return mp;Ib=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=Array(o);++i<o;)l[i]=r(n[i],i,n);return l}return mp=e,mp}var gp,Mb;function v$(){if(Mb)return gp;Mb=1;var e=wo(),n=Bu(),r=bt(),i=bo(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(i(c))return l?l.call(c):"";var h=c+"";return h=="0"&&1/c==-1/0?"-0":h}return gp=u,gp}var vp,Pb;function YC(){if(Pb)return vp;Pb=1;var e=v$();function n(r){return r==null?"":e(r)}return vp=n,vp}var yp,Ob;function Uu(){if(Ob)return yp;Ob=1;var e=bt(),n=uy(),r=g$(),i=YC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return yp=o,yp}var wp,Lb;function za(){if(Lb)return wp;Lb=1;var e=bo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return wp=n,wp}var xp,qb;function Hu(){if(qb)return xp;qb=1;var e=Uu(),n=za();function r(i,o){o=e(o,i);for(var l=0,u=o.length;i!=null&&l<u;)i=i[n(o[l++])];return l&&l==u?i:void 0}return xp=r,xp}var _p,$b;function y$(){if($b)return _p;$b=1;var e=Hu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return _p=n,_p}var bp,Db;function w$(){if(Db)return bp;Db=1;function e(n,r){return n!=null&&r in Object(n)}return bp=e,bp}var Sp,Fb;function KC(){if(Fb)return Sp;Fb=1;var e=Uu(),n=Da(),r=bt(),i=qu(),o=Jv(),l=za();function u(c,h,p){h=e(h,c);for(var d=-1,m=h.length,y=!1;++d<m;){var w=l(h[d]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++d!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&i(w,m)&&(r(c)||n(c)))}return Sp=u,Sp}var kp,zb;function XC(){if(zb)return kp;zb=1;var e=w$(),n=KC();function r(i,o){return i!=null&&n(i,o,e)}return kp=r,kp}var Ep,Bb;function x$(){if(Bb)return Ep;Bb=1;var e=WC(),n=y$(),r=XC(),i=uy(),o=VC(),l=GC(),u=za(),c=1,h=2;function p(d,m){return i(d)&&o(m)?l(u(d),m):function(y){var w=n(y,d);return w===void 0&&w===m?r(y,d):e(m,w,c|h)}}return Ep=p,Ep}var Np,Ub;function QC(){if(Ub)return Np;Ub=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Np=e,Np}var Cp,Hb;function _$(){if(Hb)return Cp;Hb=1;var e=Hu();function n(r){return function(i){return e(i,r)}}return Cp=n,Cp}var Rp,Wb;function b$(){if(Wb)return Rp;Wb=1;var e=QC(),n=_$(),r=uy(),i=za();function o(l){return r(l)?e(i(l)):n(l)}return Rp=o,Rp}var jp,Vb;function Gr(){if(Vb)return jp;Vb=1;var e=h$(),n=x$(),r=fi(),i=bt(),o=b$();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?i(u)?n(u[0],u[1]):e(u):o(u)}return jp=l,jp}var Tp,Gb;function ZC(){if(Gb)return Tp;Gb=1;var e=RC(),n=r$(),r=Gr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return Tp=o,Tp}var Ap,Yb;function S$(){if(Yb)return Ap;Yb=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Ap=r,Ap}var Ip,Kb;function JC(){if(Kb)return Ip;Kb=1;var e=S$(),n=KC();function r(i,o){return i!=null&&n(i,o,e)}return Ip=r,Ip}var Mp,Xb;function k$(){if(Xb)return Mp;Xb=1;var e=ty(),n=_o(),r=Da(),i=bt(),o=Vr(),l=xo(),u=Du(),c=Fa(),h="[object Map]",p="[object Set]",d=Object.prototype,m=d.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(i(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var N=n(w);if(N==h||N==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(m.call(w,_))return!1;return!0}return Mp=y,Mp}var Pp,Qb;function eR(){if(Qb)return Pp;Qb=1;function e(n){return n===void 0}return Pp=e,Pp}var Op,Zb;function tR(){if(Zb)return Op;Zb=1;var e=zu(),n=Vr();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,h,p){u[++l]=o(c,h,p)}),u}return Op=r,Op}var Lp,Jb;function nR(){if(Jb)return Lp;Jb=1;var e=Bu(),n=Gr(),r=tR(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Lp=o,Lp}var qp,eS;function E$(){if(eS)return qp;eS=1;function e(n,r,i,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(i=n[++l]);++l<u;)i=r(i,n[l],l,n);return i}return qp=e,qp}var $p,tS;function N$(){if(tS)return $p;tS=1;function e(n,r,i,o,l){return l(n,function(u,c,h){i=o?(o=!1,u):r(i,u,c,h)}),i}return $p=e,$p}var Dp,nS;function rR(){if(nS)return Dp;nS=1;var e=E$(),n=zu(),r=Gr(),i=N$(),o=bt();function l(u,c,h){var p=o(u)?e:i,d=arguments.length<3;return p(u,r(c,4),h,d,n)}return Dp=l,Dp}var Fp,rS;function C$(){if(rS)return Fp;rS=1;var e=ui(),n=bt(),r=vr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Fp=o,Fp}var zp,sS;function R$(){if(sS)return zp;sS=1;var e=QC(),n=e("length");return zp=n,zp}var Bp,iS;function j$(){if(iS)return Bp;iS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function h(p){return c.test(p)}return Bp=h,Bp}var Up,oS;function T$(){if(oS)return Up;oS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",h="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+h+")",d="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",N=p+"?",_="["+l+"]?",b="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",S=_+N+b,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+S,"g");function C(I){for(var O=E.lastIndex=0;E.test(I);)++O;return O}return Up=C,Up}var Hp,aS;function A$(){if(aS)return Hp;aS=1;var e=R$(),n=j$(),r=T$();function i(o){return n(o)?r(o):e(o)}return Hp=i,Hp}var Wp,lS;function I$(){if(lS)return Wp;lS=1;var e=ty(),n=_o(),r=Vr(),i=C$(),o=A$(),l="[object Map]",u="[object Set]";function c(h){if(h==null)return 0;if(r(h))return i(h)?o(h):h.length;var p=n(h);return p==l||p==u?h.size:e(h).length}return Wp=c,Wp}var Vp,uS;function M$(){if(uS)return Vp;uS=1;var e=Zv(),n=LC(),r=ay(),i=Gr(),o=Fu(),l=bt(),u=xo(),c=qa(),h=Ln(),p=Fa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var b=m&&m.constructor;_?w=N?new b:[]:h(m)?w=c(b)?n(o(m)):{}:w={}}return(_?e:r)(m,function(S,k,E){return y(w,S,k,E)}),w}return Vp=d,Vp}var Gp,cS;function P$(){if(cS)return Gp;cS=1;var e=wo(),n=Da(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return Gp=o,Gp}var Yp,dS;function cy(){if(dS)return Yp;dS=1;var e=ry(),n=P$();function r(i,o,l,u,c){var h=-1,p=i.length;for(l||(l=n),c||(c=[]);++h<p;){var d=i[h];o>0&&l(d)?o>1?r(d,o-1,l,u,c):e(c,d):u||(c[c.length]=d)}return c}return Yp=r,Yp}var Kp,fS;function O$(){if(fS)return Kp;fS=1;function e(n,r,i){switch(i.length){case 0:return n.call(r);case 1:return n.call(r,i[0]);case 2:return n.call(r,i[0],i[1]);case 3:return n.call(r,i[0],i[1],i[2])}return n.apply(r,i)}return Kp=e,Kp}var Xp,hS;function sR(){if(hS)return Xp;hS=1;var e=O$(),n=Math.max;function r(i,o,l){return o=n(o===void 0?i.length-1:o,0),function(){for(var u=arguments,c=-1,h=n(u.length-o,0),p=Array(h);++c<h;)p[c]=u[o+c];c=-1;for(var d=Array(o+1);++c<o;)d[c]=u[c];return d[o]=l(p),e(i,this,d)}}return Xp=r,Xp}var Qp,pS;function L$(){if(pS)return Qp;pS=1;var e=iy(),n=SC(),r=fi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return Qp=i,Qp}var Zp,mS;function q$(){if(mS)return Zp;mS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),h=n-(c-u);if(u=c,h>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Zp=i,Zp}var Jp,gS;function iR(){if(gS)return Jp;gS=1;var e=L$(),n=q$(),r=n(e);return Jp=r,Jp}var em,vS;function Wu(){if(vS)return em;vS=1;var e=fi(),n=sR(),r=iR();function i(o,l){return r(n(o,l,e),o+"")}return em=i,em}var tm,yS;function oR(){if(yS)return tm;yS=1;function e(n,r,i,o){for(var l=n.length,u=i+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return tm=e,tm}var nm,wS;function $$(){if(wS)return nm;wS=1;function e(n){return n!==n}return nm=e,nm}var rm,xS;function D$(){if(xS)return rm;xS=1;function e(n,r,i){for(var o=i-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return rm=e,rm}var sm,_S;function F$(){if(_S)return sm;_S=1;var e=oR(),n=$$(),r=D$();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return sm=i,sm}var im,bS;function z$(){if(bS)return im;bS=1;var e=F$();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return im=n,im}var om,SS;function B$(){if(SS)return om;SS=1;function e(n,r,i){for(var o=-1,l=n==null?0:n.length;++o<l;)if(i(r,n[o]))return!0;return!1}return om=e,om}var am,kS;function U$(){if(kS)return am;kS=1;function e(){}return am=e,am}var lm,ES;function H$(){if(ES)return lm;ES=1;var e=MC(),n=U$(),r=ly(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return lm=o,lm}var um,NS;function W$(){if(NS)return um;NS=1;var e=BC(),n=z$(),r=B$(),i=UC(),o=H$(),l=ly(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],b=_;if(d)N=!1,y=r;else if(w>=u){var S=p?null:o(h);if(S)return l(S);N=!1,y=i,b=new e}else b=p?[]:_;e:for(;++m<w;){var k=h[m],E=p?p(k):k;if(k=d||k!==0?k:0,N&&E===E){for(var C=b.length;C--;)if(b[C]===E)continue e;p&&b.push(E),_.push(k)}else y(b,E,d)||(b!==_&&b.push(E),_.push(k))}return _}return um=c,um}var cm,CS;function aR(){if(CS)return cm;CS=1;var e=Vr(),n=vr();function r(i){return n(i)&&e(i)}return cm=r,cm}var dm,RS;function V$(){if(RS)return dm;RS=1;var e=cy(),n=Wu(),r=W$(),i=aR(),o=n(function(l){return r(e(l,1,i,!0))});return dm=o,dm}var fm,jS;function G$(){if(jS)return fm;jS=1;var e=Bu();function n(r,i){return e(i,function(o){return r[o]})}return fm=n,fm}var hm,TS;function lR(){if(TS)return hm;TS=1;var e=G$(),n=ks();function r(i){return i==null?[]:e(i,n(i))}return hm=r,hm}var pm,AS;function qn(){if(AS)return pm;AS=1;var e;if(typeof Kv=="function")try{e={clone:e$(),constant:iy(),each:zC(),filter:ZC(),has:JC(),isArray:bt(),isEmpty:k$(),isFunction:qa(),isUndefined:eR(),keys:ks(),map:nR(),reduce:rR(),size:I$(),transform:M$(),union:V$(),values:lR()}}catch{}return e||(e=window._),pm=e,pm}var mm,IS;function dy(){if(IS)return mm;IS=1;var e=qn();mm=o;var n="\0",r="\0",i="";function o(d){this._isDirected=e.has(d,"directed")?d.directed:!0,this._isMultigraph=e.has(d,"multigraph")?d.multigraph:!1,this._isCompound=e.has(d,"compound")?d.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(d){return this._label=d,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultNodeLabelFn=d,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._in[m])})},o.prototype.sinks=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._out[m])})},o.prototype.setNodes=function(d,m){var y=arguments,w=this;return e.each(d,function(N){y.length>1?w.setNode(N,m):w.setNode(N)}),this},o.prototype.setNode=function(d,m){return e.has(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=m),this):(this._nodes[d]=arguments.length>1?m:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=r,this._children[d]={},this._children[r][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)},o.prototype.node=function(d){return this._nodes[d]},o.prototype.hasNode=function(d){return e.has(this._nodes,d)},o.prototype.removeNode=function(d){var m=this;if(e.has(this._nodes,d)){var y=function(w){m.removeEdge(m._edgeObjs[w])};delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],e.each(this.children(d),function(w){m.setParent(w)}),delete this._children[d]),e.each(e.keys(this._in[d]),y),delete this._in[d],delete this._preds[d],e.each(e.keys(this._out[d]),y),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this},o.prototype.setParent=function(d,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===d)throw new Error("Setting "+m+" as parent of "+d+" would create a cycle");this.setNode(m)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=m,this._children[m][d]=!0,this},o.prototype._removeFromParentsChildList=function(d){delete this._children[this._parent[d]][d]},o.prototype.parent=function(d){if(this._isCompound){var m=this._parent[d];if(m!==r)return m}},o.prototype.children=function(d){if(e.isUndefined(d)&&(d=r),this._isCompound){var m=this._children[d];if(m)return e.keys(m)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}},o.prototype.predecessors=function(d){var m=this._preds[d];if(m)return e.keys(m)},o.prototype.successors=function(d){var m=this._sucs[d];if(m)return e.keys(m)},o.prototype.neighbors=function(d){var m=this.predecessors(d);if(m)return e.union(m,this.successors(d))},o.prototype.isLeaf=function(d){var m;return this.isDirected()?m=this.successors(d):m=this.neighbors(d),m.length===0},o.prototype.filterNodes=function(d){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(_,b){d(b)&&m.setNode(b,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var b=y.parent(_);return b===void 0||m.hasNode(b)?(w[_]=b,b):b in w?w[b]:N(b)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,N(_))}),m},o.prototype.setDefaultEdgeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultEdgeLabelFn=d,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(d,m){var y=this,w=arguments;return e.reduce(d,function(N,_){return w.length>1?y.setEdge(N,_,m):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var d,m,y,w,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(d=_.v,m=_.w,y=_.name,arguments.length===2&&(w=arguments[1],N=!0)):(d=_,m=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],N=!0)),d=""+d,m=""+m,e.isUndefined(y)||(y=""+y);var b=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,b))return N&&(this._edgeLabels[b]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(m),this._edgeLabels[b]=N?w:this._defaultEdgeLabelFn(d,m,y);var S=h(this._isDirected,d,m,y);return d=S.v,m=S.w,Object.freeze(S),this._edgeObjs[b]=S,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][b]=S,this._out[d][b]=S,this._edgeCount++,this},o.prototype.edge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y),N=this._edgeObjs[w];return N&&(d=N.v,m=N.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[m],d),u(this._sucs[d],m),delete this._in[m][w],delete this._out[d][w],this._edgeCount--),this},o.prototype.inEdges=function(d,m){var y=this._in[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.v===m}):w}},o.prototype.outEdges=function(d,m){var y=this._out[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.w===m}):w}},o.prototype.nodeEdges=function(d,m){var y=this.inEdges(d,m);if(y)return y.concat(this.outEdges(d,m))};function l(d,m){d[m]?d[m]++:d[m]=1}function u(d,m){--d[m]||delete d[m]}function c(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}var S={v:N,w:_};return w&&(S.name=w),S}function p(d,m){return c(d,m.v,m.w,m.name)}return mm}var gm,MS;function Y$(){return MS||(MS=1,gm="2.1.8"),gm}var vm,PS;function K$(){return PS||(PS=1,vm={Graph:dy(),version:Y$()}),vm}var ym,OS;function X$(){if(OS)return ym;OS=1;var e=qn(),n=dy();ym={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:i(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function i(u){return e.map(u.nodes(),function(c){var h=u.node(c),p=u.parent(c),d={v:c};return e.isUndefined(h)||(d.value=h),e.isUndefined(p)||(d.parent=p),d})}function o(u){return e.map(u.edges(),function(c){var h=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(h)||(p.value=h),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(h){c.setNode(h.v,h.value),h.parent&&c.setParent(h.v,h.parent)}),e.each(u.edges,function(h){c.setEdge({v:h.v,w:h.w,name:h.name},h.value)}),c}return ym}var wm,LS;function Q$(){if(LS)return wm;LS=1;var e=qn();wm=n;function n(r){var i={},o=[],l;function u(c){e.has(i,c)||(i[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return wm}var xm,qS;function uR(){if(qS)return xm;qS=1;var e=qn();xm=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var i=this._keyIndices[r];if(i!==void 0)return this._arr[i].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,i){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:i}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,i){var o=this._keyIndices[r];if(i>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+i);this._arr[o].priority=i,this._decrease(o)},n.prototype._heapify=function(r){var i=this._arr,o=2*r,l=o+1,u=r;o<i.length&&(u=i[o].priority<i[u].priority?o:u,l<i.length&&(u=i[l].priority<i[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var i=this._arr,o=i[r].priority,l;r!==0&&(l=r>>1,!(i[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,i){var o=this._arr,l=this._keyIndices,u=o[r],c=o[i];o[r]=c,o[i]=u,l[c.key]=r,l[u.key]=i},xm}var _m,$S;function cR(){if($S)return _m;$S=1;var e=qn(),n=uR();_m=i;var r=e.constant(1);function i(l,u,c,h){return o(l,String(u),c||r,h||function(p){return l.outEdges(p)})}function o(l,u,c,h){var p={},d=new n,m,y,w=function(N){var _=N.v!==m?N.v:N.w,b=p[_],S=c(N),k=y.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+S);k<b.distance&&(b.distance=k,b.predecessor=m,d.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;p[N]={distance:_},d.add(N,_)});d.size()>0&&(m=d.removeMin(),y=p[m],y.distance!==Number.POSITIVE_INFINITY);)h(m).forEach(w);return p}return _m}var bm,DS;function Z$(){if(DS)return bm;DS=1;var e=cR(),n=qn();bm=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return bm}var Sm,FS;function dR(){if(FS)return Sm;FS=1;var e=qn();Sm=n;function n(r){var i=0,o=[],l={},u=[];function c(h){var p=l[h]={onStack:!0,lowlink:i,index:i++};if(o.push(h),r.successors(h).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var d=[],m;do m=o.pop(),l[m].onStack=!1,d.push(m);while(h!==m);u.push(d)}}return r.nodes().forEach(function(h){e.has(l,h)||c(h)}),u}return Sm}var km,zS;function J$(){if(zS)return km;zS=1;var e=qn(),n=dR();km=r;function r(i){return e.filter(n(i),function(o){return o.length>1||o.length===1&&i.hasEdge(o[0],o[0])})}return km}var Em,BS;function eD(){if(BS)return Em;BS=1;var e=qn();Em=r;var n=e.constant(1);function r(o,l,u){return i(o,l||n,u||function(c){return o.outEdges(c)})}function i(o,l,u){var c={},h=o.nodes();return h.forEach(function(p){c[p]={},c[p][p]={distance:0},h.forEach(function(d){p!==d&&(c[p][d]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(d){var m=d.v===p?d.w:d.v,y=l(d);c[p][m]={distance:y,predecessor:p}})}),h.forEach(function(p){var d=c[p];h.forEach(function(m){var y=c[m];h.forEach(function(w){var N=y[p],_=d[w],b=y[w],S=N.distance+_.distance;S<b.distance&&(b.distance=S,b.predecessor=_.predecessor)})})}),c}return Em}var Nm,US;function fR(){if(US)return Nm;US=1;var e=qn();Nm=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(h){if(e.has(l,h))throw new r;e.has(o,h)||(l[h]=!0,o[h]=!0,e.each(i.predecessors(h),c),delete l[h],u.push(h))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Nm}var Cm,HS;function tD(){if(HS)return Cm;HS=1;var e=fR();Cm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Cm}var Rm,WS;function hR(){if(WS)return Rm;WS=1;var e=qn();Rm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],h={};return e.each(o,function(p){if(!i.hasNode(p))throw new Error("Graph does not have node: "+p);r(i,p,l==="post",h,u,c)}),c}function r(i,o,l,u,c,h){e.has(u,o)||(u[o]=!0,l||h.push(o),e.each(c(o),function(p){r(i,p,l,u,c,h)}),l&&h.push(o))}return Rm}var jm,VS;function nD(){if(VS)return jm;VS=1;var e=hR();jm=n;function n(r,i){return e(r,i,"post")}return jm}var Tm,GS;function rD(){if(GS)return Tm;GS=1;var e=hR();Tm=n;function n(r,i){return e(r,i,"pre")}return Tm}var Am,YS;function sD(){if(YS)return Am;YS=1;var e=qn(),n=dy(),r=uR();Am=i;function i(o,l){var u=new n,c={},h=new r,p;function d(y){var w=y.v===p?y.w:y.v,N=h.priority(w);if(N!==void 0){var _=l(y);_<N&&(c[w]=p,h.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){h.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),h.decrease(o.nodes()[0],0);for(var m=!1;h.size()>0;){if(p=h.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(p).forEach(d)}return u}return Am}var Im,KS;function iD(){return KS||(KS=1,Im={components:Q$(),dijkstra:cR(),dijkstraAll:Z$(),findCycles:J$(),floydWarshall:eD(),isAcyclic:tD(),postorder:nD(),preorder:rD(),prim:sD(),tarjan:dR(),topsort:fR()}),Im}var Mm,XS;function oD(){if(XS)return Mm;XS=1;var e=K$();return Mm={Graph:e.Graph,json:X$(),alg:iD(),version:e.version},Mm}var Pm,QS;function Jn(){if(QS)return Pm;QS=1;var e;if(typeof Kv=="function")try{e=oD()}catch{}return e||(e=window.graphlib),Pm=e,Pm}var Om,ZS;function aD(){if(ZS)return Om;ZS=1;var e=$C(),n=1,r=4;function i(o){return e(o,n|r)}return Om=i,Om}var Lm,JS;function Vu(){if(JS)return Lm;JS=1;var e=yo(),n=Vr(),r=qu(),i=Ln();function o(l,u,c){if(!i(c))return!1;var h=typeof u;return(h=="number"?n(c)&&r(u,c.length):h=="string"&&u in c)?e(c[u],l):!1}return Lm=o,Lm}var qm,ek;function lD(){if(ek)return qm;ek=1;var e=Wu(),n=yo(),r=Vu(),i=di(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,h){c=Object(c);var p=-1,d=h.length,m=d>2?h[2]:void 0;for(m&&r(h[0],h[1],m)&&(d=1);++p<d;)for(var y=h[p],w=i(y),N=-1,_=w.length;++N<_;){var b=w[N],S=c[b];(S===void 0||n(S,o[b])&&!l.call(c,b))&&(c[b]=y[b])}return c});return qm=u,qm}var $m,tk;function uD(){if(tk)return $m;tk=1;var e=Gr(),n=Vr(),r=ks();function i(o){return function(l,u,c){var h=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(m){return p(h[m],m,h)}}var d=o(l,u,c);return d>-1?h[p?l[d]:d]:void 0}}return $m=i,$m}var Dm,nk;function cD(){if(nk)return Dm;nk=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Dm=n,Dm}var Fm,rk;function dD(){if(rk)return Fm;rk=1;var e=cD(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Fm=r,Fm}var zm,sk;function fD(){if(sk)return zm;sk=1;var e=dD(),n=Ln(),r=bo(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function h(p){if(typeof p=="number")return p;if(r(p))return i;if(n(p)){var d=typeof p.valueOf=="function"?p.valueOf():p;p=n(d)?d+"":d}if(typeof p!="string")return p===0?p:+p;p=e(p);var m=l.test(p);return m||u.test(p)?c(p.slice(2),m?2:8):o.test(p)?i:+p}return zm=h,zm}var Bm,ik;function pR(){if(ik)return Bm;ik=1;var e=fD(),n=1/0,r=17976931348623157e292;function i(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return Bm=i,Bm}var Um,ok;function hD(){if(ok)return Um;ok=1;var e=pR();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Um=n,Um}var Hm,ak;function pD(){if(ak)return Hm;ak=1;var e=oR(),n=Gr(),r=hD(),i=Math.max;function o(l,u,c){var h=l==null?0:l.length;if(!h)return-1;var p=c==null?0:r(c);return p<0&&(p=i(h+p,0)),e(l,n(u,3),p)}return Hm=o,Hm}var Wm,lk;function mD(){if(lk)return Wm;lk=1;var e=uD(),n=pD(),r=e(n);return Wm=r,Wm}var Vm,uk;function mR(){if(uk)return Vm;uk=1;var e=cy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return Vm=n,Vm}var Gm,ck;function gD(){if(ck)return Gm;ck=1;var e=oy(),n=DC(),r=di();function i(o,l){return o==null?o:e(o,n(l),r)}return Gm=i,Gm}var Ym,dk;function vD(){if(dk)return Ym;dk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return Ym=e,Ym}var Km,fk;function yD(){if(fk)return Km;fk=1;var e=Ou(),n=ay(),r=Gr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,h,p){e(u,h,l(c,h,p))}),u}return Km=i,Km}var Xm,hk;function fy(){if(hk)return Xm;hk=1;var e=bo();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],h=i(c);if(h!=null&&(p===void 0?h===h&&!e(h):o(h,p)))var p=h,d=c}return d}return Xm=n,Xm}var Qm,pk;function wD(){if(pk)return Qm;pk=1;function e(n,r){return n>r}return Qm=e,Qm}var Zm,mk;function xD(){if(mk)return Zm;mk=1;var e=fy(),n=wD(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return Zm=i,Zm}var Jm,gk;function gR(){if(gk)return Jm;gk=1;var e=Ou(),n=yo();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return Jm=r,Jm}var eg,vk;function _D(){if(vk)return eg;vk=1;var e=ui(),n=Fu(),r=vr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,h=u.call(Object);function p(d){if(!r(d)||e(d)!=i)return!1;var m=n(d);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==h}return eg=p,eg}var tg,yk;function vR(){if(yk)return tg;yk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return tg=e,tg}var ng,wk;function bD(){if(wk)return ng;wk=1;var e=$a(),n=di();function r(i){return e(i,n(i))}return ng=r,ng}var rg,xk;function SD(){if(xk)return rg;xk=1;var e=gR(),n=NC(),r=OC(),i=CC(),o=qC(),l=Da(),u=bt(),c=aR(),h=xo(),p=qa(),d=Ln(),m=_D(),y=Fa(),w=vR(),N=bD();function _(b,S,k,E,C,I,O){var A=w(b,k),U=w(S,k),L=O.get(U);if(L){e(b,k,L);return}var P=I?I(A,U,k+"",b,S,O):void 0,q=P===void 0;if(q){var G=u(U),F=!G&&h(U),T=!G&&!F&&y(U);P=U,G||F||T?u(A)?P=A:c(A)?P=i(A):F?(q=!1,P=n(U,!0)):T?(q=!1,P=r(U,!0)):P=[]:m(U)||l(U)?(P=A,l(A)?P=N(A):(!d(A)||p(A))&&(P=o(U))):q=!1}q&&(O.set(U,P),C(P,U,E,I,O),O.delete(U)),e(b,k,P)}return rg=_,rg}var sg,_k;function kD(){if(_k)return sg;_k=1;var e=Pu(),n=gR(),r=oy(),i=SD(),o=Ln(),l=di(),u=vR();function c(h,p,d,m,y){h!==p&&r(p,function(w,N){if(y||(y=new e),o(w))i(h,p,N,d,c,m,y);else{var _=m?m(u(h,N),w,N+"",h,p,y):void 0;_===void 0&&(_=w),n(h,N,_)}},l)}return sg=c,sg}var ig,bk;function ED(){if(bk)return ig;bk=1;var e=Wu(),n=Vu();function r(i){return e(function(o,l){var u=-1,c=l.length,h=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(h=i.length>3&&typeof h=="function"?(c--,h):void 0,p&&n(l[0],l[1],p)&&(h=c<3?void 0:h,c=1),o=Object(o);++u<c;){var d=l[u];d&&i(o,d,u,h)}return o})}return ig=r,ig}var og,Sk;function ND(){if(Sk)return og;Sk=1;var e=kD(),n=ED(),r=n(function(i,o,l){e(i,o,l)});return og=r,og}var ag,kk;function yR(){if(kk)return ag;kk=1;function e(n,r){return n<r}return ag=e,ag}var lg,Ek;function CD(){if(Ek)return lg;Ek=1;var e=fy(),n=yR(),r=fi();function i(o){return o&&o.length?e(o,r,n):void 0}return lg=i,lg}var ug,Nk;function RD(){if(Nk)return ug;Nk=1;var e=fy(),n=Gr(),r=yR();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return ug=i,ug}var cg,Ck;function jD(){if(Ck)return cg;Ck=1;var e=tr(),n=function(){return e.Date.now()};return cg=n,cg}var dg,Rk;function TD(){if(Rk)return dg;Rk=1;var e=Lu(),n=Uu(),r=qu(),i=Ln(),o=za();function l(u,c,h,p){if(!i(u))return u;c=n(c,u);for(var d=-1,m=c.length,y=m-1,w=u;w!=null&&++d<m;){var N=o(c[d]),_=h;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(d!=y){var b=w[N];_=p?p(b,N,w):void 0,_===void 0&&(_=i(b)?b:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return dg=l,dg}var fg,jk;function AD(){if(jk)return fg;jk=1;var e=Hu(),n=TD(),r=Uu();function i(o,l,u){for(var c=-1,h=l.length,p={};++c<h;){var d=l[c],m=e(o,d);u(m,d)&&n(p,r(d,o),m)}return p}return fg=i,fg}var hg,Tk;function ID(){if(Tk)return hg;Tk=1;var e=AD(),n=XC();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return hg=r,hg}var pg,Ak;function MD(){if(Ak)return pg;Ak=1;var e=mR(),n=sR(),r=iR();function i(o){return r(n(o,void 0,e),o+"")}return pg=i,pg}var mg,Ik;function PD(){if(Ik)return mg;Ik=1;var e=ID(),n=MD(),r=n(function(i,o){return i==null?{}:e(i,o)});return mg=r,mg}var gg,Mk;function OD(){if(Mk)return gg;Mk=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,h=n(e((o-i)/(l||1)),0),p=Array(h);h--;)p[u?h:++c]=i,i+=l;return p}return gg=r,gg}var vg,Pk;function LD(){if(Pk)return vg;Pk=1;var e=OD(),n=Vu(),r=pR();function i(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return vg=i,vg}var yg,Ok;function qD(){if(Ok)return yg;Ok=1;var e=LD(),n=e();return yg=n,yg}var wg,Lk;function $D(){if(Lk)return wg;Lk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return wg=e,wg}var xg,qk;function DD(){if(qk)return xg;qk=1;var e=bo();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),h=i!==void 0,p=i===null,d=i===i,m=e(i);if(!p&&!m&&!c&&r>i||c&&h&&d&&!p&&!m||l&&h&&d||!o&&d||!u)return 1;if(!l&&!c&&!m&&r<i||m&&o&&u&&!l&&!c||p&&o&&u||!h&&u||!d)return-1}return 0}return xg=n,xg}var _g,$k;function FD(){if($k)return _g;$k=1;var e=DD();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,h=u.length,p=o.length;++l<h;){var d=e(u[l],c[l]);if(d){if(l>=p)return d;var m=o[l];return d*(m=="desc"?-1:1)}}return r.index-i.index}return _g=n,_g}var bg,Dk;function zD(){if(Dk)return bg;Dk=1;var e=Bu(),n=Hu(),r=Gr(),i=tR(),o=$D(),l=$u(),u=FD(),c=fi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(b){return n(b,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,b,S){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,b){return u(_,b,y)})}return bg=p,bg}var Sg,Fk;function BD(){if(Fk)return Sg;Fk=1;var e=cy(),n=zD(),r=Wu(),i=Vu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&i(l,u[0],u[1])?u=[]:c>2&&i(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Sg=o,Sg}var kg,zk;function UD(){if(zk)return kg;zk=1;var e=YC(),n=0;function r(i){var o=++n;return e(i)+o}return kg=r,kg}var Eg,Bk;function HD(){if(Bk)return Eg;Bk=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var h=o<u?r[o]:void 0;i(c,n[o],h)}return c}return Eg=e,Eg}var Ng,Uk;function WD(){if(Uk)return Ng;Uk=1;var e=Lu(),n=HD();function r(i,o){return n(i||[],o||[],e)}return Ng=r,Ng}var Cg,Hk;function it(){if(Hk)return Cg;Hk=1;var e;if(typeof Kv=="function")try{e={cloneDeep:aD(),constant:iy(),defaults:lD(),each:zC(),filter:ZC(),find:mD(),flatten:mR(),forEach:FC(),forIn:gD(),has:JC(),isUndefined:eR(),last:vD(),map:nR(),mapValues:yD(),max:xD(),merge:ND(),min:CD(),minBy:RD(),now:jD(),pick:PD(),range:qD(),reduce:rR(),sortBy:BD(),uniqueId:UD(),values:lR(),zipObject:WD()}}catch{}return e||(e=window._),Cg=e,Cg}var Rg,Wk;function VD(){if(Wk)return Rg;Wk=1,Rg=e;function e(){var i={};i._next=i._prev=i,this._sentinel=i}e.prototype.dequeue=function(){var i=this._sentinel,o=i._prev;if(o!==i)return n(o),o},e.prototype.enqueue=function(i){var o=this._sentinel;i._prev&&i._next&&n(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o},e.prototype.toString=function(){for(var i=[],o=this._sentinel,l=o._prev;l!==o;)i.push(JSON.stringify(l,r)),l=l._prev;return"["+i.join(", ")+"]"};function n(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function r(i,o){if(i!=="_next"&&i!=="_prev")return o}return Rg}var jg,Vk;function GD(){if(Vk)return jg;Vk=1;var e=it(),n=Jn().Graph,r=VD();jg=o;var i=e.constant(1);function o(p,d){if(p.nodeCount()<=1)return[];var m=c(p,d||i),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,d,m){for(var y=[],w=d[d.length-1],N=d[0],_;p.nodeCount();){for(;_=N.dequeue();)u(p,d,m,_);for(;_=w.dequeue();)u(p,d,m,_);if(p.nodeCount()){for(var b=d.length-2;b>0;--b)if(_=d[b].dequeue(),_){y=y.concat(u(p,d,m,_,!0));break}}}return y}function u(p,d,m,y,w){var N=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var b=p.edge(_),S=p.node(_.v);w&&N.push({v:_.v,w:_.w}),S.out-=b,h(d,m,S)}),e.forEach(p.outEdges(y.v),function(_){var b=p.edge(_),S=_.w,k=p.node(S);k.in-=b,h(d,m,k)}),p.removeNode(y.v),N}function c(p,d){var m=new n,y=0,w=0;e.forEach(p.nodes(),function(b){m.setNode(b,{v:b,in:0,out:0})}),e.forEach(p.edges(),function(b){var S=m.edge(b.v,b.w)||0,k=d(b),E=S+k;m.setEdge(b.v,b.w,E),w=Math.max(w,m.node(b.v).out+=k),y=Math.max(y,m.node(b.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(b){h(N,_,m.node(b))}),{graph:m,buckets:N,zeroIdx:_}}function h(p,d,m){m.out?m.in?p[m.out-m.in+d].enqueue(m):p[p.length-1].enqueue(m):p[0].enqueue(m)}return jg}var Tg,Gk;function YD(){if(Gk)return Tg;Gk=1;var e=it(),n=GD();Tg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(h){var p=l.edge(h);l.removeEdge(h),p.forwardName=h.name,p.reversed=!0,l.setEdge(h.w,h.v,p,e.uniqueId("rev"))});function c(h){return function(p){return h.edge(p).weight}}}function i(l){var u=[],c={},h={};function p(d){e.has(h,d)||(h[d]=!0,c[d]=!0,e.forEach(l.outEdges(d),function(m){e.has(c,m.w)?u.push(m):p(m.w)}),delete c[d])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var h=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,h)}})}return Tg}var Ag,Yk;function hn(){if(Yk)return Ag;Yk=1;var e=it(),n=Jn().Graph;Ag={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:h,normalizeRanks:p,removeEmptyRanks:d,addBorderNode:m,maxRank:y,partition:w,time:N,notime:_};function r(b,S,k,E){var C;do C=e.uniqueId(E);while(b.hasNode(C));return k.dummy=S,b.setNode(C,k),C}function i(b){var S=new n().setGraph(b.graph());return e.forEach(b.nodes(),function(k){S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){var E=S.edge(k.v,k.w)||{weight:0,minlen:1},C=b.edge(k);S.setEdge(k.v,k.w,{weight:E.weight+C.weight,minlen:Math.max(E.minlen,C.minlen)})}),S}function o(b){var S=new n({multigraph:b.isMultigraph()}).setGraph(b.graph());return e.forEach(b.nodes(),function(k){b.children(k).length||S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){S.setEdge(k,b.edge(k))}),S}function l(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.outEdges(k),function(C){E[C.w]=(E[C.w]||0)+b.edge(C).weight}),E});return e.zipObject(b.nodes(),S)}function u(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.inEdges(k),function(C){E[C.v]=(E[C.v]||0)+b.edge(C).weight}),E});return e.zipObject(b.nodes(),S)}function c(b,S){var k=b.x,E=b.y,C=S.x-k,I=S.y-E,O=b.width/2,A=b.height/2;if(!C&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var U,L;return Math.abs(I)*O>Math.abs(C)*A?(I<0&&(A=-A),U=A*C/I,L=A):(C<0&&(O=-O),U=O,L=O*I/C),{x:k+U,y:E+L}}function h(b){var S=e.map(e.range(y(b)+1),function(){return[]});return e.forEach(b.nodes(),function(k){var E=b.node(k),C=E.rank;e.isUndefined(C)||(S[C][E.order]=k)}),S}function p(b){var S=e.min(e.map(b.nodes(),function(k){return b.node(k).rank}));e.forEach(b.nodes(),function(k){var E=b.node(k);e.has(E,"rank")&&(E.rank-=S)})}function d(b){var S=e.min(e.map(b.nodes(),function(I){return b.node(I).rank})),k=[];e.forEach(b.nodes(),function(I){var O=b.node(I).rank-S;k[O]||(k[O]=[]),k[O].push(I)});var E=0,C=b.graph().nodeRankFactor;e.forEach(k,function(I,O){e.isUndefined(I)&&O%C!==0?--E:E&&e.forEach(I,function(A){b.node(A).rank+=E})})}function m(b,S,k,E){var C={width:0,height:0};return arguments.length>=4&&(C.rank=k,C.order=E),r(b,"border",C,S)}function y(b){return e.max(e.map(b.nodes(),function(S){var k=b.node(S).rank;if(!e.isUndefined(k))return k}))}function w(b,S){var k={lhs:[],rhs:[]};return e.forEach(b,function(E){S(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(b,S){var k=e.now();try{return S()}finally{console.log(b+" time: "+(e.now()-k)+"ms")}}function _(b,S){return S()}return Ag}var Ig,Kk;function KD(){if(Kk)return Ig;Kk=1;var e=it(),n=hn();Ig={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){i(l,u)})}function i(l,u){var c=u.v,h=l.node(c).rank,p=u.w,d=l.node(p).rank,m=u.name,y=l.edge(u),w=y.labelRank;if(d!==h+1){l.removeEdge(u);var N,_,b;for(b=0,++h;h<d;++b,++h)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:h},N=n.addDummyNode(l,"edge",_,"_d"),h===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},m),b===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,p,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),h=c.edgeLabel,p;for(l.setEdge(c.edgeObj,h);c.dummy;)p=l.successors(u)[0],l.removeNode(u),h.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(h.x=c.x,h.y=c.y,h.width=c.width,h.height=c.height),u=p,c=l.node(u)})}return Ig}var Mg,Xk;function xu(){if(Xk)return Mg;Xk=1;var e=it();Mg={longestPath:n,slack:r};function n(i){var o={};function l(u){var c=i.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var h=e.min(e.map(i.outEdges(u),function(p){return l(p.w)-i.edge(p).minlen}));return(h===Number.POSITIVE_INFINITY||h===void 0||h===null)&&(h=0),c.rank=h}e.forEach(i.sources(),l)}function r(i,o){return i.node(o.w).rank-i.node(o.v).rank-i.edge(o).minlen}return Mg}var Pg,Qk;function wR(){if(Qk)return Pg;Qk=1;var e=it(),n=Jn().Graph,r=xu().slack;Pg=i;function i(c){var h=new n({directed:!1}),p=c.nodes()[0],d=c.nodeCount();h.setNode(p,{});for(var m,y;o(h,c)<d;)m=l(h,c),y=h.hasNode(m.v)?r(c,m):-r(c,m),u(h,c,y);return h}function o(c,h){function p(d){e.forEach(h.nodeEdges(d),function(m){var y=m.v,w=d===y?m.w:y;!c.hasNode(w)&&!r(h,m)&&(c.setNode(w,{}),c.setEdge(d,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,h){return e.minBy(h.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(h,p)})}function u(c,h,p){e.forEach(c.nodes(),function(d){h.node(d).rank+=p})}return Pg}var Og,Zk;function XD(){if(Zk)return Og;Zk=1;var e=it(),n=wR(),r=xu().slack,i=xu().longestPath,o=Jn().alg.preorder,l=Jn().alg.postorder,u=hn().simplify;Og=c,c.initLowLimValues=m,c.initCutValues=h,c.calcCutValue=d,c.leaveEdge=w,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var C=n(E);m(C),h(C,E);for(var I,O;I=w(C);)O=N(C,E,I),_(C,E,I,O)}function h(E,C){var I=l(E,E.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(O){p(E,C,O)})}function p(E,C,I){var O=E.node(I),A=O.parent;E.edge(I,A).cutvalue=d(E,C,I)}function d(E,C,I){var O=E.node(I),A=O.parent,U=!0,L=C.edge(I,A),P=0;return L||(U=!1,L=C.edge(A,I)),P=L.weight,e.forEach(C.nodeEdges(I),function(q){var G=q.v===I,F=G?q.w:q.v;if(F!==A){var T=G===U,B=C.edge(q).weight;if(P+=T?B:-B,S(E,I,F)){var z=E.edge(I,F).cutvalue;P+=T?-z:z}}}),P}function m(E,C){arguments.length<2&&(C=E.nodes()[0]),y(E,{},1,C)}function y(E,C,I,O,A){var U=I,L=E.node(O);return C[O]=!0,e.forEach(E.neighbors(O),function(P){e.has(C,P)||(I=y(E,C,I,P,O))}),L.low=U,L.lim=I++,A?L.parent=A:delete L.parent,I}function w(E){return e.find(E.edges(),function(C){return E.edge(C).cutvalue<0})}function N(E,C,I){var O=I.v,A=I.w;C.hasEdge(O,A)||(O=I.w,A=I.v);var U=E.node(O),L=E.node(A),P=U,q=!1;U.lim>L.lim&&(P=L,q=!0);var G=e.filter(C.edges(),function(F){return q===k(E,E.node(F.v),P)&&q!==k(E,E.node(F.w),P)});return e.minBy(G,function(F){return r(C,F)})}function _(E,C,I,O){var A=I.v,U=I.w;E.removeEdge(A,U),E.setEdge(O.v,O.w,{}),m(E),h(E,C),b(E,C)}function b(E,C){var I=e.find(E.nodes(),function(A){return!C.node(A).parent}),O=o(E,I);O=O.slice(1),e.forEach(O,function(A){var U=E.node(A).parent,L=C.edge(A,U),P=!1;L||(L=C.edge(U,A),P=!0),C.node(A).rank=C.node(U).rank+(P?L.minlen:-L.minlen)})}function S(E,C,I){return E.hasEdge(C,I)}function k(E,C,I){return I.low<=C.lim&&C.lim<=I.lim}return Og}var Lg,Jk;function QD(){if(Jk)return Lg;Jk=1;var e=xu(),n=e.longestPath,r=wR(),i=XD();Lg=o;function o(h){switch(h.graph().ranker){case"network-simplex":c(h);break;case"tight-tree":u(h);break;case"longest-path":l(h);break;default:c(h)}}var l=n;function u(h){n(h),r(h)}function c(h){i(h)}return Lg}var qg,eE;function ZD(){if(eE)return qg;eE=1;var e=it();qg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),h=c.edgeObj,p=r(o,l,h.v,h.w),d=p.path,m=p.lca,y=0,w=d[y],N=!0;u!==h.w;){if(c=o.node(u),N){for(;(w=d[y])!==m&&o.node(w).maxRank<c.rank;)y++;w===m&&(N=!1)}if(!N){for(;y<d.length-1&&o.node(w=d[y+1]).minRank<=c.rank;)y++;w=d[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var h=[],p=[],d=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),h.push(y);while(y&&(l[y].low>d||m>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:h.concat(p.reverse()),lca:w}}function i(o){var l={},u=0;function c(h){var p=u;e.forEach(o.children(h),c),l[h]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return qg}var $g,tE;function JD(){if(tE)return $g;tE=1;var e=it(),n=hn();$g={run:r,cleanup:u};function r(c){var h=n.addDummyNode(c,"root",{},"_root"),p=o(c),d=e.max(e.values(p))-1,m=2*d+1;c.graph().nestingRoot=h,e.forEach(c.edges(),function(w){c.edge(w).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(w){i(c,h,m,y,d,p,w)}),c.graph().nodeRankFactor=m}function i(c,h,p,d,m,y,w){var N=c.children(w);if(!N.length){w!==h&&c.setEdge(h,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),b=n.addBorderNode(c,"_bb"),S=c.node(w);c.setParent(_,w),S.borderTop=_,c.setParent(b,w),S.borderBottom=b,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),C=E.borderTop?E.borderTop:k,I=E.borderBottom?E.borderBottom:k,O=E.borderTop?d:2*d,A=C!==I?1:m-y[w]+1;c.setEdge(_,C,{weight:O,minlen:A,nestingEdge:!0}),c.setEdge(I,b,{weight:O,minlen:A,nestingEdge:!0})}),c.parent(w)||c.setEdge(h,_,{weight:0,minlen:m+y[w]})}function o(c){var h={};function p(d,m){var y=c.children(d);y&&y.length&&e.forEach(y,function(w){p(w,m+1)}),h[d]=m}return e.forEach(c.children(),function(d){p(d,1)}),h}function l(c){return e.reduce(c.edges(),function(h,p){return h+c.edge(p).weight},0)}function u(c){var h=c.graph();c.removeNode(h.nestingRoot),delete h.nestingRoot,e.forEach(c.edges(),function(p){var d=c.edge(p);d.nestingEdge&&c.removeEdge(p)})}return $g}var Dg,nE;function e4(){if(nE)return Dg;nE=1;var e=it(),n=hn();Dg=r;function r(o){function l(u){var c=o.children(u),h=o.node(u);if(c.length&&e.forEach(c,l),e.has(h,"minRank")){h.borderLeft=[],h.borderRight=[];for(var p=h.minRank,d=h.maxRank+1;p<d;++p)i(o,"borderLeft","_bl",u,h,p),i(o,"borderRight","_br",u,h,p)}}e.forEach(o.children(),l)}function i(o,l,u,c,h,p){var d={width:0,height:0,rank:p,borderType:l},m=h[l][p-1],y=n.addDummyNode(o,"border",d,u);h[l][p]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return Dg}var Fg,rE;function t4(){if(rE)return Fg;rE=1;var e=it();Fg={adjust:n,undo:r};function n(p){var d=p.graph().rankdir.toLowerCase();(d==="lr"||d==="rl")&&i(p)}function r(p){var d=p.graph().rankdir.toLowerCase();(d==="bt"||d==="rl")&&l(p),(d==="lr"||d==="rl")&&(c(p),i(p))}function i(p){e.forEach(p.nodes(),function(d){o(p.node(d))}),e.forEach(p.edges(),function(d){o(p.edge(d))})}function o(p){var d=p.width;p.width=p.height,p.height=d}function l(p){e.forEach(p.nodes(),function(d){u(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(d){h(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,h),e.has(m,"x")&&h(m)})}function h(p){var d=p.x;p.x=p.y,p.y=d}return Fg}var zg,sE;function n4(){if(sE)return zg;sE=1;var e=it();zg=n;function n(r){var i={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(i,p)){i[p]=!0;var d=r.node(p);u[d.rank].push(p),e.forEach(r.successors(p),c)}}var h=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(h,c),u}return zg}var Bg,iE;function r4(){if(iE)return Bg;iE=1;var e=it();Bg=n;function n(i,o){for(var l=0,u=1;u<o.length;++u)l+=r(i,o[u-1],o[u]);return l}function r(i,o,l){for(var u=e.zipObject(l,e.map(l,function(y,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(w){return{pos:u[w.w],weight:i.edge(w).weight}}),"pos")}),!0),h=1;h<l.length;)h<<=1;var p=2*h-1;h-=1;var d=e.map(new Array(p),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var w=y.pos+h;d[w]+=y.weight;for(var N=0;w>0;)w%2&&(N+=d[w+1]),w=w-1>>1,d[w]+=y.weight;m+=y.weight*N})),m}return Bg}var Ug,oE;function s4(){if(oE)return Ug;oE=1;var e=it();Ug=n;function n(r,i){return e.map(i,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,h){var p=r.edge(h),d=r.node(h.v);return{sum:c.sum+p.weight*d.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Ug}var Hg,aE;function i4(){if(aE)return Hg;aE=1;var e=it();Hg=n;function n(o,l){var u={};e.forEach(o,function(h,p){var d=u[h.v]={indegree:0,in:[],out:[],vs:[h.v],i:p};e.isUndefined(h.barycenter)||(d.barycenter=h.barycenter,d.weight=h.weight)}),e.forEach(l.edges(),function(h){var p=u[h.v],d=u[h.w];!e.isUndefined(p)&&!e.isUndefined(d)&&(d.indegree++,p.out.push(u[h.w]))});var c=e.filter(u,function(h){return!h.indegree});return r(c)}function r(o){var l=[];function u(p){return function(d){d.merged||(e.isUndefined(d.barycenter)||e.isUndefined(p.barycenter)||d.barycenter>=p.barycenter)&&i(p,d)}}function c(p){return function(d){d.in.push(p),--d.indegree===0&&o.push(d)}}for(;o.length;){var h=o.pop();l.push(h),e.forEach(h.in.reverse(),u(h)),e.forEach(h.out,c(h))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["vs","i","barycenter","weight"])})}function i(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 Wg,lE;function o4(){if(lE)return Wg;lE=1;var e=it(),n=hn();Wg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),h=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),d=[],m=0,y=0,w=0;h.sort(o(!!u)),w=i(d,p,w),e.forEach(h,function(_){w+=_.vs.length,d.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,w=i(d,p,w)});var N={vs:e.flatten(d,!0)};return y&&(N.barycenter=m/y,N.weight=y),N}function i(l,u,c){for(var h;u.length&&(h=e.last(u)).i<=c;)u.pop(),l.push(h.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 Wg}var Vg,uE;function a4(){if(uE)return Vg;uE=1;var e=it(),n=s4(),r=i4(),i=o4();Vg=o;function o(c,h,p,d){var m=c.children(h),y=c.node(h),w=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};w&&(m=e.filter(m,function(I){return I!==w&&I!==N}));var b=n(c,m);e.forEach(b,function(I){if(c.children(I.v).length){var O=o(c,I.v,p,d);_[I.v]=O,e.has(O,"barycenter")&&u(I,O)}});var S=r(b,p);l(S,_);var k=i(S,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),C=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+C.order)/(k.weight+2),k.weight+=2}return k}function l(c,h){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(d){return h[d]?h[d].vs:d}),!0)})}function u(c,h){e.isUndefined(c.barycenter)?(c.barycenter=h.barycenter,c.weight=h.weight):(c.barycenter=(c.barycenter*c.weight+h.barycenter*h.weight)/(c.weight+h.weight),c.weight+=h.weight)}return Vg}var Gg,cE;function l4(){if(cE)return Gg;cE=1;var e=it(),n=Jn().Graph;Gg=r;function r(o,l,u){var c=i(o),h=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var d=o.node(p),m=o.parent(p);(d.rank===l||d.minRank<=l&&l<=d.maxRank)&&(h.setNode(p),h.setParent(p,m||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,N=h.edge(w,p),_=e.isUndefined(N)?0:N.weight;h.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(d,"minRank")&&h.setNode(p,{borderLeft:d.borderLeft[l],borderRight:d.borderRight[l]}))}),h}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return Gg}var Yg,dE;function u4(){if(dE)return Yg;dE=1;var e=it();Yg=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var h=r.parent(c),p,d;h;){if(p=r.parent(h),p?(d=l[p],l[p]=h):(d=u,u=h),d&&d!==h){i.setEdge(d,h);return}h=p}})}return Yg}var Kg,fE;function c4(){if(fE)return Kg;fE=1;var e=it(),n=n4(),r=r4(),i=a4(),o=l4(),l=u4(),u=Jn().Graph,c=hn();Kg=h;function h(y){var w=c.maxRank(y),N=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),b=n(y);m(y,b);for(var S=Number.POSITIVE_INFINITY,k,E=0,C=0;C<4;++E,++C){d(E%2?N:_,E%4>=2),b=c.buildLayerMatrix(y);var I=r(y,b);I<S&&(C=0,k=e.cloneDeep(b),S=I)}m(y,k)}function p(y,w,N){return e.map(w,function(_){return o(y,_,N)})}function d(y,w){var N=new u;e.forEach(y,function(_){var b=_.graph().root,S=i(_,b,N,w);e.forEach(S.vs,function(k,E){_.node(k).order=E}),l(_,N,S.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,b){y.node(_).order=b})})}return Kg}var Xg,hE;function d4(){if(hE)return Xg;hE=1;var e=it(),n=Jn().Graph,r=hn();Xg={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(S,k){var E={};function C(I,O){var A=0,U=0,L=I.length,P=e.last(O);return e.forEach(O,function(q,G){var F=l(S,q),T=F?S.node(F).order:L;(F||q===P)&&(e.forEach(O.slice(U,G+1),function(B){e.forEach(S.predecessors(B),function(z){var ne=S.node(z),Z=ne.order;(Z<A||T<Z)&&!(ne.dummy&&S.node(B).dummy)&&u(E,z,B)})}),U=G+1,A=T)}),O}return e.reduce(k,C),E}function o(S,k){var E={};function C(O,A,U,L,P){var q;e.forEach(e.range(A,U),function(G){q=O[G],S.node(q).dummy&&e.forEach(S.predecessors(q),function(F){var T=S.node(F);T.dummy&&(T.order<L||T.order>P)&&u(E,F,q)})})}function I(O,A){var U=-1,L,P=0;return e.forEach(A,function(q,G){if(S.node(q).dummy==="border"){var F=S.predecessors(q);F.length&&(L=S.node(F[0]).order,C(A,P,G,U,L),P=G,U=L)}C(A,P,A.length,L,O.length)}),A}return e.reduce(k,I),E}function l(S,k){if(S.node(k).dummy)return e.find(S.predecessors(k),function(E){return S.node(E).dummy})}function u(S,k,E){if(k>E){var C=k;k=E,E=C}var I=S[k];I||(S[k]=I={}),I[E]=!0}function c(S,k,E){if(k>E){var C=k;k=E,E=C}return e.has(S[k],E)}function h(S,k,E,C){var I={},O={},A={};return e.forEach(k,function(U){e.forEach(U,function(L,P){I[L]=L,O[L]=L,A[L]=P})}),e.forEach(k,function(U){var L=-1;e.forEach(U,function(P){var q=C(P);if(q.length){q=e.sortBy(q,function(z){return A[z]});for(var G=(q.length-1)/2,F=Math.floor(G),T=Math.ceil(G);F<=T;++F){var B=q[F];O[P]===P&&L<A[B]&&!c(E,P,B)&&(O[B]=P,O[P]=I[P]=I[B],L=A[B])}}})}),{root:I,align:O}}function p(S,k,E,C,I){var O={},A=d(S,k,E,I),U=I?"borderLeft":"borderRight";function L(G,F){for(var T=A.nodes(),B=T.pop(),z={};B;)z[B]?G(B):(z[B]=!0,T.push(B),T=T.concat(F(B))),B=T.pop()}function P(G){O[G]=A.inEdges(G).reduce(function(F,T){return Math.max(F,O[T.v]+A.edge(T))},0)}function q(G){var F=A.outEdges(G).reduce(function(B,z){return Math.min(B,O[z.w]-A.edge(z))},Number.POSITIVE_INFINITY),T=S.node(G);F!==Number.POSITIVE_INFINITY&&T.borderType!==U&&(O[G]=Math.max(O[G],F))}return L(P,A.predecessors.bind(A)),L(q,A.successors.bind(A)),e.forEach(C,function(G){O[G]=O[E[G]]}),O}function d(S,k,E,C){var I=new n,O=S.graph(),A=_(O.nodesep,O.edgesep,C);return e.forEach(k,function(U){var L;e.forEach(U,function(P){var q=E[P];if(I.setNode(q),L){var G=E[L],F=I.edge(G,q);I.setEdge(G,q,Math.max(A(S,P,L),F||0))}L=P})}),I}function m(S,k){return e.minBy(e.values(k),function(E){var C=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(E,function(O,A){var U=b(S,A)/2;C=Math.max(O+U,C),I=Math.min(O-U,I)}),C-I})}function y(S,k){var E=e.values(k),C=e.min(E),I=e.max(E);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(A){var U=O+A,L=S[U],P;if(L!==k){var q=e.values(L);P=A==="l"?C-e.min(q):I-e.max(q),P&&(S[U]=e.mapValues(L,function(G){return G+P}))}})})}function w(S,k){return e.mapValues(S.ul,function(E,C){if(k)return S[k.toLowerCase()][C];var I=e.sortBy(e.map(S,C));return(I[1]+I[2])/2})}function N(S){var k=r.buildLayerMatrix(S),E=e.merge(i(S,k),o(S,k)),C={},I;e.forEach(["u","d"],function(A){I=A==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(I=e.map(I,function(G){return e.values(G).reverse()}));var L=(A==="u"?S.predecessors:S.successors).bind(S),P=h(S,I,E,L),q=p(S,I,P.root,P.align,U==="r");U==="r"&&(q=e.mapValues(q,function(G){return-G})),C[A+U]=q})});var O=m(S,C);return y(C,O),w(C,S.graph().align)}function _(S,k,E){return function(C,I,O){var A=C.node(I),U=C.node(O),L=0,P;if(L+=A.width/2,e.has(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":P=-A.width/2;break;case"r":P=A.width/2;break}if(P&&(L+=E?P:-P),P=0,L+=(A.dummy?k:S)/2,L+=(U.dummy?k:S)/2,L+=U.width/2,e.has(U,"labelpos"))switch(U.labelpos.toLowerCase()){case"l":P=U.width/2;break;case"r":P=-U.width/2;break}return P&&(L+=E?P:-P),P=0,L}}function b(S,k){return S.node(k).width}return Xg}var Qg,pE;function f4(){if(pE)return Qg;pE=1;var e=it(),n=hn(),r=d4().positionX;Qg=i;function i(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,h=0;e.forEach(u,function(p){var d=e.max(e.map(p,function(m){return l.node(m).height}));e.forEach(p,function(m){l.node(m).y=h+d/2}),h+=d+c})}return Qg}var Zg,mE;function h4(){if(mE)return Zg;mE=1;var e=it(),n=YD(),r=KD(),i=QD(),o=hn().normalizeRanks,l=ZD(),u=hn().removeEmptyRanks,c=JD(),h=e4(),p=t4(),d=c4(),m=f4(),y=hn(),w=Jn().Graph;Zg=N;function N(H,J){var re=J&&J.debugTiming?y.time:y.notime;re("layout",function(){var le=re(" buildLayoutGraph",function(){return L(H)});re(" runLayout",function(){_(le,re)}),re(" updateInputGraph",function(){b(H,le)})})}function _(H,J){J(" makeSpaceForEdgeLabels",function(){P(H)}),J(" removeSelfEdges",function(){$(H)}),J(" acyclic",function(){n.run(H)}),J(" nestingGraph.run",function(){c.run(H)}),J(" rank",function(){i(y.asNonCompoundGraph(H))}),J(" injectEdgeLabelProxies",function(){q(H)}),J(" removeEmptyRanks",function(){u(H)}),J(" nestingGraph.cleanup",function(){c.cleanup(H)}),J(" normalizeRanks",function(){o(H)}),J(" assignRankMinMax",function(){G(H)}),J(" removeEdgeLabelProxies",function(){F(H)}),J(" normalize.run",function(){r.run(H)}),J(" parentDummyChains",function(){l(H)}),J(" addBorderSegments",function(){h(H)}),J(" order",function(){d(H)}),J(" insertSelfEdges",function(){Q(H)}),J(" adjustCoordinateSystem",function(){p.adjust(H)}),J(" position",function(){m(H)}),J(" positionSelfEdges",function(){M(H)}),J(" removeBorderNodes",function(){Z(H)}),J(" normalize.undo",function(){r.undo(H)}),J(" fixupEdgeLabelCoords",function(){z(H)}),J(" undoCoordinateSystem",function(){p.undo(H)}),J(" translateGraph",function(){T(H)}),J(" assignNodeIntersects",function(){B(H)}),J(" reversePoints",function(){ne(H)}),J(" acyclic.undo",function(){n.undo(H)})}function b(H,J){e.forEach(H.nodes(),function(re){var le=H.node(re),fe=J.node(re);le&&(le.x=fe.x,le.y=fe.y,J.children(re).length&&(le.width=fe.width,le.height=fe.height))}),e.forEach(H.edges(),function(re){var le=H.edge(re),fe=J.edge(re);le.points=fe.points,e.has(fe,"x")&&(le.x=fe.x,le.y=fe.y)}),H.graph().width=J.graph().width,H.graph().height=J.graph().height}var S=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],C=["width","height"],I={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function L(H){var J=new w({multigraph:!0,compound:!0}),re=K(H.graph());return J.setGraph(e.merge({},k,V(re,S),e.pick(re,E))),e.forEach(H.nodes(),function(le){var fe=K(H.node(le));J.setNode(le,e.defaults(V(fe,C),I)),J.setParent(le,H.parent(le))}),e.forEach(H.edges(),function(le){var fe=K(H.edge(le));J.setEdge(le,e.merge({},A,V(fe,O),e.pick(fe,U)))}),J}function P(H){var J=H.graph();J.ranksep/=2,e.forEach(H.edges(),function(re){var le=H.edge(re);le.minlen*=2,le.labelpos.toLowerCase()!=="c"&&(J.rankdir==="TB"||J.rankdir==="BT"?le.width+=le.labeloffset:le.height+=le.labeloffset)})}function q(H){e.forEach(H.edges(),function(J){var re=H.edge(J);if(re.width&&re.height){var le=H.node(J.v),fe=H.node(J.w),te={rank:(fe.rank-le.rank)/2+le.rank,e:J};y.addDummyNode(H,"edge-proxy",te,"_ep")}})}function G(H){var J=0;e.forEach(H.nodes(),function(re){var le=H.node(re);le.borderTop&&(le.minRank=H.node(le.borderTop).rank,le.maxRank=H.node(le.borderBottom).rank,J=e.max(J,le.maxRank))}),H.graph().maxRank=J}function F(H){e.forEach(H.nodes(),function(J){var re=H.node(J);re.dummy==="edge-proxy"&&(H.edge(re.e).labelRank=re.rank,H.removeNode(J))})}function T(H){var J=Number.POSITIVE_INFINITY,re=0,le=Number.POSITIVE_INFINITY,fe=0,te=H.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Te){var ye=Te.x,ke=Te.y,Ke=Te.width,we=Te.height;J=Math.min(J,ye-Ke/2),re=Math.max(re,ye+Ke/2),le=Math.min(le,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach(H.nodes(),function(Te){ve(H.node(Te))}),e.forEach(H.edges(),function(Te){var ye=H.edge(Te);e.has(ye,"x")&&ve(ye)}),J-=ce,le-=Ce,e.forEach(H.nodes(),function(Te){var ye=H.node(Te);ye.x-=J,ye.y-=le}),e.forEach(H.edges(),function(Te){var ye=H.edge(Te);e.forEach(ye.points,function(ke){ke.x-=J,ke.y-=le}),e.has(ye,"x")&&(ye.x-=J),e.has(ye,"y")&&(ye.y-=le)}),te.width=re-J+ce,te.height=fe-le+Ce}function B(H){e.forEach(H.edges(),function(J){var re=H.edge(J),le=H.node(J.v),fe=H.node(J.w),te,ce;re.points?(te=re.points[0],ce=re.points[re.points.length-1]):(re.points=[],te=fe,ce=le),re.points.unshift(y.intersectRect(le,te)),re.points.push(y.intersectRect(fe,ce))})}function z(H){e.forEach(H.edges(),function(J){var re=H.edge(J);if(e.has(re,"x"))switch((re.labelpos==="l"||re.labelpos==="r")&&(re.width-=re.labeloffset),re.labelpos){case"l":re.x-=re.width/2+re.labeloffset;break;case"r":re.x+=re.width/2+re.labeloffset;break}})}function ne(H){e.forEach(H.edges(),function(J){var re=H.edge(J);re.reversed&&re.points.reverse()})}function Z(H){e.forEach(H.nodes(),function(J){if(H.children(J).length){var re=H.node(J),le=H.node(re.borderTop),fe=H.node(re.borderBottom),te=H.node(e.last(re.borderLeft)),ce=H.node(e.last(re.borderRight));re.width=Math.abs(ce.x-te.x),re.height=Math.abs(fe.y-le.y),re.x=te.x+re.width/2,re.y=le.y+re.height/2}}),e.forEach(H.nodes(),function(J){H.node(J).dummy==="border"&&H.removeNode(J)})}function $(H){e.forEach(H.edges(),function(J){if(J.v===J.w){var re=H.node(J.v);re.selfEdges||(re.selfEdges=[]),re.selfEdges.push({e:J,label:H.edge(J)}),H.removeEdge(J)}})}function Q(H){var J=y.buildLayerMatrix(H);e.forEach(J,function(re){var le=0;e.forEach(re,function(fe,te){var ce=H.node(fe);ce.order=te+le,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode(H,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++le,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function M(H){e.forEach(H.nodes(),function(J){var re=H.node(J);if(re.dummy==="selfedge"){var le=H.node(re.e.v),fe=le.x+le.width/2,te=le.y,ce=re.x-fe,Ce=le.height/2;H.setEdge(re.e,re.label),H.removeNode(J),re.label.points=[{x:fe+2*ce/3,y:te-Ce},{x:fe+5*ce/6,y:te-Ce},{x:fe+ce,y:te},{x:fe+5*ce/6,y:te+Ce},{x:fe+2*ce/3,y:te+Ce}],re.label.x=re.x,re.label.y=re.y}})}function V(H,J){return e.mapValues(e.pick(H,J),Number)}function K(H){var J={};return e.forEach(H,function(re,le){J[le.toLowerCase()]=re}),J}return Zg}var Jg,gE;function p4(){if(gE)return Jg;gE=1;var e=it(),n=hn(),r=Jn().Graph;Jg={debugOrdering:i};function i(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,h){var p="layer"+h;u.setNode(p,{rank:"same"}),e.reduce(c,function(d,m){return u.setEdge(d,m,{style:"invis"}),m})}),u}return Jg}var ev,vE;function m4(){return vE||(vE=1,ev="0.8.5"),ev}var tv,yE;function g4(){return yE||(yE=1,tv={graphlib:Jn(),layout:h4(),debug:p4(),util:{time:hn().time,notime:hn().notime},version:m4()}),tv}var v4=g4();const wE=Rv(v4),go=240,_u=130,uo=74,Gu=72,xE=uo+Gu;function y4(e,n){var i;let r=go;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??go);return r}const xR=420,w4=2;function ja(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function x4(e,n){return((n==null?void 0:n.get(e))??0)>0?xR:0}function _4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Ta(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??go)+x4(e,r),h:Math.max((i==null?void 0:i.height)??_u,_4(e,r))}}function b4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function S4(e,n,r,i,o,l){const u=new wE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),h=new Set(c);for(const S of c){const{w:k,h:E}=Ta(S,i,l);u.setNode(S,{width:k,height:E})}for(const S of n)h.has(S.source)&&h.has(S.target)&&u.setEdge(S.source,S.target);wE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const S of c){const k=u.node(S);if(!k)continue;const E=i.get(S),C=(E==null?void 0:E.width)??go,I=(E==null?void 0:E.height)??_u,O=Ta(S,i,l),A=k.x-O.w/2,U=k.y-O.h/2;p.set(S,{x:A,y:U}),A<d&&(d=A),U<m&&(m=U),A+C>y&&(y=A+C),U+I>w&&(w=U+I)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[S,k]of p)p.set(S,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let b=null;for(const S of e){const k=o.get(S);if(!k)continue;const E=i.get(S),C=(E==null?void 0:E.width)??go,I=(E==null?void 0:E.height)??_u;b=b===null?{minX:k.x,minY:k.y,maxX:k.x+C,maxY:k.y+I}:{minX:Math.min(b.minX,k.x),minY:Math.min(b.minY,k.y),maxX:Math.max(b.maxX,k.x+C),maxY:Math.max(b.maxY,k.y+I)}}return{positions:p,width:N,height:_,pinnedBox:b}}function k4(e,n,r={}){const i=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const S of e){const k=ja(S),E=c.get(k);E?E.push(S.id):c.set(k,[S.id])}const p=Array.from(c.keys()).sort().map(S=>({sid:S,...S4(c.get(S),n,i,l,o,u)})),d=y4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=S=>{const k=[[]];let E=0;for(const C of p)k.length<S&&E>0&&E+C.height>m&&(k.push([]),E=0),k[k.length-1].push(C),E+=C.height+xE;return k},w=S=>S.reduce((k,E)=>Math.max(k,E.width),0)+xR;let N=y(r.availableWidth?w4:1);N.length>1&&N.reduce((k,E)=>k+w(E),0)+d*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let b=0;for(const S of N){const k=w(S);let E=0;for(const{positions:C,height:I,pinnedBox:O}of S){for(const[U,L]of C)_.set(U,{x:L.x+b,y:L.y+E});let A=E+I;O&&O.maxY>A&&O.minX<b+k&&b<O.maxX&&(A=O.maxY),E=A+xE}b+=k+d}return e.map(S=>{const k=o.get(S.id);if(k)return{...S,position:k};const E=_.get(S.id);return E?{...S,position:E}:S})}function E4(e,n,r,i,o){const u=uo+Gu,c=60,h=w=>Ta(w,i,o),p=new Map(e.map(w=>[w.id,ja(w)])),d=[],m=e.map(w=>({id:w.id,pos:r.get(w.id)??n.get(w.id)})).filter(w=>w.pos!=null).sort((w,N)=>w.pos.y-N.pos.y||w.pos.x-N.pos.x||w.id.localeCompare(N.id)),y=[];for(const{id:w,pos:N}of m){const{w:_,h:b}=h(w),S=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:b,sid:S});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const C=d.find(I=>{const O=I.sid===S?24:c,A=I.sid===S?24:u;return N.x<I.x+I.w+O&&I.x<N.x+_+O&&k<I.y+I.h+A&&I.y<k+b+A});if(!C)break;k=C.y+C.h+(C.sid===S?24:u)}k!==N.y&&(n.set(w,{x:N.x,y:k}),y.push(w)),d.push({x:N.x,y:k,w:_,h:b,sid:S})}return y}function N4(e,n,r,i,o,l){const u=_=>Ta(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const b=ja(_),S=h.get(b);S?S.push(_):h.set(b,[_])}const p=new Set;for(const[_,b]of h)b.every(S=>o.has(S.id)&&!r.has(S.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const b=c(_.id);if(!b)continue;const{w:S,h:k}=u(_.id),E=ja(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:b.x,y:b.y,w:S,h:k})}if(d.size===0)return[];const y=uo+Gu,w=(_,b,S,k)=>m.some(E=>_<E.x+E.w+uo&&E.x<_+S+uo&&b<E.y+E.h+y&&E.y<b+k+y),N=[];for(const _ of[...d.keys()].sort()){const b=d.get(_);let S=1/0,k=1/0,E=-1/0,C=-1/0;for(const q of b){const G=c(q.id),{w:F,h:T}=u(q.id);S=Math.min(S,G.x),k=Math.min(k,G.y),E=Math.max(E,G.x+F),C=Math.max(C,G.y+T)}const I=E-S,O=C-k,A=[...new Set(m.map(q=>Math.round(q.x)))].sort((q,G)=>q-G),U=A.length?A:[S],L=[0,...m.map(q=>q.y+q.h+y)].sort((q,G)=>q-G);let P=null;e:for(const q of U)for(const G of L){if(G>=k)break;if(!w(q,G,I,O)){P={x:q,y:G};break e}}if(P){const q=P.x-S,G=P.y-k;for(const F of b){const T=c(F.id);n.set(F.id,{x:T.x+q,y:T.y+G})}N.push(_)}for(const q of b){const G=c(q.id),{w:F,h:T}=u(q.id);m.push({x:G.x,y:G.y,w:F,h:T})}}return N}function C4(e,n,r,i,o,l=!1,u){const p=uo+Gu+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Ta(P,i,u),b=P=>r.get(P)??n.get(P),S=new Map;for(const P of e){if(!b(P.id))continue;const q=ja(P),G=S.get(q);G?G.push(P):S.set(q,[P])}const k=[],E=new Set,C=new Set,I=o.size===0;for(const P of[...S.keys()].sort()){const q=S.get(P);let G=1/0,F=1/0,T=-1/0,B=-1/0,z=!1;for(const Q of q){const M=b(Q.id),{w:V,h:K}=_(Q.id);G=Math.min(G,M.x),F=Math.min(F,M.y),T=Math.max(T,M.x+V),B=Math.max(B,M.y+K),r.has(Q.id)&&(z=!0)}const ne=T-G,Z=B-F;C.add(P);const $=o.get(P);$&&(ne>$.w+d||Z>$.h+d)&&E.add(P),o.set(P,{w:ne,h:Z}),k.push({sid:P,members:q.map(Q=>Q.id),x:G,y:F,w:ne,h:Z,anchored:z,mass:1})}for(const P of[...o.keys()])C.has(P)||o.delete(P);if(l||I)return[];let O=!1;for(let P=0;P<k.length&&!O;P++)for(let q=P+1;q<k.length;q++){const G=k[P],F=k[q];if(!(G.anchored&&F.anchored)&&Math.abs(G.x+G.w/2-(F.x+F.w/2))<(G.w+F.w)/2+61&&Math.abs(G.y+G.h/2-(F.y+F.h/2))<(G.h+F.h)/2+p){O=!0;break}}if(E.size===0&&!O)return[];if(E.size>0)for(const P of k)E.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(go*_u));const A=new Map(k.map(P=>[P.sid,P.x])),U=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const q=new Map,G=new Map;let F=0;for(let T=0;T<k.length;T++)for(let B=T+1;B<k.length;B++){const z=k[T],ne=k[B];if(z.anchored&&ne.anchored)continue;const Z=z.x+z.w/2,$=z.y+z.h/2,Q=ne.x+ne.w/2,M=ne.y+ne.h/2,V=(z.w+ne.w)/2+61-Math.abs(Z-Q),K=(z.h+ne.h)/2+p-Math.abs($-M);if(V<=0||K<=0)continue;const H=(De,Je)=>!De.anchored&&!(Je<0&&De.x<=0),J=(De,Je)=>!De.anchored&&!(Je<0&&De.y<=0),re=(De,Je,Xe)=>{const vt=De===Je,ot=vt?z.sid<ne.sid?-1:1:Math.sign(De-Je);return Xe(z,ot)||Xe(ne,-ot)?ot:vt&&(Xe(z,-ot)||Xe(ne,ot))?-ot:0},le=re(Z,Q,H),fe=re($,M,J),te=le!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||V*m<K),[ve,Te,ye,ke]=Ce?[le,V,q,H]:[fe,K,G,J],Ke=ke(z,ve),we=ke(ne,-ve),_e=z.mass,Be=ne.mass,ft=Ke?we?Be/(_e+Be):1:0,ht=we?Ke?_e/(_e+Be):1:0,He=Te*w;ye.set(z.sid,(ye.get(z.sid)??0)+ve*He*ft),ye.set(ne.sid,(ye.get(ne.sid)??0)-ve*He*ht),F+=He}for(const T of k)T.anchored||(T.x=Math.max(0,T.x+(q.get(T.sid)??0)),T.y=Math.max(0,T.y+(G.get(T.sid)??0)));if(F<N)break}const L=[];for(const P of k){const q=P.x-A.get(P.sid),G=P.y-U.get(P.sid);if(!(Math.abs(q)<1&&Math.abs(G)<1)){for(const F of P.members){if(r.has(F))continue;const T=n.get(F);T&&n.set(F,{x:T.x+q,y:T.y+G})}L.push(P.sid)}}return L}const R4=600;function kv(e,n){return!(e.exitAt!=null&&n-e.exitAt>R4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function j4(e,n){const r=new Set;for(const i of e.agents.values())kv(i,n)&&r.add(i.id);return r}function T4(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function A4(e,n,r=0){if(!e)return!1;for(const i of n)if(T4(e,i,r))return!0;return!1}const _R="sessionGroup";function I4(e,n){var i;if(e.type===_R)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const M4="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function P4(e){if(e.checkDisabled)return M4;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function O4(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function L4(e){if(e==null)return{kind:"unknown",lead:"No data yet. Start a Claude Code or Codex session — it appears here as soon as its first hook fires.",workspace:null,tail:""};const n=e.trim();return n===""?{kind:"machine",lead:"No data yet. Start a Claude Code or Codex session anywhere on this machine — this deck is unscoped and captures every workspace.",workspace:null,tail:""}:{kind:"scoped",lead:"No data yet. This deck only captures sessions running under",workspace:n,tail:" — start one there, or restart it without --workspace/--scope to watch the whole machine."}}function bR(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function q4(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${bR(e.held)} held until you resume (Space)`:"Connected — updates held until you resume (Space)"}:{tone:"live",label:"live",title:"Receiving events"}:{tone:"dead",label:"offline",title:e.paused?"SSE disconnected — and the canvas is paused, so resuming will not bring events back until it reconnects":"SSE disconnected"}}function $4(e){return e.paused?e.held<=0?{label:"Resume",title:"Nothing has arrived since you paused. Resume to follow the canvas again (Space)"}:{label:`Resume · ${e.held} held`,title:`${bR(e.held)} arrived while paused and will be applied in order when you resume (Space)`}:{label:"Pause",title:"Pause live updates — events keep arriving and are applied when you resume (Space)"}}function SR(e,n){return e!==""&&n>0}function D4(e,n,r){return e===""?{active:!1,matched:n,total:r,count:null,empty:!1,message:null,dim:!1}:{active:!0,matched:n,total:r,count:`${n} of ${r}`,empty:n===0,message:n===0?`No agents match “${e}”`:null,dim:SR(e,n)}}function Ev(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`}function F4(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function z4(e,n,r){const i=new Date(e),o=Ev(n-e);return{label:F4(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function pa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const B4={agent:DO,sessionGroup:JO},kR="react-flow__node";function _E(e){var n,r;return!!e&&((r=(n=e.classList)==null?void 0:n.contains)==null?void 0:r.call(n,kR))===!0}function U4(e){try{const n=document.querySelector(`.${kR}[data-id="${CSS.escape(e)}"]`);n==null||n.focus({preventScroll:!0})}catch{}}const H4=420,nu=18,W4=9e4,V4=200,G4=5*6e4,Y4=6,K4=2*6e4,hy="agent-dag.layout",py="agent-dag.viewport",ER="agent-dag.summariesDismissed",NR="agent-dag.sessionListOpen",CR="agent-dag.detailOpen",RR="agent-dag.usagePanelOpen",bE="agent-dag.accountsPanelOpen",SE="agent-dag.versionNoticeDismissed",kE="agent-dag.oldNameNoticeDismissed",X4=15*6e4,EE={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:"},NE="agent-dag.autoRestart",CE="agent-dag.bundleReloadedFor";function Q4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(NR)==="1"}catch{return!1}}function Z4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(NR,e?"1":"0")}catch{}}function J4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(CR)==="1"}catch{return!1}}function e5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CR,e?"1":"0")}catch{}}function t5(){const e=wC(RR);return e===null?!0:e==="1"}function n5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(RR,e?"1":"0")}catch{}}function r5(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(ER);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function RE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(ER,JSON.stringify(r))}catch{}}function s5(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(hy);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function nv(e,n){if(!(typeof window>"u"))try{const r={};for(const[i,o]of e)r[i]=o;for(const[i,o]of n)r[i]=o;window.localStorage.setItem(hy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function i5(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(py);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 o5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(py,JSON.stringify(e))}catch{}}function jE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(hy)}catch{}try{window.localStorage.removeItem(py)}catch{}}}function a5(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const d of e.agents.values())d.sessionId===n&&i.push(d);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:i.map(d=>({id:d.id,kind:d.kind,label:d.label,parentId:d.parentId,state:d.state,startedAt:d.startedAt,endedAt:d.endedAt,model:d.model,cwd:d.cwd,usage:d.usage,prompts:d.prompts,tools:d.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),h=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");h.href=c,h.download=`${zt}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Nv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Cv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},l5={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 jR(e){return e.startsWith("mcp__")?"mcp":l5[e]??"other"}function TR(e,n){var i,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(i=e.cwd)!=null&&i.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function u5(e,n){if(!n)return null;const r=new Set([n]);let i=n;for(;i;){const l=e.agents.get(i);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),i=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function c5(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,b,S,k){const E=[],C=[],I=new Set;if(l)for(const F of e.agents.values())S.has(F.id)&&TR(F,l)&&I.add(F.id);const O=SR(l,I.size);for(const F of e.agents.values()){if(!S.has(F.id))continue;const T=O&&!I.has(F.id),B=F.exitAt!=null,z=b!=null&&!b.has(F.id),ne=[T?"rf-dim":"",B?"rf-exiting":"",z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(F.id);if(E.push({id:F.id,type:"agent",position:{x:0,y:0},data:{...F,now:n,onOpenContext:k},className:ne,...Z?{width:Z.width,height:Z.height}:null}),F.parentId&&S.has(F.parentId)){const $=Vv(F.sessionId),Q=l&&!I.has(F.id)&&!I.has(F.parentId),M=B,V=_.size>0&&(_.has(F.id)||_.has(F.parentId)),K=b!=null&&!b.has(F.id)&&!b.has(F.parentId),H=F.state==="active"?2:1.5,J=V?H+1.5:H,re=Q||M?.2:K?.12:1,le=["sess-edge",F.state==="active"?"sess-live":"sess-idle",M?"rf-edge-exiting":"",V?"rf-edge-selected":""].filter(Boolean).join(" ");C.push({id:`e:${F.parentId}->${F.id}`,source:F.parentId,target:F.id,animated:(F.state==="active"||V)&&!Q&&!M,type:"smoothstep",style:{"--session-hue":$,strokeWidth:J,opacity:re,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:le})}}const A=new Map;for(const F of e.agents.values())F.tools.length>0&&A.set(F.id,Math.min(4,F.tools.length));const U=`${w}#lanes:${b4(A)}`,L=E.filter(F=>LL(F.id,o,m,y));if(L.length>0||U!==N.current){if(L.length>0){const F=k4(E,C,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:A});for(const T of F)yC(T.id,m,y)&&$L(T.id,T.position,m,y);N4(E,m,o,u,new Set(L.map(T=>T.id)),A)}E4(E,m,o,u,A),N.current=U}const P=C4(E,m,o,u,c,!p||d,A);P.length>0&&h(P),Zl(m,e.agents),Zl(y,e.agents),Zl(o,e.agents),Zl(u,OL(e.agents.values()));const q=[];let G=!1;for(const F of E){let T=o.get(F.id)??m.get(F.id);T||(T=qL(F.id,m,y),G=!0),q.push({...F,position:T})}return G&&(N.current=""),{nodes:q,edges:C}}function d5(){return g.jsx(Wv,{children:g.jsx(f5,{})})}function f5(){var Fs,Po,Ua,Ha;const e=Oa(),n=j.useRef(wv()),[,r]=j.useState(0),i=j.useCallback(()=>r(W=>W+1),[]),[o,l]=j.useState(()=>new Set),[u,c]=j.useState(null),[h,p]=j.useState(null),d=j.useCallback((W,Y)=>{l(oe=>{if(!Y)return new Set([W]);const de=new Set(oe);return de.has(W)?de.delete(W):de.add(W),de}),c(oe=>Y&&oe===W?oe:W)},[]),m=j.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useCallback(W=>_(W),[]),[S,k]=j.useState(!1),E=j.useRef(r5()),[C,I]=j.useState(Q4);j.useEffect(()=>{Z4(C)},[C]);const[O,A]=j.useState(J4);j.useEffect(()=>{e5(O)},[O]);const[U,L]=j.useState(t5);j.useEffect(()=>{n5(U)},[U]);const[P,q]=j.useState(()=>{try{const W=window.localStorage.getItem(bE);return W===null?!0:W==="1"}catch{return!0}});j.useEffect(()=>{try{window.localStorage.setItem(bE,P?"1":"0")}catch{}},[P]);const[G,F]=j.useState(null),[T,B]=j.useState(!1),[z,ne]=j.useState(0),[Z,$]=j.useState(0);j.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(F(W.enabled===!0),ne((W.foreign??[]).filter(Y=>Y.worksHere).length),$(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const Q=j.useCallback(async()=>{B(!0);try{const Y=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!G})})).json().catch(()=>null);Y!=null&&Y.ok&&F(Y.enabled===!0),fetch("/api/sound-hook").then(oe=>oe.ok?oe.json():null).then(oe=>{oe!=null&&oe.ok&&(ne((oe.foreign??[]).filter(de=>de.worksHere).length),$(typeof oe.parked=="number"?oe.parked:0))}).catch(()=>{})}catch{}finally{B(!1)}},[G]),[M,V]=j.useState(!1),[K,H]=j.useState(null),[J,re]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(SE)??""}catch{return""}}),[le,fe]=j.useState(!1),te=j.useRef(0),[ce,Ce]=j.useState(!1),ve=j.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(Y=>Y.ok?Y.json():null).then(Y=>{Y&&H(Y)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),Te=j.useCallback(()=>{ve(Date.now()-te.current>=X4)},[ve]);j.useEffect(()=>{ve();const W=window.setInterval(Te,5*6e4),Y=()=>{document.visibilityState==="visible"&&Te()};return document.addEventListener("visibilitychange",Y),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",Y)}},[ve,Te]),j.useEffect(()=>{M&&ve()},[M,ve]);const ye=(K==null?void 0:K.notice)??null,[ke,Ke]=j.useState(null);j.useEffect(()=>{let W=!1;return fetch("/api/health").then(Y=>Y.ok?Y.json():null).then(Y=>{W||!Y||typeof Y.workspace!="string"||Ke(Y.workspace)}).catch(()=>{}),()=>{W=!0}},[M]);const we=ye?`${ye.kind}:${ye.to}`:"",_e=ye!=null&&J!==we,Be=j.useCallback(()=>{if(!ye)return;const W=J===we?"":we;re(W);try{window.localStorage.setItem(SE,W)}catch{}},[ye,we,J]),[ft,ht]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(kE)??""}catch{return""}}),He=K!=null&&K.invokedAs&&K.invokedAs!==zt?K.invokedAs:null,De=He!=null&&ft!==He,Je=j.useCallback(()=>{if(He){ht(He);try{window.localStorage.setItem(kE,He)}catch{}}},[He]),Xe=((Fs=K==null?void 0:K.upgrade)==null?void 0:Fs.state)??"idle",vt=kL(K==null?void 0:K.upgrade),ot=j.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);j.useEffect(()=>{if(Xe!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Xe,ve]);const yt=j.useCallback(async()=>{var oe;const W=K==null?void 0:K.command;if(!W)return;let Y=!1;try{Y=await Promise.race([((oe=navigator.clipboard)==null?void 0:oe.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{Y=!1}if(!Y)try{const de=document.createElement("textarea");de.value=W,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),Y=document.execCommand("copy"),de.remove()}catch{Y=!1}Y&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[K==null?void 0:K.command]),Kt=j.useCallback(()=>{I(W=>(W||q(!1),!W))},[]),Mt=j.useCallback(()=>{q(W=>(W||I(!1),!W))},[]),[Ze,wt]=j.useState(!1),[pt,mt]=j.useState(0),_n=j.useRef(null),[Xt,Pt]=j.useState(!1),Qt=j.useRef(null),[yr,bn]=j.useState(0),Zt=j.useRef(BL()),[pn,Sn]=j.useState(!1),Yr=j.useCallback(()=>{const W=Zt.current,Y=W.setPaused(!W.paused);for(const oe of Y)n.current=Rx(n.current,oe);Sn(W.paused)},[]),[ut,hi]=j.useState(Date.now()),[nr,Es]=j.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(NE)!=="0"}catch{return!0}}),pi=j.useCallback(()=>{Es(W=>{const Y=!W;try{window.localStorage.setItem(NE,Y?"1":"0")}catch{}return Y})},[]),[Jt,rr]=j.useState(!1),[wr,So]=j.useState("restart"),[sr,xr]=j.useState(null),mn=j.useRef(!1),Kr=j.useRef(null),mi=j.useRef(0),Xr=j.useCallback(async W=>{if(mn.current)return;const Y=(W==null?void 0:W.upgrade)===!0;mn.current=!0,Kr.current=vt;const oe=++mi.current;So(Y?"npx":"restart"),rr(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ye==null?void 0:ye.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:Y})})}catch{}window.setTimeout(()=>{if(mi.current===oe&&mn.current){mn.current=!1,rr(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},Y?18e4:3e4)},[ye==null?void 0:ye.to,vt]),Ns=j.useRef(null);j.useEffect(()=>{let W=!1;for(const oe of n.current.agents.values())if(oe.state==="active"){W=!0;break}const Y=NL({enabled:nr,kind:ye==null?void 0:ye.kind,canRestart:(K==null?void 0:K.canRestart)===!0,busy:W,idleSince:Ns.current,now:ut});Ns.current=Y.idleSince,Y.restart&&Xr()},[nr,ye==null?void 0:ye.kind,K==null?void 0:K.canRestart,ut,Xr]),j.useEffect(()=>{const W=K==null?void 0:K.running;let Y=null,oe=null;try{Y=window.sessionStorage.getItem("agent-dag.restartPending"),oe=window.sessionStorage.getItem(CE)}catch{return}const de=SL({bundle:"1.33.151",running:W,pending:Y,lastTried:oe});if(de==="reload"){try{window.sessionStorage.setItem(CE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1),xr(W??null);const xe=window.setTimeout(()=>xr(null),6e3);return()=>window.clearTimeout(xe)},[K==null?void 0:K.running]),j.useEffect(()=>{if(Jt&&EL({asked:Kr.current,reported:vt})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}mn.current=!1,rr(!1)}},[Jt,vt]);const gn=j.useRef(s5()).current;j.useRef(!1);const Rt=j.useRef(new Map(gn.positions.filter(([W])=>gn.pins.includes(W)))),_r=j.useRef(null),Qr=j.useState(()=>i5())[0],[en,Zr]=j.useState(""),[Cs,gi]=j.useState(()=>new Set),[ir,vi]=j.useState(GL),[et,ko]=j.useState(!1),br=j.useRef(null);j.useEffect(()=>{document.documentElement.dataset.theme=ir;try{window.localStorage.setItem(xC,ir)}catch{}},[ir]),j.useEffect(()=>{if(!Qr)return;const W=window.setTimeout(()=>{try{e.setViewport(Qr,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,Qr]);const Rs=j.useRef(!0);j.useEffect(()=>{const W=new EventSource("/events"),Y=zL(i,{now:()=>Date.now(),setTimeout:(oe,de)=>window.setTimeout(oe,de),clearTimeout:oe=>window.clearTimeout(oe)});return W.addEventListener("open",()=>{V(!0),ko(!0)}),W.addEventListener("error",()=>V(!1)),W.addEventListener("replay-end",()=>{Rs.current=!1,Y.flush()}),W.addEventListener("hook",oe=>{try{const de=JSON.parse(oe.data);if(!Zt.current.accept(de))return;n.current=Rx(n.current,de),de.replay===!0||Rs.current||Date.now()-de.receivedAt>3e4?Y.replay():Y.live()}catch{}}),()=>{W.close(),Y.cancel()}},[i]),j.useEffect(()=>{const W=setInterval(()=>{const Y=Date.now();hi(Y);let oe=iO(n.current,Y,W4);aO(n.current,Y,oO)&&(oe=!0),rO(n.current,Y,V4,G4)&&(oe=!0),sO(n.current,Y,Y4,K4)&&(oe=!0),oe&&i()},250);return()=>clearInterval(W)},[i]);const or=j.useRef(null),$n=j.useRef(0),yi=420,Ot=j.useCallback((W=500)=>{try{const Ee=document.querySelector(".canvas-wrap"),Oe=Array.from(document.querySelectorAll(".react-flow__node")).filter(xt=>xt.offsetWidth>0);if(!Ee||Oe.length===0)return;const $e=Ee.getBoundingClientRect(),Ye=e.getViewport();if(!Number.isFinite(Ye.zoom)||Ye.zoom<=0)return;const Ge=xt=>(xt-$e.left-Ye.x)/Ye.zoom,Fe=xt=>(xt-$e.top-Ye.y)/Ye.zoom,Nn=Oe.map(xt=>xt.getBoundingClientRect()),Ir=Math.min(...Nn.map(xt=>Ge(xt.left))),Oo=Math.max(...Nn.map(xt=>Ge(xt.right))),zs=Math.min(...Nn.map(xt=>Fe(xt.top))),Lo=Math.max(...Nn.map(xt=>Fe(xt.bottom))),qo=Oo-Ir,Ti=Lo-zs;if(!(qo>0&&Ti>0))return;const Bn=Math.max(.2,Math.min(1,($e.width-160)/(qo+yi)*.86,($e.height-160)/Ti*.86));e.setViewport({x:80-Ir*Bn,y:Math.max(80,($e.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},{duration:W}),$n.current=Date.now(),window.setTimeout(()=>{try{const xt={x:80-Ir*Bn,y:Math.max(80,($e.height-Ti*Bn)/2)-zs*Bn,zoom:Bn},Wa=e.getViewport();(Math.abs(Wa.zoom-Bn)>.01||Math.abs(Wa.x-xt.x)>2)&&e.setViewport(xt,{duration:0})}catch{}},W+60)}catch{}},[e]),Ut=j.useRef(""),Sr=j.useRef(null),rn=j.useRef(0),wi=j.useCallback(()=>{rn.current=Date.now()},[]),Eo="agent-dag.autoFitDisabled",kr=j.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Eo)==="1"}catch{return!1}})()),[js,Ts]=j.useState(kr.current),Jr=j.useCallback(()=>{if(!kr.current){kr.current=!0,Ts(!0);try{window.localStorage.setItem(Eo,"1")}catch{}}},[]),xi=j.useCallback(()=>{kr.current=!1,Ts(!1);try{window.localStorage.removeItem(Eo)}catch{}Ot(400)},[e,Ot]);j.useEffect(()=>{const W=setInterval(()=>{if(kr.current||Date.now()-rn.current<800)return;const Y=n.current,oe=Date.now(),de=[];for(const Ge of Y.agents.values())kv(Ge,oe)&&de.push({id:Ge.id});if(de.length===0)return;const xe=e.getViewport(),Ee=window.innerWidth-360,Oe=window.innerHeight-52;let $e=!1,Ye=!1;for(const{id:Ge}of de){const Fe=es.current.get(Ge),Nn=Rt.current.get(Ge)??Ht.current.get(Ge);if(!Fe||!Nn)continue;Ye=!0;const Ir=Nn.x*xe.zoom+xe.x,Oo=Nn.y*xe.zoom+xe.y,zs=(Nn.x+Fe.width)*xe.zoom+xe.x,Lo=(Nn.y+Fe.height)*xe.zoom+xe.y;if(zs>0&&Ir<Ee&&Lo>0&&Oo<Oe){$e=!0;break}}Ye&&!$e&&Ot(600)},1500);return()=>clearInterval(W)},[e]);const No=j.useRef(!1),es=j.useRef(new Map),_i=j.useRef(0),Ba=j.useCallback(W=>{const Y=es.current;let oe=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ee=de.height;if(xe==null||Ee==null)continue;const Oe=Y.get(de.id);Oe?(Math.abs(Oe.height-Ee)>4||Math.abs(Oe.width-xe)>4)&&(Y.set(de.id,{width:xe,height:Ee}),oe=!0):(Y.set(de.id,{width:xe,height:Ee}),oe=!0)}return oe&&(_i.current+=1),_i.current},[]),bi=Qe(Ba),[ts,Yu]=j.useState(0);j.useEffect(()=>{let W=0;const Y=()=>{const de=es.current;let xe=!1;for(const Ee of document.querySelectorAll(".react-flow__node[data-id]")){const Oe=Ee.getAttribute("data-id");if(!Oe)continue;const $e=Ee.offsetWidth,Ye=Ee.offsetHeight;if(!$e||!Ye)continue;const Ge=de.get(Oe);(!Ge||Math.abs(Ge.width-$e)>4||Math.abs(Ge.height-Ye)>4)&&(de.set(Oe,{width:$e,height:Ye}),xe=!0)}xe&&Yu(Ee=>Ee+1)};if(No.current)return;let oe=0;return document.visibilityState==="hidden"?oe=window.setTimeout(Y,32):W=requestAnimationFrame(Y),()=>{cancelAnimationFrame(W),window.clearTimeout(oe)}});const Ht=j.useRef(new Map(gn.positions)),Ve=j.useRef(new Set),Si=j.useRef(""),Er=j.useMemo(()=>{const W=[];for(const Y of n.current.agents.values())kv(Y,ut)&&W.push(Y.id+(Y.parentId?`>${Y.parentId}`:""));return W.sort(),`${W.join("|")}#sv${bi}.${ts}`},[n.current,n.current.lastSeq,ut,bi,ts]),Nr=j.useRef(null);j.useEffect(()=>(Nr.current!=null&&window.clearTimeout(Nr.current),Nr.current=window.setTimeout(()=>{nv(Ht.current,Rt.current)},1500),()=>{Nr.current!=null&&window.clearTimeout(Nr.current)}),[Er]),j.useEffect(()=>{if(Ut.current===Er)return;const W=Ut.current;if(Ut.current=Er,!W||kr.current)return;Date.now()-$n.current>1200&&Ot(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{kr.current||Ot(500)},280)},[Er,e,Ot]);const ki=j.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const Y of o){const oe=u5(n.current,Y);if(oe)for(const de of oe)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),ar=j.useMemo(()=>j4(n.current,ut),[n.current,n.current.lastSeq,ut]),Co=j.useRef(null),[ns,As]=j.useState({w:0,h:0});j.useEffect(()=>{const W=Co.current;if(!W||typeof ResizeObserver>"u")return;const Y=new ResizeObserver(oe=>{var xe;const de=(xe=oe[0])==null?void 0:xe.contentRect;de&&As(Ee=>Math.abs(Ee.w-de.width)>40||Math.abs(Ee.h-de.height)>40?{w:de.width,h:de.height}:Ee)});return Y.observe(W),As({w:W.clientWidth,h:W.clientHeight}),()=>Y.disconnect()},[]);const lr=j.useRef(new Map),[Dn,ur]=j.useState(!1);j.useEffect(()=>{const W=window.setTimeout(()=>ur(!0),2500);return()=>window.clearTimeout(W)},[]);const[Is,Cr]=j.useState(!1),Lt=j.useRef(null),[Ro,jo]=j.useState(!1),Ms=j.useCallback(()=>{Lt.current&&(window.clearTimeout(Lt.current),Lt.current=null),Cr(!1)},[]),Ku=j.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Cr(!0),Lt.current&&window.clearTimeout(Lt.current),Lt.current=window.setTimeout(()=>Cr(!1),H4+80)})},[]);j.useEffect(()=>()=>{Lt.current&&window.clearTimeout(Lt.current)},[]);const To=ns.w>0?ns.w*.92:0,Ps=ns.h>0?ns.h:0,{nodes:Fn,edges:Xu}=j.useMemo(()=>c5(n.current,ut,To,Ps,Rt.current,en,es.current,lr.current,Ku,Dn,Ro,Ht.current,Ve.current,Er,Si,o,ki,ar,b),[n.current,n.current.lastSeq,ut,To,Ps,Dn,Ro,en,Er,o,ki,ar,b,pt]),rs=j.useMemo(()=>{const W=new Map;for(const oe of Fn){const de=oe.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=oe.width,Ee=oe.height;if(xe==null||Ee==null)continue;const Oe=oe.position.x,$e=oe.position.y,Ye=Oe+xe,Ge=$e+Ee,Fe=W.get(de.sessionId);Fe?(Fe.minX=Math.min(Fe.minX,Oe),Fe.minY=Math.min(Fe.minY,$e),Fe.maxX=Math.max(Fe.maxX,Ye),Fe.maxY=Math.max(Fe.maxY,Ge)):W.set(de.sessionId,{minX:Oe,minY:$e,maxX:Ye,maxY:Ge})}const Y=[];for(const[oe,de]of W){const xe=de.maxX-de.minX+nu*2,Ee=de.maxY-de.minY+nu*2;Y.push({id:`group:${oe}`,type:_R,position:{x:de.minX-nu,y:de.minY-nu},data:{sessionId:oe,w:xe,h:Ee},width:xe,height:Ee,style:{width:xe,height:Ee},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return Y},[Fn,ut]),Os=j.useMemo(()=>{const W=[...rs,...Fn],Y=Qt.current;return!Y||Y.size===0?W:W.map(oe=>{const de=Y.get(oe.id);return de?{...oe,position:de}:oe})},[rs,Fn,yr]),kn=j.useMemo(()=>{if(!en)return null;const W=new Set;for(const Y of n.current.agents.values())ar.has(Y.id)&&TR(Y,en)&&W.add(Y.id);return W},[n.current,n.current.lastSeq,en,ar]),En=j.useMemo(()=>D4(en,(kn==null?void 0:kn.size)??0,ar.size),[en,kn,ar]),Ei=j.useMemo(()=>{const W=new Set;for(const Y of n.current.agents.values())for(const oe of Y.tools)W.add(jR(oe.name));return Object.keys(Nv).filter(Y=>W.has(Y))},[n.current,n.current.lastSeq]);j.useEffect(()=>{if(Ei.length<=1){Pt(!1);return}let W=0;const Y=()=>{const oe=_n.current;if(oe&&!document.hidden){const de=oe.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Oe=>Oe.getBoundingClientRect()),Ee=A4(de,xe,8);Pt(Oe=>Oe===Ee?Oe:Ee)}W=window.setTimeout(Y,300)};return Y(),()=>window.clearTimeout(W)},[Ei.length]);const Ls=j.useMemo(()=>{const W=new Map;for(const oe of n.current.agents.values())for(const de of oe.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ee=xe.indexOf("__"),Oe=Ee>0?xe.slice(0,Ee):xe;W.set(Oe,(W.get(Oe)??0)+1)}const Y=[];for(const[oe,de]of W){let xe=5381;for(let Ee=0;Ee<oe.length;Ee++)xe=(xe<<5)+xe^oe.charCodeAt(Ee);Y.push({server:oe,count:de,hue:Math.abs(xe)%360})}return Y.sort((oe,de)=>de.count-oe.count),Y},[n.current,n.current.lastSeq]),Ao=j.useCallback(W=>{gi(Y=>{const oe=new Set(Y);return oe.has(W)?oe.delete(W):oe.add(W),oe})},[]),St=u?n.current.agents.get(u):null,qs=h?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===h)??null:null,Io=j.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=wv(),Rt.current.clear(),es.current.clear(),Ht.current.clear(),Si.current="",jE(),m(),i()},[i,m]),zn=j.useRef(S);zn.current=S;const Ni=j.useRef(!1);Ni.current=qs!=null||Ze||N!=null||y!=null;const Rr=j.useCallback(W=>{const Y=RL(W,{confirmOpen:zn.current,modalOpen:Ni.current});Y==="confirm"?k(!0):Y==="clear"&&(k(!1),Io())},[Io]),Ci=j.useCallback(()=>{Rt.current.clear(),Ht.current.clear(),Si.current="",jE(),i(),window.setTimeout(()=>Ot(500),80)},[i,e,Ot]),$s=j.useCallback(()=>Ot(500),[Ot]),jr=j.useRef(Fn);jr.current=Fn;const Mo=j.useRef(u);Mo.current=u;const qt=j.useCallback(W=>{const Y=jr.current,oe=TL(Y.map(Ee=>({id:Ee.id,x:Ee.position.x,y:Ee.position.y})),Mo.current,W),de=oe?Y.find(Ee=>Ee.id===oe):void 0;if(!de)return;const xe=_E(document.activeElement);d(de.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[de]})}catch{}$n.current=Date.now(),xe&&U4(de.id)},30)},[d,e]),Tr=j.useCallback(W=>{d(W,!1),window.setTimeout(()=>{try{const Y=jr.current.find(oe=>oe.id===W);Y&&e.fitView({padding:.3,duration:500,nodes:[Y]}),$n.current=Date.now()}catch{}},60)},[d,e]);j.useEffect(()=>{const W=Y=>{var $e,Ye,Ge;const oe=Y.target,de={tagName:oe==null?void 0:oe.tagName,isContentEditable:oe==null?void 0:oe.isContentEditable,role:($e=oe==null?void 0:oe.getAttribute)==null?void 0:$e.call(oe,"role"),type:oe==null?void 0:oe.type};if(Y.key==="Escape"){const Fe=SO({overlayOpen:wu.depth()>0,typing:Yv(de)});Fe==="dismiss"?wu.dismissTop():Fe==="blur"?oe==null||oe.blur():(PL(de)&&(oe==null||oe.blur()),m());return}if(lC(Y))return;const xe=_E(oe)?(Ye=oe==null?void 0:oe.getAttribute)==null?void 0:Ye.call(oe,"data-id"):null,Ee=xe&&jr.current.some(Fe=>Fe.id===xe)?xe:null,Oe=IL(Y,Ee);if(Oe.kind==="activate"){Y.preventDefault(),d(Oe.nodeId,Oe.additive);return}if(Oe.kind!=="node"&&!(Oe.nodeId==null&&AO(de))){if(Y.key==="/"){Y.preventDefault(),(Ge=br.current)==null||Ge.focus();return}Y.key===" "&&(Y.preventDefault(),Yr()),(Y.key==="c"||Y.key==="C")&&Rr("shortcut"),(Y.key==="r"||Y.key==="R")&&Ci(),(Y.key==="f"||Y.key==="F")&&$s(),(Y.key==="l"||Y.key==="L")&&Kt(),(Y.key==="h"||Y.key==="H")&&wt(Fe=>!Fe),(Y.key==="u"||Y.key==="U")&&L(Fe=>!Fe),(Y.key==="a"||Y.key==="A")&&Mt(),(Y.key==="j"||Y.key==="J")&&qt(1),(Y.key==="k"||Y.key==="K")&&qt(-1),(Y.key==="t"||Y.key==="T")&&vi(Fe=>Fe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Rr,Ci,$s,m,d,qt,Yr]);const Ar=n.current.agents.size,Ds=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,cr=j.useMemo(()=>{var Y;const W=[];for(const oe of n.current.agents.values())oe.kind==="root"&&((Y=oe.waiting)==null?void 0:Y.kind)==="permission"&&W.push({id:oe.id,label:oe.label,waiting:oe.waiting});return W.sort((oe,de)=>oe.waiting.since-de.waiting.since)},[n.current,n.current.lastSeq]),Ri=j.useMemo(()=>{const W=new Set;for(const Y of n.current.agents.values())Y.state==="active"&&W.add(Y.sessionId);return W.size},[n.current,n.current.lastSeq]),ji=j.useRef(null);j.useEffect(()=>{const W=YL({waiting:cr.length,running:Ri}),Y=ji.current;if(ji.current=W,(Y==null?void 0:Y.title)!==W.title&&(document.title=W.title),(Y==null?void 0:Y.icon)!==W.icon){const oe=document.querySelector('link[rel="icon"]');oe&&(oe.href=KL[W.icon])}},[cr.length,Ri]);const jt=j.useMemo(()=>{let W=0,Y=0,oe=0,de=0,xe=0,Ee=0,Oe=0,$e=0,Ye=0;for(const Ge of n.current.agents.values()){W+=Ge.usage.inputTokens,Y+=Ge.usage.outputTokens,oe+=Ge.usage.cacheReadTokens,de+=Ge.usage.cacheCreateTokens;const Fe=fn(Ge.usage,Ge.model);xe+=Fe.total,Ee+=Fe.input,Oe+=Fe.output,$e+=Fe.cacheRead,Ye+=Fe.cacheWrite}return{inT:W,outT:Y,cacheR:oe,cacheC:de,sum:W+Y,cost:{total:xe,input:Ee,output:Oe,cacheRead:$e,cacheWrite:Ye}}},[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"}),zt,ye?g.jsxs("button",{type:"button",className:"v stale",onClick:Be,title:ye.kind==="restart"?`Running v${ye.from}; v${ye.to} is installed on disk. Restart to pick it up.`:`Running v${ye.from}; v${ye.to} is on npm.`,children:["v",ye.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const W={running:(K==null?void 0:K.running)??"1.33.151",latest:K==null?void 0:K.latest,latestPending:K==null?void 0:K.latestPending,checkedAgo:K!=null&&K.checkedAt?Ev(ut-K.checkedAt):null,checkDisabled:K==null?void 0:K.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":O4(W),title:P4(W),children:["v",W.running]})})()]}),St&&(()=>{const W=fn(St.usage,St.model),Y=Math.max(0,((St.endedAt??ut)-St.startedAt)/1e3),oe=St.state==="active"?yu(W.total,Y):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${St.label}`,onClick:()=>{try{const xe=Fn.find(Ee=>Ee.id===St.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),$n.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${St.state}`,children:St.state==="active"?"live":St.state}),g.jsx("span",{className:"selected-label",children:St.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[ze(W.total),oe?g.jsxs("span",{className:"selected-rate",children:[" · ",oe]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{"aria-hidden":!0,className:"selected-close",onClick:xe=>{xe.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:br,type:"text",placeholder:"Search agents, cwd, tools…",value:en,onChange:W=>Zr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),en?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Zr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),En.count&&g.jsx("span",{className:`search-count${En.empty?" none":""}`,"aria-live":"polite",title:`${En.count} agents on the canvas match “${en}”`,children:En.count})]}),g.jsxs("span",{className:"status",role:"status",children:[(()=>{const W=q4({connected:M,paused:pn,held:Zt.current.size});return g.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ds}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:Ar}),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"})]}),jt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${jt.inT.toLocaleString()} out:${jt.outT.toLocaleString()} cache-r:${jt.cacheR.toLocaleString()} cache-c:${jt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:Ft(jt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Ls.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
62
62
|
${Ls.map(W=>` ${W.server}: ${W.count} call${W.count===1?"":"s"}`).join(`
|
|
63
63
|
`)}`,children:[Ls.slice(0,6).map(W=>g.jsx("span",{className:"mcp-dot",style:{"--mcp-hue":W.hue}},W.server)),Ls.length>6&&g.jsxs("span",{className:"mcp-more",children:["+",Ls.length-6]}),g.jsx("span",{className:"lbl",children:"mcp"})]}),jt.cost.total>0&&(()=>{let W=0,Y=0;for(const xe of n.current.agents.values()){if(xe.state!=="active")continue;const Ee=fn(xe.usage,xe.model);W+=Ee.total,Y=Math.max(Y,((xe.endedAt??ut)-xe.startedAt)/1e3)}const oe=Y>0?yu(W,Y):null,de=`input ${ze(jt.cost.input)} + output ${ze(jt.cost.output)} + cache r ${ze(jt.cost.cacheRead)} + cache w ${ze(jt.cost.cacheWrite)}${oe?`
|
|
64
64
|
active burn: ${oe}`:""}`;return g.jsxs("span",{className:"stat",title:de,children:[g.jsx("span",{className:"count",children:ze(jt.cost.total)}),g.jsxs("span",{className:"lbl",children:["cost",oe?` · ${oe}`:""]})]})})()]}),cr.length>0&&g.jsxs("button",{type:"button",className:"waiting-stat",onClick:()=>Tr(cr[0].id),title:`Blocked waiting for you — click to go to the one that has been stuck longest:
|