likec4 1.15.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1824 @@
1
+ import*as W0 from"node:fs";import{writeFileSync as H0,statSync as m2,readFileSync as mm,appendFileSync as g2,createReadStream as V0,createWriteStream as K0,existsSync as y2}from"node:fs";import Jr,{sep as v2,resolve as w2,basename as b2}from"node:path";import{fileURLToPath as gm,pathToFileURL as E2}from"node:url";import{isatty as D2}from"tty";import{Graphviz as ym}from"@hpcc-js/wasm-graphviz";import*as T2 from"node:util";import{formatWithOptions as R2,debuglog as S2,stripVTControlCharacters as k2,inspect as Y0,promisify as $2,callbackify as Do,aborted as C2}from"node:util";import Oe,{platform as _2,hrtime as md,execPath as A2,execArgv as x2}from"node:process";import*as vm from"node:tty";import X0 from"node:tty";import{ChildProcess as J0,spawnSync as I2,spawn as P2}from"node:child_process";import{StringDecoder as Z0}from"node:string_decoder";import*as N2 from"child_process";import*as O2 from"path";import*as F2 from"fs";import{setTimeout as Q0,scheduler as eE,setImmediate as L2}from"node:timers/promises";import{constants as bs}from"node:os";import{once as vn,addAbortListener as tE,EventEmitter as M2,on as gd,setMaxListeners as z2}from"node:events";import{serialize as B2}from"node:v8";import{Transform as q2,getDefaultHighWaterMark as yd,PassThrough as nE,Readable as Es,Writable as wm,Duplex as bm}from"node:stream";import{Buffer as Em}from"node:buffer";import{finished as Pi}from"node:stream/promises";import{createLogger as j2}from"vite";import{Buffer as Dm}from"buffer";import*as U2 from"util";import*as G2 from"os";import*as W2 from"crypto";import*as H2 from"net";import*as V2 from"url";function K2(t,e,n){let r=i=>t(i,...e);return n===void 0?r:Object.assign(r,{lazy:n,lazyArgs:e})}function sr(t,e,n){let r=t.length-e.length;if(r===0)return t(...e);if(r===1)return K2(t,e,n);throw new Error("Wrong number of arguments")}function Y2(t){return e=>!t(e)}function Ni(t){return t==null}function rE(t){return Array.isArray(t)}function X2(...t){return sr(J2,t)}var J2=(t,e)=>e.every(n=>n(t));function Z2(...t){return sr(Q2,t)}var Q2=(t,e)=>e.some(n=>n(t));function Qe(t,e){if(typeof t>"u"||t==null)throw new Error(e??`Expected defined value, but received ${t}`);return t}function we(t,e){if(!t)throw new Error(e??"Invariant failed")}function Ie(t){throw new Error(`NonExhaustive value: ${t}`)}function eO(t,e){return e?e+"."+t:t}const tO=["solid","dashed","dotted","none"];var To;(t=>{t.Group="@group"})(To||(To={}));const nO=["rectangle","person","browser","mobile","cylinder","storage","queue"],Oa="primary",Tm="rectangle";function iE(t){return"element"in t}function sE(t){return"expanded"in t}function oE(t){return"custom"in t&&(vd(t.custom.expr)||Rm(t.custom.expr))}function aE(t){return"wildcard"in t}function cE(t){return"elementKind"in t&&"isEqual"in t}function uE(t){return"elementTag"in t&&"isEqual"in t}function vd(t){return iE(t)||aE(t)||cE(t)||uE(t)||sE(t)}function Rm(t){return"where"in t&&vd(t.where.expr)}function lE(t){return vd(t)||Rm(t)||oE(t)}function dE(t){return"source"in t&&"target"in t}function fE(t){return"inout"in t}function hE(t){return"incoming"in t}function pE(t){return"outgoing"in t}function Sm(t){return dE(t)||fE(t)||hE(t)||pE(t)}function mE(t){return"where"in t&&Sm(t.where.expr)}function gE(t){return"customRelation"in t}function rO(t){return Sm(t)||mE(t)||gE(t)}const ye={__proto__:null,isCustomElement:oE,isCustomRelationExpr:gE,isElement:vd,isElementKindExpr:cE,isElementPredicateExpr:lE,isElementRef:iE,isElementTagExpr:uE,isElementWhere:Rm,isExpandedElementExpr:sE,isInOut:fE,isIncoming:hE,isOutgoing:pE,isRelation:dE,isRelationExpression:Sm,isRelationPredicateExpr:rO,isRelationWhere:mE,isWildcard:aE},iO=t=>"tag"in t,sO=t=>"kind"in t,oO=t=>"not"in t,km=t=>"and"in t,$m=t=>"or"in t;function Ds(t){switch(!0){case iO(t):{if("eq"in t.tag){const n=t.tag.eq;return r=>Array.isArray(r.tags)&&r.tags.includes(n)}const e=t.tag.neq;return n=>!Array.isArray(n.tags)||!n.tags.includes(e)}case sO(t):{if("eq"in t.kind){const n=t.kind.eq;return r=>r.kind===n}const e=t.kind.neq;return n=>Ni(n.kind)||n.kind!==e}case oO(t):{const e=Ds(t.not);return Y2(e)}case km(t):{const e=t.and.map(Ds);return X2(e)}case $m(t):{const e=t.or.map(Ds);return Z2(e)}default:Ie(t)}}const yE="dashed",Ro="normal",Ts="gray",aO=["amber","blue","gray","slate","green","indigo","muted","primary","red","secondary","sky"];function vE(t){return t in aO}function wE(t){return"include"in t&&Array.isArray(t.include)||"exclude"in t&&Array.isArray(t.exclude)}function bE(t){return"predicateId"in t}function cO(t){return"style"in t&&"targets"in t}function EE(t){return"styleId"in t}function uO(t){return t==="TB"||t==="BT"||t==="LR"||t==="RL"}function DE(t){return"direction"in t}function Cm(t){return"title"in t&&"groupRules"in t&&Array.isArray(t.groupRules)}function lO(t){return"include"in t&&Array.isArray(t.include)}function dO(t){return"__parallel"in t&&rE(t.__parallel)}function wd(t){return Ni(t.__)||t.__==="element"}function TE(t){return wd(t)&&"extends"in t}function _m(t){return wd(t)&&"viewOf"in t}function RE(t,e){const n=`step-${String(t).padStart(2,"0")}`;return e?`${n}.${e}`:n}function SE(t){return t.startsWith("step-")}function kE(t){if(!SE(t))throw new Error(`Invalid step edge id: ${t}`);return parseFloat(t.slice(5))}var bd;(t=>{function e(n){return n.kind===To.Group}t.isNodesGroup=e})(bd||(bd={}));function Am(t){return t.__==="dynamic"}function fO(t){return Ni(t.__)||t.__==="element"}var $E;(t=>{function e(n){return n.kind===To.Group}t.isNodesGroup=e})($E||($E={}));function xm(t){if(t===null||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null||Symbol.iterator in t?!1:Symbol.toStringTag in t?Object.prototype.toString.call(t)==="[object Module]":!0}function Im(t,e,n=".",r){if(!xm(e))return Im(t,{},n,r);const i=Object.assign({},e);for(const s in t){if(s==="__proto__"||s==="constructor")continue;const o=t[s];o!=null&&(r&&r(i,s,o,n)||(Array.isArray(o)&&Array.isArray(i[s])?i[s]=[...o,...i[s]]:xm(o)&&xm(i[s])?i[s]=Im(o,i[s],(n?`${n}.`:"")+s.toString(),r):i[s]=o))}return i}function hO(t){return(...e)=>e.reduce((n,r)=>Im(n,r,"",t),{})}const Fa=hO();function pO(...t){return sr(mO,t,gO)}var mO=(t,e)=>t.length<e.length?t.map((n,r)=>[n,e[r]]):e.map((n,r)=>[t[r],n]),gO=t=>(e,n)=>({hasNext:!0,next:[e,t[n]],done:n>=t.length-1}),yO={done:!1,hasNext:!1};function vO(t,...e){let n=t,r=e.map(s=>"lazy"in s?wO(s):void 0),i=0;for(;i<e.length;){if(r[i]===void 0||!bO(n)){let c=e[i];n=c(n),i+=1;continue}let s=[];for(let c=i;c<e.length;c++){let u=r[c];if(u===void 0||(s.push(u),u.isSingle))break}let o=[];for(let c of n)if(CE(c,o,s))break;let{isSingle:a}=s.at(-1);n=a?o[0]:o,i+=s.length}return n}function CE(t,e,n){if(n.length===0)return e.push(t),!1;let r=t,i=yO,s=!1;for(let[o,a]of n.entries()){let{index:c,items:u}=a;if(u.push(r),i=a(r,c,u),a.index+=1,i.hasNext){if(i.hasMany??!1){for(let l of i.next)if(CE(l,e,n.slice(o+1)))return!0;return s}r=i.next}if(!i.hasNext)break;i.done&&(s=!0)}return i.hasNext&&e.push(r),s}function wO(t){let{lazy:e,lazyArgs:n}=t,r=e(...n);return Object.assign(r,{isSingle:e.single??!1,index:0,items:[]})}function bO(t){return typeof t=="string"||typeof t=="object"&&t!==null&&Symbol.iterator in t}function La(...t){return sr(Object.values,t)}function Ed(...t){return sr(EO,t)}var EO=(t,e)=>t.length>=e;function DO(...t){return sr(TO,t)}function TO(t,e){let n=[];for(let[r,i]of t.entries()){if(!e(i,r,t))break;n.push(i)}return n}function RO(t,e){let n=Math.ceil(t),r=Math.floor(e);if(r<n)throw new RangeError(`randomInteger: The range [${t.toString()},${e.toString()}] contains no integer`);return Math.floor(Math.random()*(r-n+1)+n)}function SO(...t){return sr(kO,t)}function kO(t,e){let n={};for(let[r,i]of Object.entries(t))e(i,r,t)&&(n[r]=i);return n}function Dd(...t){return sr($O,t,CO)}var $O=(t,e)=>t.map(e),CO=t=>(e,n,r)=>({done:!1,hasNext:!0,next:t(e,n,r)});function _O(...t){return sr(AO,t)}function AO(t,e){let n={};for(let[r,i]of t.entries()){let[s,o]=e(i,r,t);n[s]=o}return n}function xO(...t){return sr(IO,t)}function IO(t,e){let n={};for(let[r,i]of Object.entries(t)){let s=e(i,r,t);n[r]=s}return n}function Rs(t){return typeof t=="string"}function _E(t){return!!t}function AE(t){return typeof t=="function"}function PO(t){return t!=null}function xE(...t){return sr(Object.fromEntries,t)}function NO(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Pm={exports:{}},IE;function OO(){if(IE)return Pm.exports;IE=1;var t=function(e,n){var r,i,s=1,o=0,a=0,c=String.alphabet;function u(l,d,f){if(f){for(r=d;f=u(l,r),f<76&&f>65;)++r;return+l.slice(d-1,r)}return f=c&&c.indexOf(l.charAt(d)),f>-1?f+76:(f=l.charCodeAt(d)||0,f<45||f>127?f:f<46?65:f<48?f-1:f<58?f+18:f<65?f-11:f<91?f+11:f<97?f-37:f<123?f+5:f-63)}if((e+="")!=(n+="")){for(;s;)if(i=u(e,o++),s=u(n,a++),i<76&&s<76&&i>66&&s>66&&(i=u(e,o,o),s=u(n,a,o=r),a=r),i!=s)return i<s?-1:1}return 0};try{Pm.exports=t}catch{String.naturalCompare=t}return Pm.exports}var FO=OO();const LO=NO(FO);function Td(t,e){return t===e?0:Rs(t)?Rs(e)?LO(t,e):1:Rs(e)?-1:0}function Rd(t){return t!=null&&typeof t=="string"}function Ss(t){return!!t&&Array.isArray(t)&&t.length>0}function So(t){const e=t.lastIndexOf(".");return e>0?t.slice(e+1):t}function $r(...t){const e=Rd(t[0])?t[0]:t[0].id;return(Rd(t[1])?t[1]:t[1].id).startsWith(e+".")}function Ma(t,e){const n=Rd(t)?t:t.id,r=Rd(e)?e:e.id;return n===r||r.startsWith(n+".")||n.startsWith(r+".")}function MO(t){const e=t.flatMap(n=>[r=>r.id===n.id,r=>$r(n,r)]);return n=>e.some(r=>r(n))}function ks(t,e){const n=kt(t),r=kt(e);if(n===r)return n;if(!n||!r)return null;const i=t.split("."),s=e.split(".");let o=null;for(;i.length>1&&s.length>1&&i[0]&&i[0]===s[0];)o=o?`${o}.${i[0]}`:i[0],i.shift(),s.shift();return o}function kt(t){const e=t.lastIndexOf(".");return e>0?t.slice(0,e):null}function PE(t){const e=t+".";return n=>!!n.parent&&(n.parent===t||n.parent.startsWith(e))}function Zr(t){const e=t.split(".");return e.pop(),e.length===0?[]:e.reduce((n,r,i)=>i===0?(n.push(r),n):(n.unshift(`${n[0]}.${r}`),n),[])}function ko(t,e){const n=t.split(".").length,r=e.split(".").length;switch(!0){case n>r:return 1;case n<r:return-1;default:return 0}}function za(t,e){return ko(t.id,e.id)}function zO(t){return t.map(e=>({item:e,fqn:e.id.split(".")})).sort((e,n)=>e.fqn.length-n.fqn.length).map(({item:e})=>e)}function Ba(t){if(Rs(t)){const e=t;switch(!0){case e.startsWith("tag is not #"):return{tag:{neq:e.replace("tag is not #","")}};case e.startsWith("tag is #"):return{tag:{eq:e.replace("tag is #","")}};case e.startsWith("kind is not "):return{kind:{neq:e.replace("kind is not ","")}};case e.startsWith("kind is "):return{kind:{eq:e.replace("kind is ","")}};default:throw new Error(`Unknown where operator: ${t}`)}}if(t.and)return{and:Dd(t.and,Ba)};if(t.or)return{or:Dd(t.or,Ba)};if(t.not)return{not:Ba(t.not)};throw new Error(`Unknown where operator: ${t}`)}function BO(...t){return e=>{let n=or(t[0]);const r=lE(n);if(t.length===2){const i=t[1].where?Ba(t[1].where):void 0;i&&(n={where:{expr:n,condition:i}});const s=t[1].with;s&&(r?n={custom:{...s,expr:n}}:n={customRelation:{...s,relation:n}})}return e.include(n),e}}function qO(...t){return e=>{let n=or(t[0]);if(t.length===2&&t[1].where){const r=Ba(t[1].where);n={where:{expr:n,condition:r}}}return e.exclude(n),e}}function or(t){if(!Rs(t))return t;if(t==="*")return{wildcard:!0};if(t.startsWith("->"))return t.endsWith("->")?{inout:or(t.replace(/->/g,"").trim())}:{incoming:or(t.replace("-> ",""))};if(t.endsWith(" ->"))return{outgoing:or(t.replace(" ->",""))};if(t.includes(" <-> ")){const[e,n]=t.split(" <-> ");return{source:or(e),target:or(n),isBidirectional:!0}}if(t.includes(" -> ")){const[e,n]=t.split(" -> ");return{source:or(e),target:or(n)}}return t.endsWith("._")?{expanded:t.replace("._","")}:t.endsWith(".*")?{element:t.replace(".*",""),isDescedants:!0}:{element:t,isDescedants:!1}}function jO(t,{notation:e,...n}){return r=>r.style({targets:(rE(t)?t:[t]).map(i=>or(i)),...e?{notation:e}:{},style:{...n}})}function UO(t){return e=>e.autoLayout(t)}function GO(...t){return e=>t.reduce((n,r)=>r(n),e)}function NE(t,e=new Map,n=[],r=new Map,i={predicates:{},dynamicPredicates:{},styles:{}}){const s=()=>({tags:t.tags??[],elements:{...t.elements},relationships:{...t.relationships}}),o=u=>!u||!Ed(u,1)?null:Dd(u,l=>typeof l=="string"?{url:l}:l),a=u=>{const l={autoLayout(d){return u.rules.push({direction:d}),l},exclude(d){return u.rules.push({exclude:[d]}),l},include(d){return u.rules.push({include:[d]}),l},style(d){return u.rules.push(d),l}};return l},c={get Types(){throw new Error("Types are not available in runtime")},clone:()=>NE(structuredClone(t),structuredClone(e),structuredClone(n),structuredClone(r),structuredClone(i)),__model:()=>({addElement:u=>{const l=kt(u.id);if(l&&we(e.get(l),`Parent element with id "${l}" not found for element with id "${u.id}"`),e.has(u.id))throw new Error(`Element with id "${u.id}" already exists`);return e.set(u.id,u),c},addRelation(u){const l=e.get(u.source);we(l,`Element with id "${u.source}" not found`);const d=e.get(u.target);return we(d,`Element with id "${u.target}" not found`),we(!Ma(l,d),"Cannot create relationship between elements in the same hierarchy"),n.push({id:`rel${n.length+1}`,...u}),c},fqn(u){return u},addSourcelessRelation(){throw new Error("Can be called only in nested model")}}),__views:()=>({addView:u=>(_m(u)&&we(e.get(u.viewOf),`Invalid view ${u.id}, wlement with id "${u.viewOf}" not found`),r.set(u.id,u),c)}),build:()=>({specification:s(),elements:xE(Array.from(e.entries())),relations:_O(n,u=>[u.id,u]),globals:structuredClone(i),views:xE(Array.from(r.entries()))}),helpers:()=>({model:{model:(...u)=>l=>{const d=l.__model();for(const f of u)f(d);return l},rel:(u,l,d)=>f=>{const{title:h="",links:p=[],...m}=Fa(typeof d=="string"?{title:d}:{...d},{title:null,links:null}),y=o(p);return f.addRelation({source:u,target:l,title:h,...y&&{links:y},...m}),f},relTo:(u,l)=>d=>{const{title:f="",links:h=[],...p}=Fa(typeof l=="string"?{title:l}:{...l},{title:null,links:null}),m=o(h);return d.addSourcelessRelation({target:u,title:f,...m&&{links:m},...p}),d},...xO(t.elements,({style:u,...l},d)=>(f,h)=>{const p=m=>{const{links:y,icon:g,style:w,title:E,...k}=typeof h=="string"?{title:h}:{...h},A=o(y),I=g??u?.icon,x=m.fqn(f);return m.addElement({id:x,kind:d,title:E??So(x),description:null,technology:null,tags:null,color:u?.color??Oa,shape:u?.shape??Tm,style:SO({border:u?.border,opacity:u?.opacity,...w},PO),links:A,...I&&{icon:I},...l,...k}),m};return p.with=(...m)=>y=>{p(y);const g={...y,fqn:w=>`${y.fqn(f)}.${w}`,addSourcelessRelation:w=>y.addRelation({...w,source:y.fqn(f)})};for(const w of m)w(g);return y},p})},views:{views:(...u)=>l=>{const d=l.__views();for(const f of u)f(d);return l},view:(u,l,d)=>(AE(l)&&(d=l,l={}),f=>{const{links:h=[],title:p=null,...m}=typeof l=="string"?{title:l}:{...l},y=o(h),g={id:u,__:"element",title:p,description:null,tags:null,rules:[],links:y,customColorDefinitions:{},...m};return f.addView(g),d&&d(a(g)),f}),viewOf:(u,l,d,f)=>(AE(d)&&(f=d,d={}),h=>{const{links:p=[],title:m=null,...y}=typeof d=="string"?{title:d}:{...d},g=o(p),w={id:u,__:"element",viewOf:l,title:m,description:null,tags:null,rules:[],links:g,customColorDefinitions:{},...y};return h.addView(w),f&&f(a(w)),h}),$autoLayout:UO,$exclude:qO,$expr:or,$include:BO,$rules:GO,$style:jO}}),with:(...u)=>u.reduce((l,d)=>d(l),c).clone()};return c}var Nm;(t=>{function e(n){const r=NE(n);return{...r.helpers(),builder:r}}t.forSpecification=e})(Nm||(Nm={}));const{min:WO,max:HO}=Math,$s=(t,e=0,n=1)=>WO(HO(e,t),n),Om=t=>{t._clipped=!1,t._unclipped=t.slice(0);for(let e=0;e<=3;e++)e<3?((t[e]<0||t[e]>255)&&(t._clipped=!0),t[e]=$s(t[e],0,255)):e===3&&(t[e]=$s(t[e],0,1));return t},OE={};for(let t of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])OE[`[object ${t}]`]=t.toLowerCase();function Ae(t){return OE[Object.prototype.toString.call(t)]||"object"}const Se=(t,e=null)=>t.length>=3?Array.prototype.slice.call(t):Ae(t[0])=="object"&&e?e.split("").filter(n=>t[0][n]!==void 0).map(n=>t[0][n]):t[0].slice(0),$o=t=>{if(t.length<2)return null;const e=t.length-1;return Ae(t[e])=="string"?t[e].toLowerCase():null},{PI:Sd,min:FE,max:LE}=Math,jn=t=>Math.round(t*100)/100,Fm=t=>Math.round(t*100)/100,Qr=Sd*2,Lm=Sd/3,VO=Sd/180,KO=180/Sd;function ME(t){return[...t.slice(0,3).reverse(),...t.slice(3)]}const Re={format:{},autodetect:[]};class re{constructor(...e){const n=this;if(Ae(e[0])==="object"&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];let r=$o(e),i=!1;if(!r){i=!0,Re.sorted||(Re.autodetect=Re.autodetect.sort((s,o)=>o.p-s.p),Re.sorted=!0);for(let s of Re.autodetect)if(r=s.test(...e),r)break}if(Re.format[r]){const s=Re.format[r].apply(null,i?e:e.slice(0,-1));n._rgb=Om(s)}else throw new Error("unknown format: "+e);n._rgb.length===3&&n._rgb.push(1)}toString(){return Ae(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}}const YO="3.1.2",Pe=(...t)=>new re(...t);Pe.version=YO;const Co={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},XO=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,JO=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,zE=t=>{if(t.match(XO)){(t.length===4||t.length===7)&&(t=t.substr(1)),t.length===3&&(t=t.split(""),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);const e=parseInt(t,16),n=e>>16,r=e>>8&255,i=e&255;return[n,r,i,1]}if(t.match(JO)){(t.length===5||t.length===9)&&(t=t.substr(1)),t.length===4&&(t=t.split(""),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]);const e=parseInt(t,16),n=e>>24&255,r=e>>16&255,i=e>>8&255,s=Math.round((e&255)/255*100)/100;return[n,r,i,s]}throw new Error(`unknown hex color: ${t}`)},{round:kd}=Math,BE=(...t)=>{let[e,n,r,i]=Se(t,"rgba"),s=$o(t)||"auto";i===void 0&&(i=1),s==="auto"&&(s=i<1?"rgba":"rgb"),e=kd(e),n=kd(n),r=kd(r);let o="000000"+(e<<16|n<<8|r).toString(16);o=o.substr(o.length-6);let a="0"+kd(i*255).toString(16);switch(a=a.substr(a.length-2),s.toLowerCase()){case"rgba":return`#${o}${a}`;case"argb":return`#${a}${o}`;default:return`#${o}`}};re.prototype.name=function(){const t=BE(this._rgb,"rgb");for(let e of Object.keys(Co))if(Co[e]===t)return e.toLowerCase();return t},Re.format.named=t=>{if(t=t.toLowerCase(),Co[t])return zE(Co[t]);throw new Error("unknown color name: "+t)},Re.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&Ae(t)==="string"&&Co[t.toLowerCase()])return"named"}}),re.prototype.alpha=function(t,e=!1){return t!==void 0&&Ae(t)==="number"?e?(this._rgb[3]=t,this):new re([this._rgb[0],this._rgb[1],this._rgb[2],t],"rgb"):this._rgb[3]},re.prototype.clipped=function(){return this._rgb._clipped||!1};const Cr={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452,kE:216/24389,kKE:8,kK:24389/27,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},ZO=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function ei(t){const e=ZO.get(String(t).toLowerCase());if(!e)throw new Error("unknown Lab illuminant "+t);Cr.labWhitePoint=t,Cr.Xn=e[0],Cr.Zn=e[1]}function qa(){return Cr.labWhitePoint}const Mm=(...t)=>{t=Se(t,"lab");const[e,n,r]=t,[i,s,o]=QO(e,n,r),[a,c,u]=qE(i,s,o);return[a,c,u,t.length>3?t[3]:1]},QO=(t,e,n)=>{const{kE:r,kK:i,kKE:s,Xn:o,Yn:a,Zn:c}=Cr,u=(t+16)/116,l=.002*e+u,d=u-.005*n,f=l*l*l,h=d*d*d,p=f>r?f:(116*l-16)/i,m=t>s?Math.pow((t+16)/116,3):t/i,y=h>r?h:(116*d-16)/i,g=p*o,w=m*a,E=y*c;return[g,w,E]},zm=t=>{const e=Math.sign(t);return t=Math.abs(t),(t<=.0031308?t*12.92:1.055*Math.pow(t,1/2.4)-.055)*e},qE=(t,e,n)=>{const{MtxAdaptMa:r,MtxAdaptMaI:i,MtxXYZ2RGB:s,RefWhiteRGB:o,Xn:a,Yn:c,Zn:u}=Cr,l=a*r.m00+c*r.m10+u*r.m20,d=a*r.m01+c*r.m11+u*r.m21,f=a*r.m02+c*r.m12+u*r.m22,h=o.X*r.m00+o.Y*r.m10+o.Z*r.m20,p=o.X*r.m01+o.Y*r.m11+o.Z*r.m21,m=o.X*r.m02+o.Y*r.m12+o.Z*r.m22,y=(t*r.m00+e*r.m10+n*r.m20)*(h/l),g=(t*r.m01+e*r.m11+n*r.m21)*(p/d),w=(t*r.m02+e*r.m12+n*r.m22)*(m/f),E=y*i.m00+g*i.m10+w*i.m20,k=y*i.m01+g*i.m11+w*i.m21,A=y*i.m02+g*i.m12+w*i.m22,I=zm(E*s.m00+k*s.m10+A*s.m20),x=zm(E*s.m01+k*s.m11+A*s.m21),_=zm(E*s.m02+k*s.m12+A*s.m22);return[I*255,x*255,_*255]},Bm=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),[s,o,a]=jE(e,n,r),[c,u,l]=eF(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]};function eF(t,e,n){const{Xn:r,Yn:i,Zn:s,kE:o,kK:a}=Cr,c=t/r,u=e/i,l=n/s,d=c>o?Math.pow(c,1/3):(a*c+16)/116,f=u>o?Math.pow(u,1/3):(a*u+16)/116,h=l>o?Math.pow(l,1/3):(a*l+16)/116;return[116*f-16,500*(d-f),200*(f-h)]}function qm(t){const e=Math.sign(t);return t=Math.abs(t),(t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4))*e}const jE=(t,e,n)=>{t=qm(t/255),e=qm(e/255),n=qm(n/255);const{MtxRGB2XYZ:r,MtxAdaptMa:i,MtxAdaptMaI:s,Xn:o,Yn:a,Zn:c,As:u,Bs:l,Cs:d}=Cr;let f=t*r.m00+e*r.m10+n*r.m20,h=t*r.m01+e*r.m11+n*r.m21,p=t*r.m02+e*r.m12+n*r.m22;const m=o*i.m00+a*i.m10+c*i.m20,y=o*i.m01+a*i.m11+c*i.m21,g=o*i.m02+a*i.m12+c*i.m22;let w=f*i.m00+h*i.m10+p*i.m20,E=f*i.m01+h*i.m11+p*i.m21,k=f*i.m02+h*i.m12+p*i.m22;return w*=m/u,E*=y/l,k*=g/d,f=w*s.m00+E*s.m10+k*s.m20,h=w*s.m01+E*s.m11+k*s.m21,p=w*s.m02+E*s.m12+k*s.m22,[f,h,p]};re.prototype.lab=function(){return Bm(this._rgb)};const tF=(...t)=>new re(...t,"lab");Object.assign(Pe,{lab:tF,getLabWhitePoint:qa,setLabWhitePoint:ei}),Re.format.lab=Mm,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"lab"),Ae(t)==="array"&&t.length===3)return"lab"}}),re.prototype.darken=function(t=1){const e=this,n=e.lab();return n[0]-=Cr.Kn*t,new re(n,"lab").alpha(e.alpha(),!0)},re.prototype.brighten=function(t=1){return this.darken(-t)},re.prototype.darker=re.prototype.darken,re.prototype.brighter=re.prototype.brighten,re.prototype.get=function(t){const[e,n]=t.split("."),r=this[e]();if(n){const i=e.indexOf(n)-(e.substr(0,2)==="ok"?2:0);if(i>-1)return r[i];throw new Error(`unknown channel ${n} in mode ${e}`)}else return r};const{pow:nF}=Math,rF=1e-7,iF=20;re.prototype.luminance=function(t,e="rgb"){if(t!==void 0&&Ae(t)==="number"){if(t===0)return new re([0,0,0,this._rgb[3]],"rgb");if(t===1)return new re([255,255,255,this._rgb[3]],"rgb");let n=this.luminance(),r=iF;const i=(o,a)=>{const c=o.interpolate(a,.5,e),u=c.luminance();return Math.abs(t-u)<rF||!r--?c:u>t?i(o,c):i(c,a)},s=(n>t?i(new re([0,0,0]),this):i(this,new re([255,255,255]))).rgb();return new re([...s,this._rgb[3]])}return sF(...this._rgb.slice(0,3))};const sF=(t,e,n)=>(t=jm(t),e=jm(e),n=jm(n),.2126*t+.7152*e+.0722*n),jm=t=>(t/=255,t<=.03928?t/12.92:nF((t+.055)/1.055,2.4)),Kt={},_o=(t,e,n=.5,...r)=>{let i=r[0]||"lrgb";if(!Kt[i]&&!r.length&&(i=Object.keys(Kt)[0]),!Kt[i])throw new Error(`interpolation mode ${i} is not defined`);return Ae(t)!=="object"&&(t=new re(t)),Ae(e)!=="object"&&(e=new re(e)),Kt[i](t,e,n).alpha(t.alpha()+n*(e.alpha()-t.alpha()))};re.prototype.mix=re.prototype.interpolate=function(t,e=.5,...n){return _o(this,t,e,...n)},re.prototype.premultiply=function(t=!1){const e=this._rgb,n=e[3];return t?(this._rgb=[e[0]*n,e[1]*n,e[2]*n,n],this):new re([e[0]*n,e[1]*n,e[2]*n,n],"rgb")};const{sin:oF,cos:aF}=Math,UE=(...t)=>{let[e,n,r]=Se(t,"lch");return isNaN(r)&&(r=0),r=r*VO,[e,aF(r)*n,oF(r)*n]},Um=(...t)=>{t=Se(t,"lch");const[e,n,r]=t,[i,s,o]=UE(e,n,r),[a,c,u]=Mm(i,s,o);return[a,c,u,t.length>3?t[3]:1]},cF=(...t)=>{const e=ME(Se(t,"hcl"));return Um(...e)},{sqrt:uF,atan2:lF,round:dF}=Math,GE=(...t)=>{const[e,n,r]=Se(t,"lab"),i=uF(n*n+r*r);let s=(lF(r,n)*KO+360)%360;return dF(i*1e4)===0&&(s=Number.NaN),[e,i,s]},Gm=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),[s,o,a]=Bm(e,n,r),[c,u,l]=GE(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]};re.prototype.lch=function(){return Gm(this._rgb)},re.prototype.hcl=function(){return ME(Gm(this._rgb))};const fF=(...t)=>new re(...t,"lch"),hF=(...t)=>new re(...t,"hcl");Object.assign(Pe,{lch:fF,hcl:hF}),Re.format.lch=Um,Re.format.hcl=cF,["lch","hcl"].forEach(t=>Re.autodetect.push({p:2,test:(...e)=>{if(e=Se(e,t),Ae(e)==="array"&&e.length===3)return t}})),re.prototype.saturate=function(t=1){const e=this,n=e.lch();return n[1]+=Cr.Kn*t,n[1]<0&&(n[1]=0),new re(n,"lch").alpha(e.alpha(),!0)},re.prototype.desaturate=function(t=1){return this.saturate(-t)},re.prototype.set=function(t,e,n=!1){const[r,i]=t.split("."),s=this[r]();if(i){const o=r.indexOf(i)-(r.substr(0,2)==="ok"?2:0);if(o>-1){if(Ae(e)=="string")switch(e.charAt(0)){case"+":s[o]+=+e;break;case"-":s[o]+=+e;break;case"*":s[o]*=+e.substr(1);break;case"/":s[o]/=+e.substr(1);break;default:s[o]=+e}else if(Ae(e)==="number")s[o]=e;else throw new Error("unsupported value for Color.set");const a=new re(s,r);return n?(this._rgb=a._rgb,this):a}throw new Error(`unknown channel ${i} in mode ${r}`)}else return s},re.prototype.tint=function(t=.5,...e){return _o(this,"white",t,...e)},re.prototype.shade=function(t=.5,...e){return _o(this,"black",t,...e)};const pF=(t,e,n)=>{const r=t._rgb,i=e._rgb;return new re(r[0]+n*(i[0]-r[0]),r[1]+n*(i[1]-r[1]),r[2]+n*(i[2]-r[2]),"rgb")};Kt.rgb=pF;const{sqrt:Wm,pow:Ao}=Math,mF=(t,e,n)=>{const[r,i,s]=t._rgb,[o,a,c]=e._rgb;return new re(Wm(Ao(r,2)*(1-n)+Ao(o,2)*n),Wm(Ao(i,2)*(1-n)+Ao(a,2)*n),Wm(Ao(s,2)*(1-n)+Ao(c,2)*n),"rgb")};Kt.lrgb=mF;const gF=(t,e,n)=>{const r=t.lab(),i=e.lab();return new re(r[0]+n*(i[0]-r[0]),r[1]+n*(i[1]-r[1]),r[2]+n*(i[2]-r[2]),"lab")};Kt.lab=gF;const xo=(t,e,n,r)=>{let i,s;r==="hsl"?(i=t.hsl(),s=e.hsl()):r==="hsv"?(i=t.hsv(),s=e.hsv()):r==="hcg"?(i=t.hcg(),s=e.hcg()):r==="hsi"?(i=t.hsi(),s=e.hsi()):r==="lch"||r==="hcl"?(r="hcl",i=t.hcl(),s=e.hcl()):r==="oklch"&&(i=t.oklch().reverse(),s=e.oklch().reverse());let o,a,c,u,l,d;(r.substr(0,1)==="h"||r==="oklch")&&([o,c,l]=i,[a,u,d]=s);let f,h,p,m;return!isNaN(o)&&!isNaN(a)?(a>o&&a-o>180?m=a-(o+360):a<o&&o-a>180?m=a+360-o:m=a-o,h=o+n*m):isNaN(o)?isNaN(a)?h=Number.NaN:(h=a,(l==1||l==0)&&r!="hsv"&&(f=u)):(h=o,(d==1||d==0)&&r!="hsv"&&(f=c)),f===void 0&&(f=c+n*(u-c)),p=l+n*(d-l),r==="oklch"?new re([p,f,h],r):new re([h,f,p],r)},WE=(t,e,n)=>xo(t,e,n,"lch");Kt.lch=WE,Kt.hcl=WE;const yF=t=>{if(Ae(t)=="number"&&t>=0&&t<=16777215){const e=t>>16,n=t>>8&255,r=t&255;return[e,n,r,1]}throw new Error("unknown num color: "+t)},vF=(...t)=>{const[e,n,r]=Se(t,"rgb");return(e<<16)+(n<<8)+r};re.prototype.num=function(){return vF(this._rgb)};const wF=(...t)=>new re(...t,"num");Object.assign(Pe,{num:wF}),Re.format.num=yF,Re.autodetect.push({p:5,test:(...t)=>{if(t.length===1&&Ae(t[0])==="number"&&t[0]>=0&&t[0]<=16777215)return"num"}});const bF=(t,e,n)=>{const r=t.num(),i=e.num();return new re(r+n*(i-r),"num")};Kt.num=bF;const{floor:EF}=Math,DF=(...t)=>{t=Se(t,"hcg");let[e,n,r]=t,i,s,o;r=r*255;const a=n*255;if(n===0)i=s=o=r;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;const c=EF(e),u=e-c,l=r*(1-n),d=l+a*(1-u),f=l+a*u,h=l+a;switch(c){case 0:[i,s,o]=[h,f,l];break;case 1:[i,s,o]=[d,h,l];break;case 2:[i,s,o]=[l,h,f];break;case 3:[i,s,o]=[l,d,h];break;case 4:[i,s,o]=[f,l,h];break;case 5:[i,s,o]=[h,l,d];break}}return[i,s,o,t.length>3?t[3]:1]},TF=(...t)=>{const[e,n,r]=Se(t,"rgb"),i=FE(e,n,r),s=LE(e,n,r),o=s-i,a=o*100/255,c=i/(255-o)*100;let u;return o===0?u=Number.NaN:(e===s&&(u=(n-r)/o),n===s&&(u=2+(r-e)/o),r===s&&(u=4+(e-n)/o),u*=60,u<0&&(u+=360)),[u,a,c]};re.prototype.hcg=function(){return TF(this._rgb)};const RF=(...t)=>new re(...t,"hcg");Pe.hcg=RF,Re.format.hcg=DF,Re.autodetect.push({p:1,test:(...t)=>{if(t=Se(t,"hcg"),Ae(t)==="array"&&t.length===3)return"hcg"}});const SF=(t,e,n)=>xo(t,e,n,"hcg");Kt.hcg=SF;const{cos:Io}=Math,kF=(...t)=>{t=Se(t,"hsi");let[e,n,r]=t,i,s,o;return isNaN(e)&&(e=0),isNaN(n)&&(n=0),e>360&&(e-=360),e<0&&(e+=360),e/=360,e<1/3?(o=(1-n)/3,i=(1+n*Io(Qr*e)/Io(Lm-Qr*e))/3,s=1-(o+i)):e<2/3?(e-=1/3,i=(1-n)/3,s=(1+n*Io(Qr*e)/Io(Lm-Qr*e))/3,o=1-(i+s)):(e-=2/3,s=(1-n)/3,o=(1+n*Io(Qr*e)/Io(Lm-Qr*e))/3,i=1-(s+o)),i=$s(r*i*3),s=$s(r*s*3),o=$s(r*o*3),[i*255,s*255,o*255,t.length>3?t[3]:1]},{min:$F,sqrt:CF,acos:_F}=Math,AF=(...t)=>{let[e,n,r]=Se(t,"rgb");e/=255,n/=255,r/=255;let i;const s=$F(e,n,r),o=(e+n+r)/3,a=o>0?1-s/o:0;return a===0?i=NaN:(i=(e-n+(e-r))/2,i/=CF((e-n)*(e-n)+(e-r)*(n-r)),i=_F(i),r>n&&(i=Qr-i),i/=Qr),[i*360,a,o]};re.prototype.hsi=function(){return AF(this._rgb)};const xF=(...t)=>new re(...t,"hsi");Pe.hsi=xF,Re.format.hsi=kF,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"hsi"),Ae(t)==="array"&&t.length===3)return"hsi"}});const IF=(t,e,n)=>xo(t,e,n,"hsi");Kt.hsi=IF;const Hm=(...t)=>{t=Se(t,"hsl");const[e,n,r]=t;let i,s,o;if(n===0)i=s=o=r*255;else{const a=[0,0,0],c=[0,0,0],u=r<.5?r*(1+n):r+n-r*n,l=2*r-u,d=e/360;a[0]=d+1/3,a[1]=d,a[2]=d-1/3;for(let f=0;f<3;f++)a[f]<0&&(a[f]+=1),a[f]>1&&(a[f]-=1),6*a[f]<1?c[f]=l+(u-l)*6*a[f]:2*a[f]<1?c[f]=u:3*a[f]<2?c[f]=l+(u-l)*(2/3-a[f])*6:c[f]=l;[i,s,o]=[c[0]*255,c[1]*255,c[2]*255]}return t.length>3?[i,s,o,t[3]]:[i,s,o,1]},HE=(...t)=>{t=Se(t,"rgba");let[e,n,r]=t;e/=255,n/=255,r/=255;const i=FE(e,n,r),s=LE(e,n,r),o=(s+i)/2;let a,c;return s===i?(a=0,c=Number.NaN):a=o<.5?(s-i)/(s+i):(s-i)/(2-s-i),e==s?c=(n-r)/(s-i):n==s?c=2+(r-e)/(s-i):r==s&&(c=4+(e-n)/(s-i)),c*=60,c<0&&(c+=360),t.length>3&&t[3]!==void 0?[c,a,o,t[3]]:[c,a,o]};re.prototype.hsl=function(){return HE(this._rgb)};const PF=(...t)=>new re(...t,"hsl");Pe.hsl=PF,Re.format.hsl=Hm,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"hsl"),Ae(t)==="array"&&t.length===3)return"hsl"}});const NF=(t,e,n)=>xo(t,e,n,"hsl");Kt.hsl=NF;const{floor:OF}=Math,FF=(...t)=>{t=Se(t,"hsv");let[e,n,r]=t,i,s,o;if(r*=255,n===0)i=s=o=r;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;const a=OF(e),c=e-a,u=r*(1-n),l=r*(1-n*c),d=r*(1-n*(1-c));switch(a){case 0:[i,s,o]=[r,d,u];break;case 1:[i,s,o]=[l,r,u];break;case 2:[i,s,o]=[u,r,d];break;case 3:[i,s,o]=[u,l,r];break;case 4:[i,s,o]=[d,u,r];break;case 5:[i,s,o]=[r,u,l];break}}return[i,s,o,t.length>3?t[3]:1]},{min:LF,max:MF}=Math,zF=(...t)=>{t=Se(t,"rgb");let[e,n,r]=t;const i=LF(e,n,r),s=MF(e,n,r),o=s-i;let a,c,u;return u=s/255,s===0?(a=Number.NaN,c=0):(c=o/s,e===s&&(a=(n-r)/o),n===s&&(a=2+(r-e)/o),r===s&&(a=4+(e-n)/o),a*=60,a<0&&(a+=360)),[a,c,u]};re.prototype.hsv=function(){return zF(this._rgb)};const BF=(...t)=>new re(...t,"hsv");Pe.hsv=BF,Re.format.hsv=FF,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"hsv"),Ae(t)==="array"&&t.length===3)return"hsv"}});const qF=(t,e,n)=>xo(t,e,n,"hsv");Kt.hsv=qF;function $d(t,e){let n=t.length;Array.isArray(t[0])||(t=[t]),Array.isArray(e[0])||(e=e.map(o=>[o]));let r=e[0].length,i=e[0].map((o,a)=>e.map(c=>c[a])),s=t.map(o=>i.map(a=>Array.isArray(o)?o.reduce((c,u,l)=>c+u*(a[l]||0),0):a.reduce((c,u)=>c+u*o,0)));return n===1&&(s=s[0]),r===1?s.map(o=>o[0]):s}const Vm=(...t)=>{t=Se(t,"lab");const[e,n,r,...i]=t,[s,o,a]=jF([e,n,r]),[c,u,l]=qE(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]};function jF(t){var e=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],n=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],r=$d(n,t);return $d(e,r.map(i=>i**3))}const Km=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),s=jE(e,n,r);return[...UF(s),...i.length>0&&i[0]<1?[i[0]]:[]]};function UF(t){const e=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],n=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],r=$d(e,t);return $d(n,r.map(i=>Math.cbrt(i)))}re.prototype.oklab=function(){return Km(this._rgb)};const GF=(...t)=>new re(...t,"oklab");Object.assign(Pe,{oklab:GF}),Re.format.oklab=Vm,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"oklab"),Ae(t)==="array"&&t.length===3)return"oklab"}});const WF=(t,e,n)=>{const r=t.oklab(),i=e.oklab();return new re(r[0]+n*(i[0]-r[0]),r[1]+n*(i[1]-r[1]),r[2]+n*(i[2]-r[2]),"oklab")};Kt.oklab=WF;const HF=(t,e,n)=>xo(t,e,n,"oklch");Kt.oklch=HF;const{pow:Ym,sqrt:Xm,PI:Jm,cos:VE,sin:KE,atan2:VF}=Math,KF=(t,e="lrgb",n=null)=>{const r=t.length;n||(n=Array.from(new Array(r)).map(()=>1));const i=r/n.reduce(function(d,f){return d+f});if(n.forEach((d,f)=>{n[f]*=i}),t=t.map(d=>new re(d)),e==="lrgb")return YF(t,n);const s=t.shift(),o=s.get(e),a=[];let c=0,u=0;for(let d=0;d<o.length;d++)if(o[d]=(o[d]||0)*n[0],a.push(isNaN(o[d])?0:n[0]),e.charAt(d)==="h"&&!isNaN(o[d])){const f=o[d]/180*Jm;c+=VE(f)*n[0],u+=KE(f)*n[0]}let l=s.alpha()*n[0];t.forEach((d,f)=>{const h=d.get(e);l+=d.alpha()*n[f+1];for(let p=0;p<o.length;p++)if(!isNaN(h[p]))if(a[p]+=n[f+1],e.charAt(p)==="h"){const m=h[p]/180*Jm;c+=VE(m)*n[f+1],u+=KE(m)*n[f+1]}else o[p]+=h[p]*n[f+1]});for(let d=0;d<o.length;d++)if(e.charAt(d)==="h"){let f=VF(u/a[d],c/a[d])/Jm*180;for(;f<0;)f+=360;for(;f>=360;)f-=360;o[d]=f}else o[d]=o[d]/a[d];return l/=r,new re(o,e).alpha(l>.99999?1:l,!0)},YF=(t,e)=>{const n=t.length,r=[0,0,0,0];for(let i=0;i<t.length;i++){const s=t[i],o=e[i]/n,a=s._rgb;r[0]+=Ym(a[0],2)*o,r[1]+=Ym(a[1],2)*o,r[2]+=Ym(a[2],2)*o,r[3]+=a[3]*o}return r[0]=Xm(r[0]),r[1]=Xm(r[1]),r[2]=Xm(r[2]),r[3]>.9999999&&(r[3]=1),new re(Om(r))},{pow:XF}=Math;function Cd(t){let e="rgb",n=Pe("#ccc"),r=0,i=[0,1],s=[],o=[0,0],a=!1,c=[],u=!1,l=0,d=1,f=!1,h={},p=!0,m=1;const y=function(x){if(x=x||["#fff","#000"],x&&Ae(x)==="string"&&Pe.brewer&&Pe.brewer[x.toLowerCase()]&&(x=Pe.brewer[x.toLowerCase()]),Ae(x)==="array"){x.length===1&&(x=[x[0],x[0]]),x=x.slice(0);for(let _=0;_<x.length;_++)x[_]=Pe(x[_]);s.length=0;for(let _=0;_<x.length;_++)s.push(_/(x.length-1))}return A(),c=x},g=function(x){if(a!=null){const _=a.length-1;let P=0;for(;P<_&&x>=a[P];)P++;return P-1}return 0};let w=x=>x,E=x=>x;const k=function(x,_){let P,O;if(_==null&&(_=!1),isNaN(x)||x===null)return n;_?O=x:a&&a.length>2?O=g(x)/(a.length-2):d!==l?O=(x-l)/(d-l):O=1,O=E(O),_||(O=w(O)),m!==1&&(O=XF(O,m)),O=o[0]+O*(1-o[0]-o[1]),O=$s(O,0,1);const C=Math.floor(O*1e4);if(p&&h[C])P=h[C];else{if(Ae(c)==="array")for(let D=0;D<s.length;D++){const R=s[D];if(O<=R){P=c[D];break}if(O>=R&&D===s.length-1){P=c[D];break}if(O>R&&O<s[D+1]){O=(O-R)/(s[D+1]-R),P=Pe.interpolate(c[D],c[D+1],O,e);break}}else Ae(c)==="function"&&(P=c(O));p&&(h[C]=P)}return P};var A=()=>h={};y(t);const I=function(x){const _=Pe(k(x));return u&&_[u]?_[u]():_};return I.classes=function(x){if(x!=null){if(Ae(x)==="array")a=x,i=[x[0],x[x.length-1]];else{const _=Pe.analyze(i);x===0?a=[_.min,_.max]:a=Pe.limits(_,"e",x)}return I}return a},I.domain=function(x){if(!arguments.length)return i;l=x[0],d=x[x.length-1],s=[];const _=c.length;if(x.length===_&&l!==d)for(let P of Array.from(x))s.push((P-l)/(d-l));else{for(let P=0;P<_;P++)s.push(P/(_-1));if(x.length>2){const P=x.map((C,D)=>D/(x.length-1)),O=x.map(C=>(C-l)/(d-l));O.every((C,D)=>P[D]===C)||(E=C=>{if(C<=0||C>=1)return C;let D=0;for(;C>=O[D+1];)D++;const R=(C-O[D])/(O[D+1]-O[D]);return P[D]+R*(P[D+1]-P[D])})}}return i=[l,d],I},I.mode=function(x){return arguments.length?(e=x,A(),I):e},I.range=function(x,_){return y(x),I},I.out=function(x){return u=x,I},I.spread=function(x){return arguments.length?(r=x,I):r},I.correctLightness=function(x){return x==null&&(x=!0),f=x,A(),f?w=function(_){const P=k(0,!0).lab()[0],O=k(1,!0).lab()[0],C=P>O;let D=k(_,!0).lab()[0];const R=P+(O-P)*_;let L=D-R,W=0,V=1,Z=20;for(;Math.abs(L)>.01&&Z-- >0;)(function(){return C&&(L*=-1),L<0?(W=_,_+=(V-_)*.5):(V=_,_+=(W-_)*.5),D=k(_,!0).lab()[0],L=D-R})();return _}:w=_=>_,I},I.padding=function(x){return x!=null?(Ae(x)==="number"&&(x=[x,x]),o=x,I):o},I.colors=function(x,_){arguments.length<2&&(_="hex");let P=[];if(arguments.length===0)P=c.slice(0);else if(x===1)P=[I(.5)];else if(x>1){const O=i[0],C=i[1]-O;P=JF(0,x).map(D=>I(O+D/(x-1)*C))}else{t=[];let O=[];if(a&&a.length>2)for(let C=1,D=a.length,R=1<=D;R?C<D:C>D;R?C++:C--)O.push((a[C-1]+a[C])*.5);else O=i;P=O.map(C=>I(C))}return Pe[_]&&(P=P.map(O=>O[_]())),P},I.cache=function(x){return x!=null?(p=x,I):p},I.gamma=function(x){return x!=null?(m=x,I):m},I.nodata=function(x){return x!=null?(n=Pe(x),I):n},I}function JF(t,e,n){let r=[],i=t<e,s=e;for(let o=t;i?o<s:o>s;i?o++:o--)r.push(o);return r}const ZF=function(t){let e=[1,1];for(let n=1;n<t;n++){let r=[1];for(let i=1;i<=e.length;i++)r[i]=(e[i]||0)+e[i-1];e=r}return e},QF=function(t){let e,n,r,i;if(t=t.map(s=>new re(s)),t.length===2)[n,r]=t.map(s=>s.lab()),e=function(s){const o=[0,1,2].map(a=>n[a]+s*(r[a]-n[a]));return new re(o,"lab")};else if(t.length===3)[n,r,i]=t.map(s=>s.lab()),e=function(s){const o=[0,1,2].map(a=>(1-s)*(1-s)*n[a]+2*(1-s)*s*r[a]+s*s*i[a]);return new re(o,"lab")};else if(t.length===4){let s;[n,r,i,s]=t.map(o=>o.lab()),e=function(o){const a=[0,1,2].map(c=>(1-o)*(1-o)*(1-o)*n[c]+3*(1-o)*(1-o)*o*r[c]+3*(1-o)*o*o*i[c]+o*o*o*s[c]);return new re(a,"lab")}}else if(t.length>=5){let s,o,a;s=t.map(c=>c.lab()),a=t.length-1,o=ZF(a),e=function(c){const u=1-c,l=[0,1,2].map(d=>s.reduce((f,h,p)=>f+o[p]*u**(a-p)*c**p*h[d],0));return new re(l,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return e},eL=t=>{const e=QF(t);return e.scale=()=>Cd(e),e},{round:YE}=Math;re.prototype.rgb=function(t=!0){return t===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(YE)},re.prototype.rgba=function(t=!0){return this._rgb.slice(0,4).map((e,n)=>n<3?t===!1?e:YE(e):e)};const tL=(...t)=>new re(...t,"rgb");Object.assign(Pe,{rgb:tL}),Re.format.rgb=(...t)=>{const e=Se(t,"rgba");return e[3]===void 0&&(e[3]=1),e},Re.autodetect.push({p:3,test:(...t)=>{if(t=Se(t,"rgba"),Ae(t)==="array"&&(t.length===3||t.length===4&&Ae(t[3])=="number"&&t[3]>=0&&t[3]<=1))return"rgb"}});const ar=(t,e,n)=>{if(!ar[n])throw new Error("unknown blend mode "+n);return ar[n](t,e)},Oi=t=>(e,n)=>{const r=Pe(n).rgb(),i=Pe(e).rgb();return Pe.rgb(t(r,i))},Fi=t=>(e,n)=>{const r=[];return r[0]=t(e[0],n[0]),r[1]=t(e[1],n[1]),r[2]=t(e[2],n[2]),r},nL=t=>t,rL=(t,e)=>t*e/255,iL=(t,e)=>t>e?e:t,sL=(t,e)=>t>e?t:e,oL=(t,e)=>255*(1-(1-t/255)*(1-e/255)),aL=(t,e)=>e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255)),cL=(t,e)=>255*(1-(1-e/255)/(t/255)),uL=(t,e)=>t===255?255:(t=255*(e/255)/(1-t/255),t>255?255:t);ar.normal=Oi(Fi(nL)),ar.multiply=Oi(Fi(rL)),ar.screen=Oi(Fi(oL)),ar.overlay=Oi(Fi(aL)),ar.darken=Oi(Fi(iL)),ar.lighten=Oi(Fi(sL)),ar.dodge=Oi(Fi(uL)),ar.burn=Oi(Fi(cL));const{pow:lL,sin:dL,cos:fL}=Math;function hL(t=300,e=-1.5,n=1,r=1,i=[0,1]){let s=0,o;Ae(i)==="array"?o=i[1]-i[0]:(o=0,i=[i,i]);const a=function(c){const u=Qr*((t+120)/360+e*c),l=lL(i[0]+o*c,r),d=(s!==0?n[0]+c*s:n)*l*(1-l)/2,f=fL(u),h=dL(u),p=l+d*(-.14861*f+1.78277*h),m=l+d*(-.29227*f-.90649*h),y=l+d*(1.97294*f);return Pe(Om([p*255,m*255,y*255,1]))};return a.start=function(c){return c==null?t:(t=c,a)},a.rotations=function(c){return c==null?e:(e=c,a)},a.gamma=function(c){return c==null?r:(r=c,a)},a.hue=function(c){return c==null?n:(n=c,Ae(n)==="array"?(s=n[1]-n[0],s===0&&(n=n[1])):s=0,a)},a.lightness=function(c){return c==null?i:(Ae(c)==="array"?(i=c,o=c[1]-c[0]):(i=[c,c],o=0),a)},a.scale=()=>Pe.scale(a),a.hue(n),a}const pL="0123456789abcdef",{floor:mL,random:gL}=Math,yL=()=>{let t="#";for(let e=0;e<6;e++)t+=pL.charAt(mL(gL()*16));return new re(t,"hex")},{log:XE,pow:vL,floor:wL,abs:bL}=Math;function JE(t,e=null){const n={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return Ae(t)==="object"&&(t=Object.values(t)),t.forEach(r=>{e&&Ae(r)==="object"&&(r=r[e]),r!=null&&!isNaN(r)&&(n.values.push(r),n.sum+=r,r<n.min&&(n.min=r),r>n.max&&(n.max=r),n.count+=1)}),n.domain=[n.min,n.max],n.limits=(r,i)=>ZE(n,r,i),n}function ZE(t,e="equal",n=7){Ae(t)=="array"&&(t=JE(t));const{min:r,max:i}=t,s=t.values.sort((a,c)=>a-c);if(n===1)return[r,i];const o=[];if(e.substr(0,1)==="c"&&(o.push(r),o.push(i)),e.substr(0,1)==="e"){o.push(r);for(let a=1;a<n;a++)o.push(r+a/n*(i-r));o.push(i)}else if(e.substr(0,1)==="l"){if(r<=0)throw new Error("Logarithmic scales are only possible for values > 0");const a=Math.LOG10E*XE(r),c=Math.LOG10E*XE(i);o.push(r);for(let u=1;u<n;u++)o.push(vL(10,a+u/n*(c-a)));o.push(i)}else if(e.substr(0,1)==="q"){o.push(r);for(let a=1;a<n;a++){const c=(s.length-1)*a/n,u=wL(c);if(u===c)o.push(s[u]);else{const l=c-u;o.push(s[u]*(1-l)+s[u+1]*l)}}o.push(i)}else if(e.substr(0,1)==="k"){let a;const c=s.length,u=new Array(c),l=new Array(n);let d=!0,f=0,h=null;h=[],h.push(r);for(let y=1;y<n;y++)h.push(r+y/n*(i-r));for(h.push(i);d;){for(let g=0;g<n;g++)l[g]=0;for(let g=0;g<c;g++){const w=s[g];let E=Number.MAX_VALUE,k;for(let A=0;A<n;A++){const I=bL(h[A]-w);I<E&&(E=I,k=A),l[k]++,u[g]=k}}const y=new Array(n);for(let g=0;g<n;g++)y[g]=null;for(let g=0;g<c;g++)a=u[g],y[a]===null?y[a]=s[g]:y[a]+=s[g];for(let g=0;g<n;g++)y[g]*=1/l[g];d=!1;for(let g=0;g<n;g++)if(y[g]!==h[g]){d=!0;break}h=y,f++,f>200&&(d=!1)}const p={};for(let y=0;y<n;y++)p[y]=[];for(let y=0;y<c;y++)a=u[y],p[a].push(s[y]);let m=[];for(let y=0;y<n;y++)m.push(p[y][0]),m.push(p[y][p[y].length-1]);m=m.sort((y,g)=>y-g),o.push(m[0]);for(let y=1;y<m.length;y+=2){const g=m[y];!isNaN(g)&&o.indexOf(g)===-1&&o.push(g)}}return o}const EL=(t,e)=>{t=new re(t),e=new re(e);const n=t.luminance(),r=e.luminance();return n>r?(n+.05)/(r+.05):(r+.05)/(n+.05)},QE=.027,DL=5e-4,TL=.1,eD=1.14,_d=.022,tD=1.414,RL=(t,e)=>{t=new re(t),e=new re(e),t.alpha()<1&&(t=_o(e,t,t.alpha(),"rgb"));const n=nD(...t.rgb()),r=nD(...e.rgb()),i=n>=_d?n:n+Math.pow(_d-n,tD),s=r>=_d?r:r+Math.pow(_d-r,tD),o=Math.pow(s,.56)-Math.pow(i,.57),a=Math.pow(s,.65)-Math.pow(i,.62),c=Math.abs(s-i)<DL?0:i<s?o*eD:a*eD;return(Math.abs(c)<TL?0:c>0?c-QE:c+QE)*100};function nD(t,e,n){return .2126729*Math.pow(t/255,2.4)+.7151522*Math.pow(e/255,2.4)+.072175*Math.pow(n/255,2.4)}const{sqrt:ti,pow:$t,min:SL,max:kL,atan2:rD,abs:iD,cos:Ad,sin:sD,exp:$L,PI:oD}=Math;function CL(t,e,n=1,r=1,i=1){var s=function(ut){return 360*ut/(2*oD)},o=function(ut){return 2*oD*ut/360};t=new re(t),e=new re(e);const[a,c,u]=Array.from(t.lab()),[l,d,f]=Array.from(e.lab()),h=(a+l)/2,p=ti($t(c,2)+$t(u,2)),m=ti($t(d,2)+$t(f,2)),y=(p+m)/2,g=.5*(1-ti($t(y,7)/($t(y,7)+$t(25,7)))),w=c*(1+g),E=d*(1+g),k=ti($t(w,2)+$t(u,2)),A=ti($t(E,2)+$t(f,2)),I=(k+A)/2,x=s(rD(u,w)),_=s(rD(f,E)),P=x>=0?x:x+360,O=_>=0?_:_+360,C=iD(P-O)>180?(P+O+360)/2:(P+O)/2,D=1-.17*Ad(o(C-30))+.24*Ad(o(2*C))+.32*Ad(o(3*C+6))-.2*Ad(o(4*C-63));let R=O-P;R=iD(R)<=180?R:O<=P?R+360:R-360,R=2*ti(k*A)*sD(o(R)/2);const L=l-a,W=A-k,V=1+.015*$t(h-50,2)/ti(20+$t(h-50,2)),Z=1+.045*I,Fe=1+.015*I*D,se=30*$L(-$t((C-275)/25,2)),K=-(2*ti($t(I,7)/($t(I,7)+$t(25,7))))*sD(2*o(se)),Te=ti($t(L/(n*V),2)+$t(W/(r*Z),2)+$t(R/(i*Fe),2)+K*(W/(r*Z))*(R/(i*Fe)));return kL(0,SL(100,Te))}function _L(t,e,n="lab"){t=new re(t),e=new re(e);const r=t.get(n),i=e.get(n);let s=0;for(let o in r){const a=(r[o]||0)-(i[o]||0);s+=a*a}return Math.sqrt(s)}const AL=(...t)=>{try{return new re(...t),!0}catch{return!1}},xL={cool(){return Cd([Pe.hsl(180,1,.9),Pe.hsl(250,.7,.4)])},hot(){return Cd(["#000","#f00","#ff0","#fff"]).mode("rgb")}},Zm={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},aD=Object.keys(Zm),cD=new Map(aD.map(t=>[t.toLowerCase(),t])),IL=typeof Proxy=="function"?new Proxy(Zm,{get(t,e){const n=e.toLowerCase();if(cD.has(n))return t[cD.get(n)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(aD)}}):Zm,PL=(...t)=>{t=Se(t,"cmyk");const[e,n,r,i]=t,s=t.length>4?t[4]:1;return i===1?[0,0,0,s]:[e>=1?0:255*(1-e)*(1-i),n>=1?0:255*(1-n)*(1-i),r>=1?0:255*(1-r)*(1-i),s]},{max:uD}=Math,NL=(...t)=>{let[e,n,r]=Se(t,"rgb");e=e/255,n=n/255,r=r/255;const i=1-uD(e,uD(n,r)),s=i<1?1/(1-i):0,o=(1-e-i)*s,a=(1-n-i)*s,c=(1-r-i)*s;return[o,a,c,i]};re.prototype.cmyk=function(){return NL(this._rgb)};const OL=(...t)=>new re(...t,"cmyk");Object.assign(Pe,{cmyk:OL}),Re.format.cmyk=PL,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"cmyk"),Ae(t)==="array"&&t.length===4)return"cmyk"}});const FL=(...t)=>{const e=Se(t,"hsla");let n=$o(t)||"lsa";return e[0]=jn(e[0]||0)+"deg",e[1]=jn(e[1]*100)+"%",e[2]=jn(e[2]*100)+"%",n==="hsla"||e.length>3&&e[3]<1?(e[3]="/ "+(e.length>3?e[3]:1),n="hsla"):e.length=3,`${n.substr(0,3)}(${e.join(" ")})`},LL=(...t)=>{const e=Se(t,"lab");let n=$o(t)||"lab";return e[0]=jn(e[0])+"%",e[1]=jn(e[1]),e[2]=jn(e[2]),n==="laba"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lab(${e.join(" ")})`},ML=(...t)=>{const e=Se(t,"lch");let n=$o(t)||"lab";return e[0]=jn(e[0])+"%",e[1]=jn(e[1]),e[2]=isNaN(e[2])?"none":jn(e[2])+"deg",n==="lcha"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lch(${e.join(" ")})`},zL=(...t)=>{const e=Se(t,"lab");return e[0]=jn(e[0]*100)+"%",e[1]=Fm(e[1]),e[2]=Fm(e[2]),e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklab(${e.join(" ")})`},lD=(...t)=>{const[e,n,r,...i]=Se(t,"rgb"),[s,o,a]=Km(e,n,r),[c,u,l]=GE(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]},BL=(...t)=>{const e=Se(t,"lch");return e[0]=jn(e[0]*100)+"%",e[1]=Fm(e[1]),e[2]=isNaN(e[2])?"none":jn(e[2])+"deg",e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklch(${e.join(" ")})`},{round:Qm}=Math,qL=(...t)=>{const e=Se(t,"rgba");let n=$o(t)||"rgb";if(n.substr(0,3)==="hsl")return FL(HE(e),n);if(n.substr(0,3)==="lab"){const r=qa();ei("d50");const i=LL(Bm(e),n);return ei(r),i}if(n.substr(0,3)==="lch"){const r=qa();ei("d50");const i=ML(Gm(e),n);return ei(r),i}return n.substr(0,5)==="oklab"?zL(Km(e)):n.substr(0,5)==="oklch"?BL(lD(e)):(e[0]=Qm(e[0]),e[1]=Qm(e[1]),e[2]=Qm(e[2]),(n==="rgba"||e.length>3&&e[3]<1)&&(e[3]="/ "+(e.length>3?e[3]:1),n="rgba"),`${n.substr(0,3)}(${e.slice(0,n==="rgb"?3:4).join(" ")})`)},dD=(...t)=>{t=Se(t,"lch");const[e,n,r,...i]=t,[s,o,a]=UE(e,n,r),[c,u,l]=Vm(s,o,a);return[c,u,l,...i.length>0&&i[0]<1?[i[0]]:[]]},ni=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,cr=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,xd=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,Un=/\s*/.source,Po=/\s+/.source,eg=/\s*,\s*/.source,Id=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,No=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,fD=new RegExp("^rgba?\\("+Un+[ni,ni,ni].join(Po)+No+"\\)$"),hD=new RegExp("^rgb\\("+Un+[ni,ni,ni].join(eg)+Un+"\\)$"),pD=new RegExp("^rgba\\("+Un+[ni,ni,ni,cr].join(eg)+Un+"\\)$"),mD=new RegExp("^hsla?\\("+Un+[Id,xd,xd].join(Po)+No+"\\)$"),gD=new RegExp("^hsl?\\("+Un+[Id,xd,xd].join(eg)+Un+"\\)$"),yD=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,vD=new RegExp("^lab\\("+Un+[cr,cr,cr].join(Po)+No+"\\)$"),wD=new RegExp("^lch\\("+Un+[cr,cr,Id].join(Po)+No+"\\)$"),bD=new RegExp("^oklab\\("+Un+[cr,cr,cr].join(Po)+No+"\\)$"),ED=new RegExp("^oklch\\("+Un+[cr,cr,Id].join(Po)+No+"\\)$"),{round:DD}=Math,Oo=t=>t.map((e,n)=>n<=2?$s(DD(e),0,255):e),Ct=(t,e=0,n=100,r=!1)=>(typeof t=="string"&&t.endsWith("%")&&(t=parseFloat(t.substring(0,t.length-1))/100,r?t=e+(t+1)*.5*(n-e):t=e+t*(n-e)),+t),rn=(t,e)=>t==="none"?e:t,tg=t=>{if(t=t.toLowerCase().trim(),t==="transparent")return[0,0,0,0];let e;if(Re.format.named)try{return Re.format.named(t)}catch{}if((e=t.match(fD))||(e=t.match(hD))){let n=e.slice(1,4);for(let i=0;i<3;i++)n[i]=+Ct(rn(n[i],0),0,255);n=Oo(n);const r=e[4]!==void 0?+Ct(e[4],0,1):1;return n[3]=r,n}if(e=t.match(pD)){const n=e.slice(1,5);for(let r=0;r<4;r++)n[r]=+Ct(n[r],0,255);return n}if((e=t.match(mD))||(e=t.match(gD))){const n=e.slice(1,4);n[0]=+rn(n[0].replace("deg",""),0),n[1]=+Ct(rn(n[1],0),0,100)*.01,n[2]=+Ct(rn(n[2],0),0,100)*.01;const r=Oo(Hm(n)),i=e[4]!==void 0?+Ct(e[4],0,1):1;return r[3]=i,r}if(e=t.match(yD)){const n=e.slice(1,4);n[1]*=.01,n[2]*=.01;const r=Hm(n);for(let i=0;i<3;i++)r[i]=DD(r[i]);return r[3]=+e[4],r}if(e=t.match(vD)){const n=e.slice(1,4);n[0]=Ct(rn(n[0],0),0,100),n[1]=Ct(rn(n[1],0),-125,125,!0),n[2]=Ct(rn(n[2],0),-125,125,!0);const r=qa();ei("d50");const i=Oo(Mm(n));ei(r);const s=e[4]!==void 0?+Ct(e[4],0,1):1;return i[3]=s,i}if(e=t.match(wD)){const n=e.slice(1,4);n[0]=Ct(n[0],0,100),n[1]=Ct(rn(n[1],0),0,150,!1),n[2]=+rn(n[2].replace("deg",""),0);const r=qa();ei("d50");const i=Oo(Um(n));ei(r);const s=e[4]!==void 0?+Ct(e[4],0,1):1;return i[3]=s,i}if(e=t.match(bD)){const n=e.slice(1,4);n[0]=Ct(rn(n[0],0),0,1),n[1]=Ct(rn(n[1],0),-.4,.4,!0),n[2]=Ct(rn(n[2],0),-.4,.4,!0);const r=Oo(Vm(n)),i=e[4]!==void 0?+Ct(e[4],0,1):1;return r[3]=i,r}if(e=t.match(ED)){const n=e.slice(1,4);n[0]=Ct(rn(n[0],0),0,1),n[1]=Ct(rn(n[1],0),0,.4,!1),n[2]=+rn(n[2].replace("deg",""),0);const r=Oo(dD(n)),i=e[4]!==void 0?+Ct(e[4],0,1):1;return r[3]=i,r}};tg.test=t=>fD.test(t)||mD.test(t)||vD.test(t)||wD.test(t)||bD.test(t)||ED.test(t)||hD.test(t)||pD.test(t)||gD.test(t)||yD.test(t)||t==="transparent",re.prototype.css=function(t){return qL(this._rgb,t)};const jL=(...t)=>new re(...t,"css");Pe.css=jL,Re.format.css=tg,Re.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&Ae(t)==="string"&&tg.test(t))return"css"}}),Re.format.gl=(...t)=>{const e=Se(t,"rgba");return e[0]*=255,e[1]*=255,e[2]*=255,e};const UL=(...t)=>new re(...t,"gl");Pe.gl=UL,re.prototype.gl=function(){const t=this._rgb;return[t[0]/255,t[1]/255,t[2]/255,t[3]]},re.prototype.hex=function(t){return BE(this._rgb,t)};const GL=(...t)=>new re(...t,"hex");Pe.hex=GL,Re.format.hex=zE,Re.autodetect.push({p:4,test:(t,...e)=>{if(!e.length&&Ae(t)==="string"&&[3,4,5,6,7,8,9].indexOf(t.length)>=0)return"hex"}});const{log:Pd}=Math,TD=t=>{const e=t/100;let n,r,i;return e<66?(n=255,r=e<6?0:-155.25485562709179-.44596950469579133*(r=e-2)+104.49216199393888*Pd(r),i=e<20?0:-254.76935184120902+.8274096064007395*(i=e-10)+115.67994401066147*Pd(i)):(n=351.97690566805693+.114206453784165*(n=e-55)-40.25366309332127*Pd(n),r=325.4494125711974+.07943456536662342*(r=e-50)-28.0852963507957*Pd(r),i=255),[n,r,i,1]},{round:WL}=Math,HL=(...t)=>{const e=Se(t,"rgb"),n=e[0],r=e[2];let i=1e3,s=4e4;const o=.4;let a;for(;s-i>o;){a=(s+i)*.5;const c=TD(a);c[2]/c[0]>=r/n?s=a:i=a}return WL(a)};re.prototype.temp=re.prototype.kelvin=re.prototype.temperature=function(){return HL(this._rgb)};const ng=(...t)=>new re(...t,"temp");Object.assign(Pe,{temp:ng,kelvin:ng,temperature:ng}),Re.format.temp=Re.format.kelvin=Re.format.temperature=TD,re.prototype.oklch=function(){return lD(this._rgb)};const VL=(...t)=>new re(...t,"oklch");Object.assign(Pe,{oklch:VL}),Re.format.oklch=dD,Re.autodetect.push({p:2,test:(...t)=>{if(t=Se(t,"oklch"),Ae(t)==="array"&&t.length===3)return"oklch"}}),Object.assign(Pe,{analyze:JE,average:KF,bezier:eL,blend:ar,brewer:IL,Color:re,colors:Co,contrast:EL,contrastAPCA:RL,cubehelix:hL,deltaE:CL,distance:_L,input:Re,interpolate:_o,limits:ZE,mix:_o,random:yL,scale:Cd,scales:xL,valid:AL});const rg=[.96,.907,.805,.697,.605,.547,.518,.445,.395,.34],RD=[.32,.16,.08,.04,0,0,.04,.08,.16,.32];function KL(t){const e=t.get("hsl.l");return rg.reduce((n,r)=>Math.abs(r-e)<Math.abs(n-e)?r:n)}function YL(t){const e=Pe(t),n=KL(e),r=rg.findIndex(s=>s===n),i=rg.map(s=>e.set("hsl.l",s)).map(s=>Pe(s)).map((s,o)=>{const a=RD[o]-RD[r];return a>=0?s.saturate(a):s.desaturate(a*-1)});return{baseColorIndex:r,colors:i}}function XL(t){return YL(t).colors.map(e=>e.hex())}const SD={fill:"#3b82f6",stroke:"#2563eb",hiContrast:"#eff6ff",loContrast:"#bfdbfe"},kD={fill:"#0284c7",stroke:"#0369a1",hiContrast:"#f0f9ff",loContrast:"#B6ECF7"},$D={fill:"#64748b",stroke:"#475569",hiContrast:"#f8fafc",loContrast:"#cbd5e1"},CD={primary:SD,blue:SD,secondary:kD,sky:kD,muted:$D,slate:$D,gray:{fill:"#737373",stroke:"#525252",hiContrast:"#fafafa",loContrast:"#d4d4d4"},red:{fill:"#AC4D39",stroke:"#853A2D",hiContrast:"#FBD3CB",loContrast:"#f5b2a3"},green:{fill:"#428a4f",stroke:"#2d5d39",hiContrast:"#f8fafc",loContrast:"#c2f0c2"},amber:{fill:"#A35829",stroke:"#7E451D",hiContrast:"#FFE0C2",loContrast:"#f9b27c"},indigo:{fill:"#6366f1",stroke:"#4f46e5",hiContrast:"#eef2ff",loContrast:"#c7d2fe"}},JL={lineColor:"#6E6E6E",labelBgColor:"#18191b",labelColor:"#C6C6C6"},_D={lineColor:"#64748b",labelBgColor:"#0f172a",labelColor:"#cbd5e1"},AD={lineColor:"#3b82f6",labelBgColor:"#172554",labelColor:"#60a5fa"},xD={lineColor:"#0ea5e9",labelBgColor:"#082f49",labelColor:"#38bdf8"},ID={amber:{lineColor:"#b45309",labelBgColor:"#78350f",labelColor:"#FFE0C2"},blue:AD,gray:JL,green:{lineColor:"#15803d",labelBgColor:"#052e16",labelColor:"#22c55e"},indigo:{lineColor:"#6366f1",labelBgColor:"#1e1b4b",labelColor:"#818cf8"},muted:_D,primary:AD,red:{lineColor:"#AC4D39",labelBgColor:"#b91c1c",labelColor:"#f5b2a3"},secondary:xD,sky:xD,slate:_D},Gn={elements:CD,relationships:ID,font:"Arial",shadow:"#0a0a0a"};function ZL(t){if(t.match(/^#([0-9a-f]{3}){1,2}$/i)){const e=XL(t);return{elements:{fill:e[6],stroke:e[7],hiContrast:e[0],loContrast:e[1]},relationships:{lineColor:e[4],labelColor:e[3],labelBgColor:e[9]}}}else return{elements:Gn.elements.primary,relationships:Gn.relationships.primary}}function it(t){return Rs(t)?t:t.id}let ja=class L0{constructor(e,n){this.view=e,this.model=n;for(const r of e.nodes){const i=new L0.Element(r,this);this._elements.set(r.id,i),Ni(r.parent)&&this._rootElements.add(i)}this._connections=new Map(e.edges.map(r=>[r.id,new L0.Connection(r,this)]))}_rootElements=new Set;_elements=new Map;_connections;get isDynamic(){return this.view.__==="dynamic"}get id(){return this.view.id}get title(){return this.view.title}get viewOf(){if(Ni(this.view.__)||this.view.__==="element"){const e=this.view;return e.viewOf?this.model.element(e.viewOf):null}return null}get tags(){return this.view.tags??[]}roots(){return[...this._rootElements]}elements(){return[...this._elements.values()]}element(e){return Qe(this._elements.get(e),`LikeC4DiagramModel.Element ${e} in view ${this.view.id} not found`)}hasElement(e){return this._elements.has(e)}connections(){return[...this._connections.values()]}connection(e){return Qe(this._connections.get(e),`Connection ${e} in view ${this.view.id} not found`)}findConnections(e,n,r="direct"){const i=it(e),s=it(n);return this.connections().filter(o=>o.source.id===i&&o.target.id===s||r==="both"&&o.source.id===s&&o.target.id===i)}parent(e){const n=this.element(it(e));return n.node.parent?this.element(n.node.parent):null}children(e){return this.element(it(e)).node.children.map(n=>this.element(n))}siblings(e){const n=it(e),r=this.parent(n);return(r?this.children(r):this.roots()).filter(i=>i.id!==n)}ancestors(e){let n=it(e);const r=[];let i;for(;i=this.parent(n);)r.push(i),n=i.id;return r}descendants(e){return this.children(e).flatMap(n=>[n,...this.descendants(n.id)])}incoming(e,n="all"){const r=this.element(it(e)),i=r.node.inEdges.map(s=>this.connection(s));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.target.id===r.id:s.target.id!==r.id)}incomers(e,n="all"){return this.incoming(e,n).map(r=>r.source)}outgoing(e,n="all"){const r=this.element(it(e)),i=r.node.outEdges.map(s=>this.connection(s));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.source.id===r.id:s.source.id!==r.id)}outgoers(e,n="all"){return this.outgoing(e,n).map(r=>r.target)}};(t=>{class e{constructor(i,s){this.node=i,this.view=s}get id(){return this.node.id}get title(){return this.node.title}get kind(){return this.node.kind}get isRoot(){return Ni(this.node.parent)}get hasNested(){return this.node.children.length>0}get shape(){return this.node.shape}get color(){return this.node.color}get tags(){return this.node.tags??[]}get level(){return this.node.level}get depth(){return this.node.depth??0}model(){return this.view.model.element(this.id)}parent(){return this.node.parent?this.view.element(this.node.parent):null}metadata(i,s){return this.model().metadata(i)??s}hasMetadata(i){return this.model().hasMetadata(i)}ancestors(){return this.view.ancestors(this)}siblings(){return this.view.siblings(this)}descendants(){return this.view.descendants(this)}children(){return this.view.children(this)}incoming(i="all"){return this.view.incoming(this,i)}incomers(i="all"){return this.view.incomers(this,i)}outgoing(i="all"){return this.view.outgoing(this,i)}outgoers(i="all"){return this.view.outgoers(this,i)}connectionsTo(i){return this.view.findConnections(this,i)}}t.Element=e;class n{constructor(i,s){this.edge=i,this.view=s}get id(){return this.edge.id}get source(){return this.view.element(this.edge.source)}get target(){return this.view.element(this.edge.target)}get tags(){return this.edge.tags??[]}get color(){return this.edge.color??Ts}relationships(){return this.edge.relations.map(i=>Qe(this.view.model.relationship(i)))}}t.Connection=n})(ja||(ja={}));let Nd=class M0{constructor(e,n){this.view=e,this.model=n;for(const r of e.nodes){const i=new M0.Element(r,this);this._elements.set(r.id,i),Ni(r.parent)&&this._rootElements.add(i)}this._connections=new Map(e.edges.map(r=>[r.id,new M0.Connection(r,this)]))}_rootElements=new Set;_elements=new Map;_connections;get id(){return this.view.id}get title(){return this.view.title}get viewOf(){return this.view.__!=="dynamic"&&this.view.viewOf?this.model.element(this.view.viewOf):null}get tags(){return this.view.tags??[]}roots(){return[...this._rootElements]}elements(){return[...this._elements.values()]}element(e){return Qe(this._elements.get(e),`LikeC4ViewModel.Element ${e} in view ${this.id} not found`)}hasElement(e){return this._elements.has(e)}connections(){return[...this._connections.values()]}connection(e){return Qe(this._connections.get(e),`Connection ${e} in view ${this.id} not found`)}findConnections(e,n,r="direct"){const i=it(e),s=it(n);return this.connections().filter(o=>o.source.id===i&&o.target.id===s||r==="both"&&o.source.id===s&&o.target.id===i)}parent(e){const n=this.element(it(e));return n.node.parent?this.element(n.node.parent):null}children(e){return this.element(it(e)).node.children.map(n=>this.element(n))}siblings(e){const n=it(e),r=this.parent(n);return(r?this.children(r):this.roots()).filter(i=>i.id!==n)}ancestors(e){let n=it(e);const r=[];let i;for(;i=this.parent(n);)r.push(i),n=i.id;return r}descendants(e){return this.children(e).flatMap(n=>[n,...this.descendants(n.id)])}incoming(e,n="all"){const r=this.element(it(e)),i=r.node.inEdges.map(s=>Qe(this._connections.get(s),`Edge ${s} not found`));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.target.id===r.id:s.target.id!==r.id)}incomers(e,n="all"){return[...new Set(this.incoming(e,n).map(r=>r.source))]}outgoing(e,n="all"){const r=this.element(it(e)),i=r.node.outEdges.map(s=>Qe(this._connections.get(s),`Edge ${s} not found`));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.source.id===r.id:s.source.id!==r.id)}outgoers(e,n="all"){return[...new Set(this.outgoing(e,n).map(r=>r.target))]}};(t=>{class e{constructor(i,s){this.node=i,this.viewmodel=s}get id(){return this.node.id}get title(){return this.node.title}get kind(){return this.node.kind}get isRoot(){return Ni(this.node.parent)}get hasNested(){return this.node.children.length>0}get shape(){return this.node.shape}get color(){return this.node.color}get tags(){return this.node.tags??[]}model(){return this.viewmodel.model.element(this.id)}parent(){return this.node.parent?this.viewmodel.element(this.node.parent):null}metadata(i,s){return this.model().metadata(i)??s}hasMetadata(i){return this.model().hasMetadata(i)}ancestors(){return this.viewmodel.ancestors(this)}siblings(){return this.viewmodel.siblings(this)}descendants(){return this.viewmodel.descendants(this)}children(){return this.viewmodel.children(this)}incoming(i="all"){return this.viewmodel.incoming(this,i)}incomers(i="all"){return this.viewmodel.incomers(this,i)}outgoing(i="all"){return this.viewmodel.outgoing(this,i)}outgoers(i="all"){return this.viewmodel.outgoers(this,i)}connectionsTo(i){return this.viewmodel.findConnections(this,i)}}t.Element=e;class n{constructor(i,s){this.edge=i,this.viewmodel=s}get id(){return this.edge.id}get source(){return this.viewmodel.element(this.edge.source)}get target(){return this.viewmodel.element(this.edge.target)}get tags(){return this.edge.tags??[]}relationships(){return this.edge.relations.map(i=>Qe(this.viewmodel.model.relationship(i)))}}t.Connection=n})(Nd||(Nd={}));let Ua=class z0{constructor(e,n,r,i,s,o){this.type=e,this.sourcemodel=n;for(const a of r)this.addElement(a);for(const a of i)this.addRelation(a);this._views=new Map(La(s).map(a=>[a.id,new o(a,this)]))}_elements=new Map;_parents=new Map;_children=new Map;_rootElements=new Set;_relations=new Map;_incoming=new Map;_outgoing=new Map;_internal=new Map;_cacheAscendingSiblings=new Map;_views;roots(){return[...this._rootElements]}elements(){return[...this._elements.values()]}element(e){return Qe(this._elements.get(e),`Element ${e} not found`)}relationships(){return[...this._relations.values()]}relationship(e){return Qe(this._relations.get(e),`Relation ${e} not found`)}views(){return[...this._views.values()]}view(e){return Qe(this._views.get(e),`View ${e} not found`)}parent(e){const n=it(e);return this._parents.get(n)||null}children(e){const n=it(e);return this._childrenOf(n)}siblings(e){const n=it(e),r=this._parents.get(n);return(r?this._childrenOf(r.id):this.roots()).filter(i=>i.id!==n)}ancestors(e){let n=Rs(e)?e:e.id;const r=[];let i;for(;i=this._parents.get(n);)r.push(i),n=i.id;return r}descendants(e){const n=it(e);return this._childrenOf(n).flatMap(r=>[r,...this.descendants(r.id)])}incoming(e,n="all"){const r=it(e),i=Array.from(this._incomingTo(r));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.target.id===r:s.target.id!==r)}incomers(e,n="all"){return[...new Set(this.incoming(e,n).map(r=>r.source))]}outgoing(e,n="all"){const r=it(e),i=Array.from(this._outgoingFrom(r));return n==="all"||i.length===0?i:i.filter(s=>n==="direct"?s.source.id===r:s.source.id!==r)}outgoers(e,n="all"){return[...new Set(this.outgoing(e,n).map(r=>r.target))]}internal(e){const n=it(e);return Array.from(this._internalOf(n))}ascendingSiblings(e){const n=it(e);let r=this._cacheAscendingSiblings.get(n);return r||(r=[...this.siblings(n),...this.ancestors(n).flatMap(i=>this.siblings(i.id))],this._cacheAscendingSiblings.set(n,r)),r.slice()}viewsWithElement(e){const n=it(e);return[...this._views.values()].filter(r=>r.hasElement(n))}addElement(e){if(this._elements.has(e.id))throw new Error(`Element ${e.id} already exists`);const n=new z0.ElementModel(e,this);this._elements.set(n.id,n);const r=kt(n.id);r?(this._parents.set(n.id,this.element(r)),this._childrenOf(r).push(n)):this._rootElements.add(n)}addRelation(e){if(this._relations.has(e.id))throw new Error(`Relation ${e.id} already exists`);const n=new z0.Relationship(e,this);this._relations.set(n.id,n),this._incomingTo(e.target).add(n),this._outgoingFrom(e.source).add(n);const r=ks(e.source,e.target);if(r)for(const i of[r,...Zr(r)])this._internalOf(i).add(n);for(const i of Zr(e.source)){if(i===r)break;this._outgoingFrom(i).add(n)}for(const i of Zr(e.target)){if(i===r)break;this._incomingTo(i).add(n)}}_childrenOf(e){let n=this._children.get(e);return n||(n=[],this._children.set(e,n)),n}_incomingTo(e){let n=this._incoming.get(e);return n||(n=new Set,this._incoming.set(e,n)),n}_outgoingFrom(e){let n=this._outgoing.get(e);return n||(n=new Set,this._outgoing.set(e,n)),n}_internalOf(e){let n=this._internal.get(e);return n||(n=new Set,this._internal.set(e,n)),n}};(t=>{function e(c){return c.__==="layouted"?t.layouted(c):t.computed(c)}t.create=e;function n(c){return new t("computed",c,La(c.elements),La(c.relations),c.views,Nd)}t.computed=n;function r(c){return new t("layouted",c,La(c.elements),La(c.relations),c.views,ja)}t.layouted=r;function i(c){return c instanceof t}t.isModel=i,(c=>{function u(l){return l instanceof ja}c.isLayouted=u})(t.ViewModel||(t.ViewModel={}));function s(c){return c.type==="layouted"}t.isLayouted=s;class o{constructor(u,l){this.relationship=u,this.model=l}get id(){return this.relationship.id}get title(){return this.relationship.title}get kind(){return this.relationship.kind??null}get tags(){return this.relationship.tags??[]}get source(){return this.model.element(this.relationship.source)}get target(){return this.model.element(this.relationship.target)}metadata(u,l){return this.relationship.metadata?.[u]??l}hasMetadata(u){return _E(this.relationship.metadata?.[u])}}t.Relationship=o;class a{constructor(u,l){this.element=u,this.model=l}get id(){return this.element.id}get title(){return this.element.title}get kind(){return this.element.kind}get isRoot(){return kt(this.element.id)===null}get hasNested(){return this.model.children(this).length>0}get shape(){return this.element.shape??Tm}get color(){return this.element.color??Oa}get tags(){return this.element.tags??[]}parent(){return this.model.parent(this)}metadata(u,l){return this.element.metadata?.[u]??l}hasMetadata(u){return _E(this.element.metadata?.[u])}ancestors(){return this.model.ancestors(this)}siblings(){return this.model.siblings(this)}descendants(){return this.model.descendants(this)}children(){return this.model.children(this)}viewsOf(){return this.model.views().filter(u=>u.viewOf?.id===this.id)}views(){return this.model.viewsWithElement(this)}incoming(u){return this.model.incoming(this,u)}incomers(u){return this.model.incomers(this,u)}outgoing(u){return this.model.outgoing(this,u)}outgoers(u){return this.model.outgoers(this,u)}internal(){return this.model.internal(this)}ascendingSiblings(){return this.model.ascendingSiblings(this)}}t.ElementModel=a})(Ua||(Ua={}));function QL(t,e,n){return t.length===0||e.length===0?[]:(n??=Object.is,vO(pO(t,e),DO(([r,i])=>n(r,i)),Dd(([r,i])=>r)))}const eM="LIKEC4_DELAY";function PD(...t){let e=100;return t.length===2?e=RO(t[0],t[1]):t.length===1&&(e=t[0]),new Promise(n=>{setTimeout(()=>{n(eM)},e??100)})}const Ga=(t,e)=>{const n=ks(t.source,t.target),r=ks(e.source,e.target);if(n&&!r)return 1;if(!n&&r)return-1;const i=n&&r?ko(n,r):0;if(i!==0)return i;const s=ko(t.source,e.source);return s!==0?s:ko(t.target,e.target)};function vt(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function Wn(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function tM(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function Od(t){return typeof t=="object"&&t!==null&&vt(t.container)&&Wn(t.reference)&&typeof t.message=="string"}class ND{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,n){return vt(e)&&this.isSubtype(e.$type,n)}isSubtype(e,n){if(e===n)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[n];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,n);return r[n]=s,s}}getAllSubTypes(e){const n=this.allSubtypes[e];if(n)return n;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function ri(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function Cs(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function OD(t){return ri(t)&&typeof t.fullText=="string"}class xt{constructor(e,n){this.startFn=e,this.nextFn=n}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let n=0,r=e.next();for(;!r.done;)n++,r=e.next();return n}toArray(){const e=[],n=this.iterator();let r;do r=n.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,n){const r=this.map(i=>[e?e(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new xt(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return Yt})}join(e=","){const n=this.iterator();let r="",i,s=!1;do i=n.next(),i.done||(s&&(r+=e),r+=nM(i.value)),s=!0;while(!i.done);return r}indexOf(e,n=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=n&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(!e(r.value))return!1;r=n.next()}return!0}some(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return!0;r=n.next()}return!1}forEach(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;)e(i.value,r),i=n.next(),r++}map(e){return new xt(this.startFn,n=>{const{done:r,value:i}=this.nextFn(n);return r?Yt:{done:!1,value:e(i)}})}filter(e){return new xt(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&e(r.value))return r;while(!r.done);return Yt})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,n){const r=this.iterator();let i=n,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,n){return this.recursiveReduce(this.iterator(),e,n)}recursiveReduce(e,n,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,n,r);return s===void 0?i.value:n(s,i.value)}find(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return r.value;r=n.next()}}findIndex(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(e(i.value))return r;i=n.next(),r++}return-1}includes(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(r.value===e)return!0;r=n.next()}return!1}flatMap(e){return new xt(()=>({this:this.startFn()}),n=>{do{if(n.iterator){const s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(n.this);if(!r){const s=e(i);if(Fd(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(n.iterator);return Yt})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const n=e>1?this.flat(e-1):this;return new xt(()=>({this:n.startFn()}),r=>{do{if(r.iterator){const o=r.iterator.next();if(o.done)r.iterator=void 0;else return o}const{done:i,value:s}=n.nextFn(r.this);if(!i)if(Fd(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Yt})}head(){const n=this.iterator().next();if(!n.done)return n.value}tail(e=1){return new xt(()=>{const n=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(e){return new xt(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>e?Yt:this.nextFn(n.state)))}distinct(e){return new xt(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){const i=e?e(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return Yt})}exclude(e,n){const r=new Set;for(const i of e){const s=n?n(i):i;r.add(s)}return this.filter(i=>{const s=n?n(i):i;return!r.has(s)})}}function nM(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function Fd(t){return!!t&&typeof t[Symbol.iterator]=="function"}const Fo=new xt(()=>{},()=>Yt),Yt=Object.freeze({done:!0,value:void 0});function et(...t){if(t.length===1){const e=t[0];if(e instanceof xt)return e;if(Fd(e))return new xt(()=>e[Symbol.iterator](),n=>n.next());if(typeof e.length=="number")return new xt(()=>({index:0}),n=>n.index<e.length?{done:!1,value:e[n.index++]}:Yt)}return t.length>1?new xt(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const n=e.iterator.next();if(!n.done)return n;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){const n=t[e.collIndex++];Fd(n)?e.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(e.array=n)}}while(e.iterator||e.array||e.collIndex<t.length);return Yt}):Fo}class Lo extends xt{constructor(e,n,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[n(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const o=i.iterators[i.iterators.length-1].next();if(o.done)i.iterators.pop();else return i.iterators.push(n(o.value)[Symbol.iterator]()),o}return Yt})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ig;(function(t){function e(s){return s.reduce((o,a)=>o+a,0)}t.sum=e;function n(s){return s.reduce((o,a)=>o*a,0)}t.product=n;function r(s){return s.reduce((o,a)=>Math.min(o,a))}t.min=r;function i(s){return s.reduce((o,a)=>Math.max(o,a))}t.max=i})(ig||(ig={}));function Wa(t){return new Lo(t,e=>ri(e)?e.content:[],{includeRoot:!0})}function FD(t){return Wa(t).filter(Cs)}function LD(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function Ld(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Ha(t){if(!t)return;const{offset:e,end:n,range:r}=t;return{range:r,offset:e,end:n,length:n-e}}var _r;(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(_r||(_r={}));function MD(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return _r.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return _r.After;const n=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,r=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return n&&r?_r.Inside:n?_r.OverlapBack:r?_r.OverlapFront:_r.Outside}function sg(t,e){return MD(t,e)>_r.After}const og=/^[\w\p{L}]$/u;function Li(t,e,n=og){if(t){if(e>0){const r=e-t.offset,i=t.text.charAt(r);n.test(i)||e--}return cg(t,e)}}function Md(t,e){if(t){const n=BD(t,!0);if(n&&ag(n,e))return n;if(OD(t)){const r=t.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=t.content[i];if(ag(s,e))return s}}}}function ag(t,e){return Cs(t)&&e.includes(t.tokenType.name)}function cg(t,e){if(Cs(t))return t;if(ri(t)){const n=zD(t,e,!1);if(n)return cg(n,e)}}function zd(t,e){if(Cs(t))return t;if(ri(t)){const n=zD(t,e,!0);if(n)return zd(n,e)}}function zD(t,e,n){let r=0,i=t.content.length-1,s;for(;r<=i;){const o=Math.floor((r+i)/2),a=t.content[o];if(a.offset<=e&&a.end>e)return a;a.end<=e?(s=n?a:void 0,r=o+1):i=o-1}return s}function BD(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);for(;r>0;){r--;const i=n.content[r];if(e||!i.hidden)return i}t=n}}function qD(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);const i=n.content.length-1;for(;r<i;){r++;const s=n.content[r];if(e||!s.hidden)return s}t=n}}function rM(t){if(t.range.start.character===0)return t;const e=t.range.start.line;let n=t,r;for(;t.container;){const i=t.container,s=r??i.content.indexOf(t);if(s===0?(t=i,r=void 0):(r=s-1,t=i.content[r]),t.range.start.line!==e)break;n=t}return n}function jD(t,e){const n=iM(t,e);return n?n.parent.content.slice(n.a+1,n.b):[]}function iM(t,e){const n=UD(t),r=UD(e);let i;for(let s=0;s<n.length&&s<r.length;s++){const o=n[s],a=r[s];if(o.parent===a.parent)i={parent:o.parent,a:o.index,b:a.index};else break}return i}function UD(t){const e=[];for(;t.container;){const n=t.container,r=n.content.indexOf(t);e.push({parent:n,index:r}),t=n}return e.reverse()}const sM={__proto__:null,DefaultNameRegexp:og,get RangeComparison(){return _r},compareRange:MD,findCommentNode:Md,findDeclarationNodeAtOffset:Li,findLeafNodeAtOffset:cg,findLeafNodeBeforeOffset:zd,flattenCst:FD,getInteriorNodes:jD,getNextNode:qD,getPreviousNode:BD,getStartlineNode:rM,inRange:sg,isChildNode:LD,isCommentNode:ag,streamCst:Wa,toDocumentSegment:Ha,tokenToRange:Ld};class GD extends Error{constructor(e,n){super(e?`${n} at ${e.range.start.line}:${e.range.start.character}`:n)}}function Bd(t){throw new Error("Error! The input value was not handled.")}const qd="AbstractRule",jd="AbstractType",ug="Condition",WD="TypeDefinition",lg="ValueLiteral",Va="AbstractElement";function dg(t){return ze.isInstance(t,Va)}const Ud="ArrayLiteral",Ka="ArrayType";function oM(t){return ze.isInstance(t,Ka)}const Ya="BooleanLiteral";function aM(t){return ze.isInstance(t,Ya)}const Xa="Conjunction";function cM(t){return ze.isInstance(t,Xa)}const Ja="Disjunction";function uM(t){return ze.isInstance(t,Ja)}const Gd="Grammar",fg="GrammarImport",Za="InferredType";function HD(t){return ze.isInstance(t,Za)}const Qa="Interface";function VD(t){return ze.isInstance(t,Qa)}const hg="NamedArgument",ec="Negation";function lM(t){return ze.isInstance(t,ec)}const Wd="NumberLiteral",Hd="Parameter",tc="ParameterReference";function dM(t){return ze.isInstance(t,tc)}const nc="ParserRule";function Xt(t){return ze.isInstance(t,nc)}const rc="ReferenceType";function fM(t){return ze.isInstance(t,rc)}const Vd="ReturnType";function hM(t){return ze.isInstance(t,Vd)}const ic="SimpleType";function KD(t){return ze.isInstance(t,ic)}const Kd="StringLiteral",Mo="TerminalRule";function ii(t){return ze.isInstance(t,Mo)}const sc="Type";function pg(t){return ze.isInstance(t,sc)}const mg="TypeAttribute",oc="UnionType";function pM(t){return ze.isInstance(t,oc)}const ac="Action";function _s(t){return ze.isInstance(t,ac)}const cc="Alternatives";function gg(t){return ze.isInstance(t,cc)}const uc="Assignment";function Ar(t){return ze.isInstance(t,uc)}const lc="CharacterRange";function mM(t){return ze.isInstance(t,lc)}const dc="CrossReference";function fc(t){return ze.isInstance(t,dc)}const hc="EndOfFile";function gM(t){return ze.isInstance(t,hc)}const pc="Group";function Mi(t){return ze.isInstance(t,pc)}const mc="Keyword";function xr(t){return ze.isInstance(t,mc)}const gc="NegatedToken";function yM(t){return ze.isInstance(t,gc)}const yc="RegexToken";function vM(t){return ze.isInstance(t,yc)}const vc="RuleCall";function si(t){return ze.isInstance(t,vc)}const wc="TerminalAlternatives";function wM(t){return ze.isInstance(t,wc)}const bc="TerminalGroup";function bM(t){return ze.isInstance(t,bc)}const Ec="TerminalRuleCall";function YD(t){return ze.isInstance(t,Ec)}const Dc="UnorderedGroup";function yg(t){return ze.isInstance(t,Dc)}const Tc="UntilToken";function EM(t){return ze.isInstance(t,Tc)}const Rc="Wildcard";function DM(t){return ze.isInstance(t,Rc)}class XD extends ND{getAllTypes(){return[Va,qd,jd,ac,cc,Ud,Ka,uc,Ya,lc,ug,Xa,dc,Ja,hc,Gd,fg,pc,Za,Qa,mc,hg,gc,ec,Wd,Hd,tc,nc,rc,yc,Vd,vc,ic,Kd,wc,bc,Mo,Ec,sc,mg,WD,oc,Dc,Tc,lg,Rc]}computeIsSubtype(e,n){switch(e){case ac:case cc:case uc:case lc:case dc:case hc:case pc:case mc:case gc:case yc:case vc:case wc:case bc:case Ec:case Dc:case Tc:case Rc:return this.isSubtype(Va,n);case Ud:case Wd:case Kd:return this.isSubtype(lg,n);case Ka:case rc:case ic:case oc:return this.isSubtype(WD,n);case Ya:return this.isSubtype(ug,n)||this.isSubtype(lg,n);case Xa:case Ja:case ec:case tc:return this.isSubtype(ug,n);case Za:case Qa:case sc:return this.isSubtype(jd,n);case nc:return this.isSubtype(qd,n)||this.isSubtype(jd,n);case Mo:return this.isSubtype(qd,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return jd;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return qd;case"Grammar:usedGrammars":return Gd;case"NamedArgument:parameter":case"ParameterReference:parameter":return Hd;case"TerminalRuleCall:rule":return Mo;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Va:return{name:Va,properties:[{name:"cardinality"},{name:"lookahead"}]};case Ud:return{name:Ud,properties:[{name:"elements",defaultValue:[]}]};case Ka:return{name:Ka,properties:[{name:"elementType"}]};case Ya:return{name:Ya,properties:[{name:"true",defaultValue:!1}]};case Xa:return{name:Xa,properties:[{name:"left"},{name:"right"}]};case Ja:return{name:Ja,properties:[{name:"left"},{name:"right"}]};case Gd:return{name:Gd,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case fg:return{name:fg,properties:[{name:"path"}]};case Za:return{name:Za,properties:[{name:"name"}]};case Qa:return{name:Qa,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case hg:return{name:hg,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case ec:return{name:ec,properties:[{name:"value"}]};case Wd:return{name:Wd,properties:[{name:"value"}]};case Hd:return{name:Hd,properties:[{name:"name"}]};case tc:return{name:tc,properties:[{name:"parameter"}]};case nc:return{name:nc,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case rc:return{name:rc,properties:[{name:"referenceType"}]};case Vd:return{name:Vd,properties:[{name:"name"}]};case ic:return{name:ic,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Kd:return{name:Kd,properties:[{name:"value"}]};case Mo:return{name:Mo,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case sc:return{name:sc,properties:[{name:"name"},{name:"type"}]};case mg:return{name:mg,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case oc:return{name:oc,properties:[{name:"types",defaultValue:[]}]};case ac:return{name:ac,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case cc:return{name:cc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case uc:return{name:uc,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case lc:return{name:lc,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case dc:return{name:dc,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case hc:return{name:hc,properties:[{name:"cardinality"},{name:"lookahead"}]};case pc:return{name:pc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case mc:return{name:mc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case gc:return{name:gc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case yc:return{name:yc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case vc:return{name:vc,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case wc:return{name:wc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bc:return{name:bc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Ec:return{name:Ec,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Dc:return{name:Dc,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Tc:return{name:Tc,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Rc:return{name:Rc,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const ze=new XD;function vg(t){for(const[e,n]of Object.entries(t))e.startsWith("$")||(Array.isArray(n)?n.forEach((r,i)=>{vt(r)&&(r.$container=t,r.$containerProperty=e,r.$containerIndex=i)}):vt(n)&&(n.$container=t,n.$containerProperty=e))}function wn(t,e){let n=t;for(;n;){if(e(n))return n;n=n.$container}}function Sc(t,e){let n=t;for(;n;){if(e(n))return!0;n=n.$container}return!1}function sn(t){const n=Yd(t).$document;if(!n)throw new Error("AST node has no document.");return n}function Yd(t){for(;t.$container;)t=t.$container;return t}function kc(t,e){if(!t)throw new Error("Node must be an AstNode.");const n=e?.range;return new xt(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=t[i];if(vt(s)){if(r.keyIndex++,wg(s,n))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const o=r.arrayIndex++,a=s[o];if(vt(a)&&wg(a,n))return{done:!1,value:a}}r.arrayIndex=0}}r.keyIndex++}return Yt})}function Ir(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Lo(t,n=>kc(n,e))}function oi(t,e){if(t){if(e?.range&&!wg(t,e.range))return new Lo(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Lo(t,n=>kc(n,e),{includeRoot:!0})}function wg(t,e){var n;if(!e)return!0;const r=(n=t.$cstNode)===null||n===void 0?void 0:n.range;return r?sg(r,e):!1}function Xd(t){return new xt(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const n=e.keys[e.keyIndex];if(!n.startsWith("$")){const r=t[n];if(Wn(r))return e.keyIndex++,{done:!1,value:{reference:r,container:t,property:n}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Wn(s))return{done:!1,value:{reference:s,container:t,property:n,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Yt})}function TM(t,e=sn(t).parseResult.value){const n=[];return oi(e).forEach(r=>{Xd(r).forEach(i=>{i.reference.ref===t&&n.push(i.reference)})}),et(n)}function bg(t,e){const n=t.getTypeMetaData(e.$type),r=e;for(const i of n.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=JD(i.defaultValue))}function JD(t){return Array.isArray(t)?[...t.map(JD)]:t}function Eg(t,e){const n={$type:t.$type};for(const[r,i]of Object.entries(t))if(!r.startsWith("$"))if(vt(i))n[r]=Eg(i,e);else if(Wn(i))n[r]=e(n,r,i.$refNode,i.$refText);else if(Array.isArray(i)){const s=[];for(const o of i)vt(o)?s.push(Eg(o,e)):Wn(o)?s.push(e(n,r,o.$refNode,o.$refText)):s.push(o);n[r]=s}else n[r]=i;return vg(n),n}const Jd={__proto__:null,assignMandatoryProperties:bg,copyAstNode:Eg,findLocalReferences:TM,findRootNode:Yd,getContainerOfType:wn,getDocument:sn,hasContainerOfType:Sc,linkContentToContainer:vg,streamAllContents:Ir,streamAst:oi,streamContents:kc,streamReferences:Xd};function De(t){return t.charCodeAt(0)}function Dg(t,e){Array.isArray(t)?t.forEach(function(n){e.push(n)}):e.push(t)}function $c(t,e){if(t[e]===!0)throw"duplicate flag "+e;t[e],t[e]=!0}function zo(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function RM(){throw Error("Internal Error - Should never get here!")}function ZD(t){return t.type==="Character"}const Zd=[];for(let t=De("0");t<=De("9");t++)Zd.push(t);const Qd=[De("_")].concat(Zd);for(let t=De("a");t<=De("z");t++)Qd.push(t);for(let t=De("A");t<=De("Z");t++)Qd.push(t);const QD=[De(" "),De("\f"),De(`
2
+ `),De("\r"),De(" "),De("\v"),De(" "),De("\xA0"),De("\u1680"),De("\u2000"),De("\u2001"),De("\u2002"),De("\u2003"),De("\u2004"),De("\u2005"),De("\u2006"),De("\u2007"),De("\u2008"),De("\u2009"),De("\u200A"),De("\u2028"),De("\u2029"),De("\u202F"),De("\u205F"),De("\u3000"),De("\uFEFF")],SM=/[0-9a-fA-F]/,ef=/[0-9]/,kM=/[1-9]/;class eT{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const n=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":$c(r,"global");break;case"i":$c(r,"ignoreCase");break;case"m":$c(r,"multiLine");break;case"u":$c(r,"unicode");break;case"y":$c(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:n,loc:this.loc(0)}}disjunction(){const e=[],n=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(n)}}alternative(){const e=[],n=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(n)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let n;switch(this.popChar()){case"=":n="Lookahead";break;case"!":n="NegativeLookahead";break}zo(n);const r=this.disjunction();return this.consumeChar(")"),{type:n,value:r,loc:this.loc(e)}}return RM()}quantifier(e=!1){let n;const r=this.idx;switch(this.popChar()){case"*":n={atLeast:0,atMost:1/0};break;case"+":n={atLeast:1,atMost:1/0};break;case"?":n={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":n={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),n={atLeast:i,atMost:s}):n={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&n===void 0)return;zo(n);break}if(!(e===!0&&n===void 0)&&zo(n))return this.peekChar(0)==="?"?(this.consumeChar("?"),n.greedy=!1):n.greedy=!0,n.type="Quantifier",n.loc=this.loc(r),n}atom(){let e;const n=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),zo(e))return e.loc=this.loc(n),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[De(`
3
+ `),De("\r"),De("\u2028"),De("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,n=!1;switch(this.popChar()){case"d":e=Zd;break;case"D":e=Zd,n=!0;break;case"s":e=QD;break;case"S":e=QD,n=!0;break;case"w":e=Qd;break;case"W":e=Qd,n=!0;break}if(zo(e))return{type:"Set",value:e,complement:n}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=De("\f");break;case"n":e=De(`
4
+ `);break;case"r":e=De("\r");break;case"t":e=De(" ");break;case"v":e=De("\v");break}if(zo(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:De("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:De(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
5
+ `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:De(e)}}}characterClass(){const e=[];let n=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),n=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,ZD(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,ZD(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Dg(r.value,e),e.push(De("-")),Dg(i.value,e)}else Dg(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:n,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
6
+ `:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:De("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}const n=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:n};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(kM.test(e)===!1)throw Error("Expecting a positive integer");for(;ef.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(ef.test(e)===!1)throw Error("Expecting an integer");for(;ef.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
7
+ `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:De(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return ef.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
8
+ `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}}isQuantifier(){const e=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
9
+ `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let n="";for(let i=0;i<e;i++){const s=this.popChar();if(SM.test(s)===!1)throw Error("Expecting a HexDecimal digits");n+=s}return{type:"Character",value:parseInt(n,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class tf{visitChildren(e){for(const n in e){const r=e[n];e.hasOwnProperty(n)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const tT=/\r?\n/gm,$M=new eT;class CM extends tf{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const n=String.fromCharCode(e.value);if(!this.multiline&&n===`
10
+ `&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=nf(n);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const n=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(n);this.multiline=!!`
11
+ `.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const n=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}}const Tg=new CM;function _M(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),Tg.reset(t),Tg.visit($M.pattern(t)),Tg.multiline}catch{return!1}}const AM=`\f
12
+ \r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");function Rg(t){const e=typeof t=="string"?new RegExp(t):t;return AM.some(n=>e.test(n))}function nf(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function xM(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:nf(e)).join("")}function IM(t,e){const n=PM(t),r=e.match(n);return!!r&&r[0].length>0}function PM(t){typeof t=="string"&&(t=new RegExp(t));const e=t,n=t.source;let r=0;function i(){let s="",o;function a(u){s+=n.substr(r,u),r+=u}function c(u){s+="(?:"+n.substr(r,u)+"|$)",r+=u}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":c(3);break;case"x":c(4);break;case"u":e.unicode?n[r+2]==="{"?c(n.indexOf("}",r)-r+1):c(6):c(2);break;case"p":case"P":e.unicode?c(n.indexOf("}",r)-r+1):c(2);break;case"k":c(n.indexOf(">",r)-r+1);break;default:c(2);break}break;case"[":o=/\[(?:\\.|.)*?\]/g,o.lastIndex=r,o=o.exec(n)||[],c(o[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":o=/\{\d+,?\d*\}/g,o.lastIndex=r,o=o.exec(n),o?a(o[0].length):c(1);break;case"(":if(n[r+1]==="?")switch(n[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":o=r,r+=3,i(),s+=n.substr(o,r-o);break;case"<":switch(n[r+3]){case"=":case"!":o=r,r+=4,i(),s+=n.substr(o,r-o);break;default:a(n.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else a(1),s+=i()+"|$)";break;case")":return++r,s;default:c(1);break}return s}return new RegExp(i(),t.flags)}function rf(t){return t.rules.find(e=>Xt(e)&&e.entry)}function nT(t){return t.rules.filter(e=>ii(e)&&e.hidden)}function Sg(t,e){const n=new Set,r=rf(t);if(!r)return new Set(t.rules);const i=[r].concat(nT(t));for(const o of i)rT(o,n,e);const s=new Set;for(const o of t.rules)(n.has(o.name)||ii(o)&&o.hidden)&&s.add(o);return s}function rT(t,e,n){e.add(t.name),Ir(t).forEach(r=>{if(si(r)||n&&YD(r)){const i=r.rule.ref;i&&!e.has(i.name)&&rT(i,e,n)}})}function kg(t){if(t.terminal)return t.terminal;if(t.type.ref){const e=Ag(t.type.ref);return e?.terminal}}function iT(t){return t.hidden&&!Rg(Ac(t))}function Bo(t,e){return!t||!e?[]:$g(t,e,t.astNode,!0)}function An(t,e,n){if(!t||!e)return;const r=$g(t,e,t.astNode,!0);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function $g(t,e,n,r){if(!r){const i=wn(t.grammarSource,Ar);if(i&&i.feature===e)return[t]}return ri(t)&&t.astNode===n?t.content.flatMap(i=>$g(i,e,n,!1)):[]}function Cg(t,e){return t?_g(t,e,t?.astNode):[]}function Cc(t,e,n){if(!t)return;const r=_g(t,e,t?.astNode);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function _g(t,e,n){if(t.astNode!==n)return[];if(xr(t.grammarSource)&&t.grammarSource.value===e)return[t];const r=Wa(t).iterator();let i;const s=[];do if(i=r.next(),!i.done){const o=i.value;o.astNode===n?xr(o.grammarSource)&&o.grammarSource.value===e&&s.push(o):r.prune()}while(!i.done);return s}function sT(t){var e;const n=t.astNode;for(;n===((e=t.container)===null||e===void 0?void 0:e.astNode);){const r=wn(t.grammarSource,Ar);if(r)return r;t=t.container}}function Ag(t){let e=t;return HD(e)&&(_s(e.$container)?e=e.$container.$container:Xt(e.$container)?e=e.$container:Bd(e.$container)),oT(t,e,new Map)}function oT(t,e,n){var r;function i(s,o){let a;return wn(s,Ar)||(a=oT(o,o,n)),n.set(t,a),a}if(n.has(t))return n.get(t);n.set(t,void 0);for(const s of Ir(e)){if(Ar(s)&&s.feature.toLowerCase()==="name")return n.set(t,s),s;if(si(s)&&Xt(s.rule.ref))return i(s,s.rule.ref);if(KD(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function aT(t){const e=t.$container;if(Mi(e)){const n=e.elements,r=n.indexOf(t);for(let i=r-1;i>=0;i--){const s=n[i];if(_s(s))return s;{const o=Ir(n[i]).find(_s);if(o)return o}}}if(dg(e))return aT(e)}function qo(t,e){return t==="?"||t==="*"||Mi(e)&&!!e.guardCondition}function cT(t){return t==="*"||t==="+"}function NM(t){return t==="+="}function sf(t){return uT(t,new Set)}function uT(t,e){if(e.has(t))return!0;e.add(t);for(const n of Ir(t))if(si(n)){if(!n.rule.ref||Xt(n.rule.ref)&&!uT(n.rule.ref,e))return!1}else{if(Ar(n))return!1;if(_s(n))return!1}return!!t.definition}function OM(t){return xg(t.type,new Set)}function xg(t,e){if(e.has(t))return!0;if(e.add(t),oM(t))return!1;if(fM(t))return!1;if(pM(t))return t.types.every(n=>xg(n,e));if(KD(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){const n=t.typeRef.ref;return pg(n)?xg(n.type,e):!1}else return!1}else return!1}function As(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){const e=t.returnType.ref;if(e){if(Xt(e))return e.name;if(VD(e)||pg(e))return e.name}}}function _c(t){var e;if(Xt(t))return sf(t)?t.name:(e=As(t))!==null&&e!==void 0?e:t.name;if(VD(t)||pg(t)||hM(t))return t.name;if(_s(t)){const n=lT(t);if(n)return n}else if(HD(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function lT(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return _c(t.type.ref)}function FM(t){var e,n,r;return ii(t)?(n=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:"string":sf(t)?t.name:(r=As(t))!==null&&r!==void 0?r:t.name}function dT(t){var e,n,r;return ii(t)?(n=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:"string":(r=As(t))!==null&&r!==void 0?r:t.name}function Ac(t){const e={s:!1,i:!1,u:!1},n=jo(t.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(n,r)}const Ig=/[\s\S]/.source;function jo(t,e){if(wM(t))return LM(t);if(bM(t))return MM(t);if(mM(t))return qM(t);if(YD(t)){const n=t.rule.ref;if(!n)throw new Error("Missing rule reference.");return ai(jo(n.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if(yM(t))return BM(t);if(EM(t))return zM(t);if(vM(t)){const n=t.regex.lastIndexOf("/"),r=t.regex.substring(1,n),i=t.regex.substring(n+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),ai(r,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(DM(t))return ai(Ig,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t?.$type}`)}}}function LM(t){return ai(t.elements.map(e=>jo(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function MM(t){return ai(t.elements.map(e=>jo(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function zM(t){return ai(`${Ig}*?${jo(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function BM(t){return ai(`(?!${jo(t.terminal)})${Ig}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function qM(t){return t.right?ai(`[${Pg(t.left)}-${Pg(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):ai(Pg(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function Pg(t){return nf(t.value)}function ai(t,e){var n;return(e.wrap!==!1||e.lookahead)&&(t=`(${(n=e.lookahead)!==null&&n!==void 0?n:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}const of={__proto__:null,findAssignment:sT,findNameAssignment:Ag,findNodeForKeyword:Cc,findNodeForProperty:An,findNodesForKeyword:Cg,findNodesForKeywordInternal:_g,findNodesForProperty:Bo,getActionAtElement:aT,getActionType:lT,getAllReachableRules:Sg,getCrossReferenceTerminal:kg,getEntryRule:rf,getExplicitRuleType:As,getHiddenRules:nT,getRuleType:dT,getRuleTypeName:FM,getTypeName:_c,isArrayCardinality:cT,isArrayOperator:NM,isCommentTerminal:iT,isDataType:OM,isDataTypeRule:sf,isOptionalCardinality:qo,terminalRegex:Ac};function jM(t){const e=[],n=t.Grammar;for(const r of n.rules)ii(r)&&iT(r)&&_M(Ac(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:og}}var fT=typeof global=="object"&&global&&global.Object===Object&&global,UM=typeof self=="object"&&self&&self.Object===Object&&self,Pr=fT||UM||Function("return this")(),Hn=Pr.Symbol,hT=Object.prototype,GM=hT.hasOwnProperty,WM=hT.toString,xc=Hn?Hn.toStringTag:void 0;function HM(t){var e=GM.call(t,xc),n=t[xc];try{t[xc]=void 0;var r=!0}catch{}var i=WM.call(t);return r&&(e?t[xc]=n:delete t[xc]),i}var VM=Object.prototype,KM=VM.toString;function YM(t){return KM.call(t)}var XM="[object Null]",JM="[object Undefined]",pT=Hn?Hn.toStringTag:void 0;function zi(t){return t==null?t===void 0?JM:XM:pT&&pT in Object(t)?HM(t):YM(t)}function ur(t){return t!=null&&typeof t=="object"}var ZM="[object Symbol]";function Ic(t){return typeof t=="symbol"||ur(t)&&zi(t)==ZM}function af(t,e){for(var n=-1,r=t==null?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}var Be=Array.isArray,QM=1/0,mT=Hn?Hn.prototype:void 0,gT=mT?mT.toString:void 0;function yT(t){if(typeof t=="string")return t;if(Be(t))return af(t,yT)+"";if(Ic(t))return gT?gT.call(t):"";var e=t+"";return e=="0"&&1/t==-QM?"-0":e}var e3=/\s/;function t3(t){for(var e=t.length;e--&&e3.test(t.charAt(e)););return e}var n3=/^\s+/;function r3(t){return t&&t.slice(0,t3(t)+1).replace(n3,"")}function Vn(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var vT=NaN,i3=/^[-+]0x[0-9a-f]+$/i,s3=/^0b[01]+$/i,o3=/^0o[0-7]+$/i,a3=parseInt;function c3(t){if(typeof t=="number")return t;if(Ic(t))return vT;if(Vn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Vn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=r3(t);var n=s3.test(t);return n||o3.test(t)?a3(t.slice(2),n?2:8):i3.test(t)?vT:+t}var wT=1/0,u3=17976931348623157e292;function l3(t){if(!t)return t===0?t:0;if(t=c3(t),t===wT||t===-wT){var e=t<0?-1:1;return e*u3}return t===t?t:0}function cf(t){var e=l3(t),n=e%1;return e===e?n?e-n:e:0}function xs(t){return t}var d3="[object AsyncFunction]",f3="[object Function]",h3="[object GeneratorFunction]",p3="[object Proxy]";function ci(t){if(!Vn(t))return!1;var e=zi(t);return e==f3||e==h3||e==d3||e==p3}var Ng=Pr["__core-js_shared__"],bT=function(){var t=/[^.]+$/.exec(Ng&&Ng.keys&&Ng.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function m3(t){return!!bT&&bT in t}var g3=Function.prototype,y3=g3.toString;function Is(t){if(t!=null){try{return y3.call(t)}catch{}try{return t+""}catch{}}return""}var v3=/[\\^$.*+?()[\]{}|]/g,w3=/^\[object .+?Constructor\]$/,b3=Function.prototype,E3=Object.prototype,D3=b3.toString,T3=E3.hasOwnProperty,R3=RegExp("^"+D3.call(T3).replace(v3,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function S3(t){if(!Vn(t)||m3(t))return!1;var e=ci(t)?R3:w3;return e.test(Is(t))}function k3(t,e){return t?.[e]}function Ps(t,e){var n=k3(t,e);return S3(n)?n:void 0}var Og=Ps(Pr,"WeakMap"),ET=Object.create,$3=function(){function t(){}return function(e){if(!Vn(e))return{};if(ET)return ET(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function C3(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function Pt(){}function _3(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}var A3=800,x3=16,I3=Date.now;function P3(t){var e=0,n=0;return function(){var r=I3(),i=x3-(r-n);if(n=r,i>0){if(++e>=A3)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function N3(t){return function(){return t}}var uf=function(){try{var t=Ps(Object,"defineProperty");return t({},"",{}),t}catch{}}(),O3=uf?function(t,e){return uf(t,"toString",{configurable:!0,enumerable:!1,value:N3(e),writable:!0})}:xs,F3=P3(O3);function DT(t,e){for(var n=-1,r=t==null?0:t.length;++n<r&&e(t[n],n,t)!==!1;);return t}function TT(t,e,n,r){for(var i=t.length,s=n+-1;++s<i;)if(e(t[s],s,t))return s;return-1}function L3(t){return t!==t}function M3(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}function Fg(t,e,n){return e===e?M3(t,e,n):TT(t,L3,n)}function RT(t,e){var n=t==null?0:t.length;return!!n&&Fg(t,e,0)>-1}var z3=9007199254740991,B3=/^(?:0|[1-9]\d*)$/;function lf(t,e){var n=typeof t;return e=e??z3,!!e&&(n=="number"||n!="symbol"&&B3.test(t))&&t>-1&&t%1==0&&t<e}function Lg(t,e,n){e=="__proto__"&&uf?uf(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Pc(t,e){return t===e||t!==t&&e!==e}var q3=Object.prototype,j3=q3.hasOwnProperty;function df(t,e,n){var r=t[e];(!(j3.call(t,e)&&Pc(r,n))||n===void 0&&!(e in t))&&Lg(t,e,n)}function Mg(t,e,n,r){var i=!n;n||(n={});for(var s=-1,o=e.length;++s<o;){var a=e[s],c=void 0;c===void 0&&(c=t[a]),i?Lg(n,a,c):df(n,a,c)}return n}var ST=Math.max;function U3(t,e,n){return e=ST(e===void 0?t.length-1:e,0),function(){for(var r=arguments,i=-1,s=ST(r.length-e,0),o=Array(s);++i<s;)o[i]=r[e+i];i=-1;for(var a=Array(e+1);++i<e;)a[i]=r[i];return a[e]=n(o),C3(t,this,a)}}function zg(t,e){return F3(U3(t,e,xs),t+"")}var G3=9007199254740991;function Bg(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=G3}function Nr(t){return t!=null&&Bg(t.length)&&!ci(t)}function kT(t,e,n){if(!Vn(n))return!1;var r=typeof e;return(r=="number"?Nr(n)&&lf(e,n.length):r=="string"&&e in n)?Pc(n[e],t):!1}function W3(t){return zg(function(e,n){var r=-1,i=n.length,s=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(s=t.length>3&&typeof s=="function"?(i--,s):void 0,o&&kT(n[0],n[1],o)&&(s=i<3?void 0:s,i=1),e=Object(e);++r<i;){var a=n[r];a&&t(e,a,r,s)}return e})}var H3=Object.prototype;function Nc(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||H3;return t===n}function V3(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}var K3="[object Arguments]";function $T(t){return ur(t)&&zi(t)==K3}var CT=Object.prototype,Y3=CT.hasOwnProperty,X3=CT.propertyIsEnumerable,ff=$T(function(){return arguments}())?$T:function(t){return ur(t)&&Y3.call(t,"callee")&&!X3.call(t,"callee")},J3=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ui(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}function Z3(){return!1}var _T=typeof exports=="object"&&exports&&!exports.nodeType&&exports,AT=_T&&typeof module=="object"&&module&&!module.nodeType&&module,Q3=AT&&AT.exports===_T,xT=Q3?Pr.Buffer:void 0,e8=xT?xT.isBuffer:void 0,Oc=e8||Z3,t8="[object Arguments]",n8="[object Array]",r8="[object Boolean]",i8="[object Date]",s8="[object Error]",o8="[object Function]",a8="[object Map]",c8="[object Number]",u8="[object Object]",l8="[object RegExp]",d8="[object Set]",f8="[object String]",h8="[object WeakMap]",p8="[object ArrayBuffer]",m8="[object DataView]",g8="[object Float32Array]",y8="[object Float64Array]",v8="[object Int8Array]",w8="[object Int16Array]",b8="[object Int32Array]",E8="[object Uint8Array]",D8="[object Uint8ClampedArray]",T8="[object Uint16Array]",R8="[object Uint32Array]",st={};st[g8]=st[y8]=st[v8]=st[w8]=st[b8]=st[E8]=st[D8]=st[T8]=st[R8]=!0,st[t8]=st[n8]=st[p8]=st[r8]=st[m8]=st[i8]=st[s8]=st[o8]=st[a8]=st[c8]=st[u8]=st[l8]=st[d8]=st[f8]=st[h8]=!1;function S8(t){return ur(t)&&Bg(t.length)&&!!st[zi(t)]}function hf(t){return function(e){return t(e)}}var IT=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fc=IT&&typeof module=="object"&&module&&!module.nodeType&&module,k8=Fc&&Fc.exports===IT,qg=k8&&fT.process,Bi=function(){try{var t=Fc&&Fc.require&&Fc.require("util").types;return t||qg&&qg.binding&&qg.binding("util")}catch{}}(),PT=Bi&&Bi.isTypedArray,jg=PT?hf(PT):S8,$8=Object.prototype,C8=$8.hasOwnProperty;function NT(t,e){var n=Be(t),r=!n&&ff(t),i=!n&&!r&&Oc(t),s=!n&&!r&&!i&&jg(t),o=n||r||i||s,a=o?V3(t.length,String):[],c=a.length;for(var u in t)(e||C8.call(t,u))&&!(o&&(u=="length"||i&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||lf(u,c)))&&a.push(u);return a}function OT(t,e){return function(n){return t(e(n))}}var _8=OT(Object.keys,Object),A8=Object.prototype,x8=A8.hasOwnProperty;function FT(t){if(!Nc(t))return _8(t);var e=[];for(var n in Object(t))x8.call(t,n)&&n!="constructor"&&e.push(n);return e}function Kn(t){return Nr(t)?NT(t):FT(t)}var I8=Object.prototype,P8=I8.hasOwnProperty,xn=W3(function(t,e){if(Nc(e)||Nr(e)){Mg(e,Kn(e),t);return}for(var n in e)P8.call(e,n)&&df(t,n,e[n])});function N8(t){var e=[];if(t!=null)for(var n in Object(t))e.push(n);return e}var O8=Object.prototype,F8=O8.hasOwnProperty;function L8(t){if(!Vn(t))return N8(t);var e=Nc(t),n=[];for(var r in t)r=="constructor"&&(e||!F8.call(t,r))||n.push(r);return n}function LT(t){return Nr(t)?NT(t,!0):L8(t)}var M8=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,z8=/^\w*$/;function Ug(t,e){if(Be(t))return!1;var n=typeof t;return n=="number"||n=="symbol"||n=="boolean"||t==null||Ic(t)?!0:z8.test(t)||!M8.test(t)||e!=null&&t in Object(e)}var Lc=Ps(Object,"create");function B8(){this.__data__=Lc?Lc(null):{},this.size=0}function q8(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var j8="__lodash_hash_undefined__",U8=Object.prototype,G8=U8.hasOwnProperty;function W8(t){var e=this.__data__;if(Lc){var n=e[t];return n===j8?void 0:n}return G8.call(e,t)?e[t]:void 0}var H8=Object.prototype,V8=H8.hasOwnProperty;function K8(t){var e=this.__data__;return Lc?e[t]!==void 0:V8.call(e,t)}var Y8="__lodash_hash_undefined__";function X8(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Lc&&e===void 0?Y8:e,this}function Ns(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Ns.prototype.clear=B8,Ns.prototype.delete=q8,Ns.prototype.get=W8,Ns.prototype.has=K8,Ns.prototype.set=X8;function J8(){this.__data__=[],this.size=0}function pf(t,e){for(var n=t.length;n--;)if(Pc(t[n][0],e))return n;return-1}var Z8=Array.prototype,Q8=Z8.splice;function ez(t){var e=this.__data__,n=pf(e,t);if(n<0)return!1;var r=e.length-1;return n==r?e.pop():Q8.call(e,n,1),--this.size,!0}function tz(t){var e=this.__data__,n=pf(e,t);return n<0?void 0:e[n][1]}function nz(t){return pf(this.__data__,t)>-1}function rz(t,e){var n=this.__data__,r=pf(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function li(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}li.prototype.clear=J8,li.prototype.delete=ez,li.prototype.get=tz,li.prototype.has=nz,li.prototype.set=rz;var Mc=Ps(Pr,"Map");function iz(){this.size=0,this.__data__={hash:new Ns,map:new(Mc||li),string:new Ns}}function sz(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function mf(t,e){var n=t.__data__;return sz(e)?n[typeof e=="string"?"string":"hash"]:n.map}function oz(t){var e=mf(this,t).delete(t);return this.size-=e?1:0,e}function az(t){return mf(this,t).get(t)}function cz(t){return mf(this,t).has(t)}function uz(t,e){var n=mf(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}function di(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}di.prototype.clear=iz,di.prototype.delete=oz,di.prototype.get=az,di.prototype.has=cz,di.prototype.set=uz;var lz="Expected a function";function Gg(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(lz);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var o=t.apply(this,r);return n.cache=s.set(i,o)||s,o};return n.cache=new(Gg.Cache||di),n}Gg.Cache=di;var dz=500;function fz(t){var e=Gg(t,function(r){return n.size===dz&&n.clear(),r}),n=e.cache;return e}var hz=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pz=/\\(\\)?/g,mz=fz(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(hz,function(n,r,i,s){e.push(i?s.replace(pz,"$1"):r||n)}),e});function gz(t){return t==null?"":yT(t)}function gf(t,e){return Be(t)?t:Ug(t,e)?[t]:mz(gz(t))}var yz=1/0;function zc(t){if(typeof t=="string"||Ic(t))return t;var e=t+"";return e=="0"&&1/t==-yz?"-0":e}function Wg(t,e){e=gf(e,t);for(var n=0,r=e.length;t!=null&&n<r;)t=t[zc(e[n++])];return n&&n==r?t:void 0}function vz(t,e,n){var r=t==null?void 0:Wg(t,e);return r===void 0?n:r}function Hg(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}var MT=Hn?Hn.isConcatSpreadable:void 0;function wz(t){return Be(t)||ff(t)||!!(MT&&t&&t[MT])}function Vg(t,e,n,r,i){var s=-1,o=t.length;for(n||(n=wz),i||(i=[]);++s<o;){var a=t[s];n(a)?Hg(i,a):r||(i[i.length]=a)}return i}function Yn(t){var e=t==null?0:t.length;return e?Vg(t):[]}var zT=OT(Object.getPrototypeOf,Object);function BT(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=t[r+e];return s}function bz(t,e,n,r){var i=-1,s=t==null?0:t.length;for(r&&s&&(n=t[++i]);++i<s;)n=e(n,t[i],i,t);return n}function Ez(){this.__data__=new li,this.size=0}function Dz(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function Tz(t){return this.__data__.get(t)}function Rz(t){return this.__data__.has(t)}var Sz=200;function kz(t,e){var n=this.__data__;if(n instanceof li){var r=n.__data__;if(!Mc||r.length<Sz-1)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new di(r)}return n.set(t,e),this.size=n.size,this}function Or(t){var e=this.__data__=new li(t);this.size=e.size}Or.prototype.clear=Ez,Or.prototype.delete=Dz,Or.prototype.get=Tz,Or.prototype.has=Rz,Or.prototype.set=kz;function $z(t,e){return t&&Mg(e,Kn(e),t)}var qT=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jT=qT&&typeof module=="object"&&module&&!module.nodeType&&module,Cz=jT&&jT.exports===qT,UT=Cz?Pr.Buffer:void 0,GT=UT?UT.allocUnsafe:void 0;function _z(t,e){var n=t.length,r=GT?GT(n):new t.constructor(n);return t.copy(r),r}function Kg(t,e){for(var n=-1,r=t==null?0:t.length,i=0,s=[];++n<r;){var o=t[n];e(o,n,t)&&(s[i++]=o)}return s}function WT(){return[]}var Az=Object.prototype,xz=Az.propertyIsEnumerable,HT=Object.getOwnPropertySymbols,Yg=HT?function(t){return t==null?[]:(t=Object(t),Kg(HT(t),function(e){return xz.call(t,e)}))}:WT;function Iz(t,e){return Mg(t,Yg(t),e)}var Pz=Object.getOwnPropertySymbols,Nz=Pz?function(t){for(var e=[];t;)Hg(e,Yg(t)),t=zT(t);return e}:WT;function VT(t,e,n){var r=e(t);return Be(t)?r:Hg(r,n(t))}function Xg(t){return VT(t,Kn,Yg)}function Oz(t){return VT(t,LT,Nz)}var Jg=Ps(Pr,"DataView"),Zg=Ps(Pr,"Promise"),Uo=Ps(Pr,"Set"),KT="[object Map]",Fz="[object Object]",YT="[object Promise]",XT="[object Set]",JT="[object WeakMap]",ZT="[object DataView]",Lz=Is(Jg),Mz=Is(Mc),zz=Is(Zg),Bz=Is(Uo),qz=Is(Og),Xn=zi;(Jg&&Xn(new Jg(new ArrayBuffer(1)))!=ZT||Mc&&Xn(new Mc)!=KT||Zg&&Xn(Zg.resolve())!=YT||Uo&&Xn(new Uo)!=XT||Og&&Xn(new Og)!=JT)&&(Xn=function(t){var e=zi(t),n=e==Fz?t.constructor:void 0,r=n?Is(n):"";if(r)switch(r){case Lz:return ZT;case Mz:return KT;case zz:return YT;case Bz:return XT;case qz:return JT}return e});var jz=Object.prototype,Uz=jz.hasOwnProperty;function Gz(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&Uz.call(t,"index")&&(n.index=t.index,n.input=t.input),n}var yf=Pr.Uint8Array;function Wz(t){var e=new t.constructor(t.byteLength);return new yf(e).set(new yf(t)),e}function Hz(t,e){var n=t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}var Vz=/\w*$/;function Kz(t){var e=new t.constructor(t.source,Vz.exec(t));return e.lastIndex=t.lastIndex,e}var QT=Hn?Hn.prototype:void 0,eR=QT?QT.valueOf:void 0;function Yz(t){return eR?Object(eR.call(t)):{}}function Xz(t,e){var n=t.buffer;return new t.constructor(n,t.byteOffset,t.length)}var Jz="[object Boolean]",Zz="[object Date]",Qz="[object Map]",eB="[object Number]",tB="[object RegExp]",nB="[object Set]",rB="[object String]",iB="[object Symbol]",sB="[object ArrayBuffer]",oB="[object DataView]",aB="[object Float32Array]",cB="[object Float64Array]",uB="[object Int8Array]",lB="[object Int16Array]",dB="[object Int32Array]",fB="[object Uint8Array]",hB="[object Uint8ClampedArray]",pB="[object Uint16Array]",mB="[object Uint32Array]";function gB(t,e,n){var r=t.constructor;switch(e){case sB:return Wz(t);case Jz:case Zz:return new r(+t);case oB:return Hz(t);case aB:case cB:case uB:case lB:case dB:case fB:case hB:case pB:case mB:return Xz(t);case Qz:return new r;case eB:case rB:return new r(t);case tB:return Kz(t);case nB:return new r;case iB:return Yz(t)}}function yB(t){return typeof t.constructor=="function"&&!Nc(t)?$3(zT(t)):{}}var vB="[object Map]";function wB(t){return ur(t)&&Xn(t)==vB}var tR=Bi&&Bi.isMap,bB=tR?hf(tR):wB,EB="[object Set]";function DB(t){return ur(t)&&Xn(t)==EB}var nR=Bi&&Bi.isSet,TB=nR?hf(nR):DB,rR="[object Arguments]",RB="[object Array]",SB="[object Boolean]",kB="[object Date]",$B="[object Error]",iR="[object Function]",CB="[object GeneratorFunction]",_B="[object Map]",AB="[object Number]",sR="[object Object]",xB="[object RegExp]",IB="[object Set]",PB="[object String]",NB="[object Symbol]",OB="[object WeakMap]",FB="[object ArrayBuffer]",LB="[object DataView]",MB="[object Float32Array]",zB="[object Float64Array]",BB="[object Int8Array]",qB="[object Int16Array]",jB="[object Int32Array]",UB="[object Uint8Array]",GB="[object Uint8ClampedArray]",WB="[object Uint16Array]",HB="[object Uint32Array]",rt={};rt[rR]=rt[RB]=rt[FB]=rt[LB]=rt[SB]=rt[kB]=rt[MB]=rt[zB]=rt[BB]=rt[qB]=rt[jB]=rt[_B]=rt[AB]=rt[sR]=rt[xB]=rt[IB]=rt[PB]=rt[NB]=rt[UB]=rt[GB]=rt[WB]=rt[HB]=!0,rt[$B]=rt[iR]=rt[OB]=!1;function vf(t,e,n,r,i,s){var o;if(o!==void 0)return o;if(!Vn(t))return t;var a=Be(t);if(a)return o=Gz(t),_3(t,o);var c=Xn(t),u=c==iR||c==CB;if(Oc(t))return _z(t);if(c==sR||c==rR||u&&!i)return o=u?{}:yB(t),Iz(t,$z(o,t));if(!rt[c])return i?t:{};o=gB(t,c),s||(s=new Or);var l=s.get(t);if(l)return l;s.set(t,o),TB(t)?t.forEach(function(h){o.add(vf(h,e,n,h,t,s))}):bB(t)&&t.forEach(function(h,p){o.set(p,vf(h,e,n,p,t,s))});var d=Xg,f=a?void 0:d(t);return DT(f||t,function(h,p){f&&(p=h,h=t[p]),df(o,p,vf(h,e,n,p,t,s))}),o}var VB=4;function Ut(t){return vf(t,VB)}function Bc(t){for(var e=-1,n=t==null?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i}var KB="__lodash_hash_undefined__";function YB(t){return this.__data__.set(t,KB),this}function XB(t){return this.__data__.has(t)}function Go(t){var e=-1,n=t==null?0:t.length;for(this.__data__=new di;++e<n;)this.add(t[e])}Go.prototype.add=Go.prototype.push=YB,Go.prototype.has=XB;function oR(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function Qg(t,e){return t.has(e)}var JB=1,ZB=2;function aR(t,e,n,r,i,s){var o=n&JB,a=t.length,c=e.length;if(a!=c&&!(o&&c>a))return!1;var u=s.get(t),l=s.get(e);if(u&&l)return u==e&&l==t;var d=-1,f=!0,h=n&ZB?new Go:void 0;for(s.set(t,e),s.set(e,t);++d<a;){var p=t[d],m=e[d];if(r)var y=o?r(m,p,d,e,t,s):r(p,m,d,t,e,s);if(y!==void 0){if(y)continue;f=!1;break}if(h){if(!oR(e,function(g,w){if(!Qg(h,w)&&(p===g||i(p,g,n,r,s)))return h.push(w)})){f=!1;break}}else if(!(p===m||i(p,m,n,r,s))){f=!1;break}}return s.delete(t),s.delete(e),f}function QB(t){var e=-1,n=Array(t.size);return t.forEach(function(r,i){n[++e]=[i,r]}),n}function ey(t){var e=-1,n=Array(t.size);return t.forEach(function(r){n[++e]=r}),n}var e4=1,t4=2,n4="[object Boolean]",r4="[object Date]",i4="[object Error]",s4="[object Map]",o4="[object Number]",a4="[object RegExp]",c4="[object Set]",u4="[object String]",l4="[object Symbol]",d4="[object ArrayBuffer]",f4="[object DataView]",cR=Hn?Hn.prototype:void 0,ty=cR?cR.valueOf:void 0;function h4(t,e,n,r,i,s,o){switch(n){case f4:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case d4:return!(t.byteLength!=e.byteLength||!s(new yf(t),new yf(e)));case n4:case r4:case o4:return Pc(+t,+e);case i4:return t.name==e.name&&t.message==e.message;case a4:case u4:return t==e+"";case s4:var a=QB;case c4:var c=r&e4;if(a||(a=ey),t.size!=e.size&&!c)return!1;var u=o.get(t);if(u)return u==e;r|=t4,o.set(t,e);var l=aR(a(t),a(e),r,i,s,o);return o.delete(t),l;case l4:if(ty)return ty.call(t)==ty.call(e)}return!1}var p4=1,m4=Object.prototype,g4=m4.hasOwnProperty;function y4(t,e,n,r,i,s){var o=n&p4,a=Xg(t),c=a.length,u=Xg(e),l=u.length;if(c!=l&&!o)return!1;for(var d=c;d--;){var f=a[d];if(!(o?f in e:g4.call(e,f)))return!1}var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var m=!0;s.set(t,e),s.set(e,t);for(var y=o;++d<c;){f=a[d];var g=t[f],w=e[f];if(r)var E=o?r(w,g,f,e,t,s):r(g,w,f,t,e,s);if(!(E===void 0?g===w||i(g,w,n,r,s):E)){m=!1;break}y||(y=f=="constructor")}if(m&&!y){var k=t.constructor,A=e.constructor;k!=A&&"constructor"in t&&"constructor"in e&&!(typeof k=="function"&&k instanceof k&&typeof A=="function"&&A instanceof A)&&(m=!1)}return s.delete(t),s.delete(e),m}var v4=1,uR="[object Arguments]",lR="[object Array]",wf="[object Object]",w4=Object.prototype,dR=w4.hasOwnProperty;function b4(t,e,n,r,i,s){var o=Be(t),a=Be(e),c=o?lR:Xn(t),u=a?lR:Xn(e);c=c==uR?wf:c,u=u==uR?wf:u;var l=c==wf,d=u==wf,f=c==u;if(f&&Oc(t)){if(!Oc(e))return!1;o=!0,l=!1}if(f&&!l)return s||(s=new Or),o||jg(t)?aR(t,e,n,r,i,s):h4(t,e,c,n,r,i,s);if(!(n&v4)){var h=l&&dR.call(t,"__wrapped__"),p=d&&dR.call(e,"__wrapped__");if(h||p){var m=h?t.value():t,y=p?e.value():e;return s||(s=new Or),i(m,y,n,r,s)}}return f?(s||(s=new Or),y4(t,e,n,r,i,s)):!1}function ny(t,e,n,r,i){return t===e?!0:t==null||e==null||!ur(t)&&!ur(e)?t!==t&&e!==e:b4(t,e,n,r,ny,i)}var E4=1,D4=2;function T4(t,e,n,r){var i=n.length,s=i;if(t==null)return!s;for(t=Object(t);i--;){var o=n[i];if(o[2]?o[1]!==t[o[0]]:!(o[0]in t))return!1}for(;++i<s;){o=n[i];var a=o[0],c=t[a],u=o[1];if(o[2]){if(c===void 0&&!(a in t))return!1}else{var l=new Or,d;if(!(d===void 0?ny(u,c,E4|D4,r,l):d))return!1}}return!0}function fR(t){return t===t&&!Vn(t)}function R4(t){for(var e=Kn(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,fR(i)]}return e}function hR(t,e){return function(n){return n==null?!1:n[t]===e&&(e!==void 0||t in Object(n))}}function S4(t){var e=R4(t);return e.length==1&&e[0][2]?hR(e[0][0],e[0][1]):function(n){return n===t||T4(n,t,e)}}function k4(t,e){return t!=null&&e in Object(t)}function pR(t,e,n){e=gf(e,t);for(var r=-1,i=e.length,s=!1;++r<i;){var o=zc(e[r]);if(!(s=t!=null&&n(t,o)))break;t=t[o]}return s||++r!=i?s:(i=t==null?0:t.length,!!i&&Bg(i)&&lf(o,i)&&(Be(t)||ff(t)))}function $4(t,e){return t!=null&&pR(t,e,k4)}var C4=1,_4=2;function A4(t,e){return Ug(t)&&fR(e)?hR(zc(t),e):function(n){var r=vz(n,t);return r===void 0&&r===e?$4(n,t):ny(e,r,C4|_4)}}function x4(t){return function(e){return e?.[t]}}function I4(t){return function(e){return Wg(e,t)}}function P4(t){return Ug(t)?x4(zc(t)):I4(t)}function lr(t){return typeof t=="function"?t:t==null?xs:typeof t=="object"?Be(t)?A4(t[0],t[1]):S4(t):P4(t)}function N4(t,e,n,r){for(var i=-1,s=t==null?0:t.length;++i<s;){var o=t[i];e(r,o,n(o),t)}return r}function O4(t){return function(e,n,r){for(var i=-1,s=Object(e),o=r(e),a=o.length;a--;){var c=o[++i];if(n(s[c],c,s)===!1)break}return e}}var F4=O4();function L4(t,e){return t&&F4(t,e,Kn)}function M4(t,e){return function(n,r){if(n==null)return n;if(!Nr(n))return t(n,r);for(var i=n.length,s=-1,o=Object(n);++s<i&&r(o[s],s,o)!==!1;);return n}}var Os=M4(L4);function z4(t,e,n,r){return Os(t,function(i,s,o){e(r,i,n(i),o)}),r}function B4(t,e){return function(n,r){var i=Be(n)?N4:z4,s=e?e():{};return i(n,t,lr(r),s)}}var mR=Object.prototype,q4=mR.hasOwnProperty,ry=zg(function(t,e){t=Object(t);var n=-1,r=e.length,i=r>2?e[2]:void 0;for(i&&kT(e[0],e[1],i)&&(r=1);++n<r;)for(var s=e[n],o=LT(s),a=-1,c=o.length;++a<c;){var u=o[a],l=t[u];(l===void 0||Pc(l,mR[u])&&!q4.call(t,u))&&(t[u]=s[u])}return t});function gR(t){return ur(t)&&Nr(t)}var j4=200;function U4(t,e,n,r){var i=-1,s=RT,o=!0,a=t.length,c=[],u=e.length;if(!a)return c;e.length>=j4&&(s=Qg,o=!1,e=new Go(e));e:for(;++i<a;){var l=t[i],d=l;if(l=l!==0?l:0,o&&d===d){for(var f=u;f--;)if(e[f]===d)continue e;c.push(l)}else s(e,d,r)||c.push(l)}return c}var bf=zg(function(t,e){return gR(t)?U4(t,Vg(e,1,gR,!0)):[]});function Wo(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}function Gt(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:cf(e),BT(t,e<0?0:e,r)):[]}function qc(t,e,n){var r=t==null?0:t.length;return r?(e=e===void 0?1:cf(e),e=r-e,BT(t,0,e<0?0:e)):[]}function G4(t){return typeof t=="function"?t:xs}function ve(t,e){var n=Be(t)?DT:Os;return n(t,G4(e))}function W4(t,e){for(var n=-1,r=t==null?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function H4(t,e){var n=!0;return Os(t,function(r,i,s){return n=!!e(r,i,s),n}),n}function dr(t,e,n){var r=Be(t)?W4:H4;return r(t,lr(e))}function yR(t,e){var n=[];return Os(t,function(r,i,s){e(r,i,s)&&n.push(r)}),n}function In(t,e){var n=Be(t)?Kg:yR;return n(t,lr(e))}function V4(t){return function(e,n,r){var i=Object(e);if(!Nr(e)){var s=lr(n);e=Kn(e),n=function(a){return s(i[a],a,i)}}var o=t(e,n,r);return o>-1?i[s?e[o]:o]:void 0}}var K4=Math.max;function Y4(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=n==null?0:cf(n);return i<0&&(i=K4(r+i,0)),TT(t,lr(e),i)}var Ho=V4(Y4);function fr(t){return t&&t.length?t[0]:void 0}function X4(t,e){var n=-1,r=Nr(t)?Array(t.length):[];return Os(t,function(i,s,o){r[++n]=e(i,s,o)}),r}function de(t,e){var n=Be(t)?af:X4;return n(t,lr(e))}function Pn(t,e){return Vg(de(t,e))}var J4=Object.prototype,Z4=J4.hasOwnProperty,Q4=B4(function(t,e,n){Z4.call(t,n)?t[n].push(e):Lg(t,n,[e])}),e6=Object.prototype,t6=e6.hasOwnProperty;function n6(t,e){return t!=null&&t6.call(t,e)}function be(t,e){return t!=null&&pR(t,e,n6)}var r6="[object String]";function bn(t){return typeof t=="string"||!Be(t)&&ur(t)&&zi(t)==r6}function i6(t,e){return af(e,function(n){return t[n]})}function Nt(t){return t==null?[]:i6(t,Kn(t))}var s6=Math.max;function on(t,e,n,r){t=Nr(t)?t:Nt(t),n=n&&!r?cf(n):0;var i=t.length;return n<0&&(n=s6(i+n,0)),bn(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&Fg(t,e,n)>-1}function vR(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var i=0;return Fg(t,e,i)}var o6="[object Map]",a6="[object Set]",c6=Object.prototype,u6=c6.hasOwnProperty;function tt(t){if(t==null)return!0;if(Nr(t)&&(Be(t)||typeof t=="string"||typeof t.splice=="function"||Oc(t)||jg(t)||ff(t)))return!t.length;var e=Xn(t);if(e==o6||e==a6)return!t.size;if(Nc(t))return!FT(t).length;for(var n in t)if(u6.call(t,n))return!1;return!0}var l6="[object RegExp]";function d6(t){return ur(t)&&zi(t)==l6}var wR=Bi&&Bi.isRegExp,fi=wR?hf(wR):d6;function hi(t){return t===void 0}function f6(t,e){return t<e}function h6(t,e,n){for(var r=-1,i=t.length;++r<i;){var s=t[r],o=e(s);if(o!=null&&(a===void 0?o===o&&!Ic(o):n(o,a)))var a=o,c=s}return c}function p6(t){return t&&t.length?h6(t,xs,f6):void 0}var m6="Expected a function";function g6(t){if(typeof t!="function")throw new TypeError(m6);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function y6(t,e,n,r){if(!Vn(t))return t;e=gf(e,t);for(var i=-1,s=e.length,o=s-1,a=t;a!=null&&++i<s;){var c=zc(e[i]),u=n;if(c==="__proto__"||c==="constructor"||c==="prototype")return t;if(i!=o){var l=a[c];u=void 0,u===void 0&&(u=Vn(l)?l:lf(e[i+1])?[]:{})}df(a,c,u),a=a[c]}return t}function v6(t,e,n){for(var r=-1,i=e.length,s={};++r<i;){var o=e[r],a=Wg(t,o);n(a,o)&&y6(s,gf(o,t),a)}return s}function hr(t,e){if(t==null)return{};var n=af(Oz(t),function(r){return[r]});return e=lr(e),v6(t,n,function(r,i){return e(r,i[0])})}function w6(t,e,n,r,i){return i(t,function(s,o,a){n=r?(r=!1,s):e(n,s,o,a)}),n}function an(t,e,n){var r=Be(t)?bz:w6,i=arguments.length<3;return r(t,lr(e),n,i,Os)}function Ef(t,e){var n=Be(t)?Kg:yR;return n(t,g6(lr(e)))}function b6(t,e){var n;return Os(t,function(r,i,s){return n=e(r,i,s),!n}),!!n}function bR(t,e,n){var r=Be(t)?oR:b6;return r(t,lr(e))}var E6=1/0,D6=Uo&&1/ey(new Uo([,-0]))[1]==E6?function(t){return new Uo(t)}:Pt,T6=200;function ER(t,e,n){var r=-1,i=RT,s=t.length,o=!0,a=[],c=a;if(s>=T6){var u=e?null:D6(t);if(u)return ey(u);o=!1,i=Qg,c=new Go}else c=e?[]:a;e:for(;++r<s;){var l=t[r],d=e?e(l):l;if(l=l!==0?l:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue e;e&&c.push(d),a.push(l)}else i(c,d,n)||(c!==a&&c.push(d),a.push(l))}return a}function iy(t){return t&&t.length?ER(t):[]}function R6(t,e){return t&&t.length?ER(t,lr(e)):[]}function sy(t){console&&console.error&&console.error(`Error: ${t}`)}function DR(t){console&&console.warn&&console.warn(`Warning: ${t}`)}function TR(t){const e=new Date().getTime(),n=t();return{time:new Date().getTime()-e,value:n}}function RR(t){function e(){}e.prototype=t;const n=new e;function r(){return typeof n.bar}return r(),r(),t}function S6(t){return k6(t)?t.LABEL:t.name}function k6(t){return bn(t.LABEL)&&t.LABEL!==""}class Fr{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),ve(this.definition,n=>{n.accept(e)})}}class cn extends Fr{constructor(e){super([]),this.idx=1,xn(this,hr(e,n=>n!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Vo extends Fr{constructor(e){super(e.definition),this.orgText="",xn(this,hr(e,n=>n!==void 0))}}class En extends Fr{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,xn(this,hr(e,n=>n!==void 0))}}class Wt extends Fr{constructor(e){super(e.definition),this.idx=1,xn(this,hr(e,n=>n!==void 0))}}class Nn extends Fr{constructor(e){super(e.definition),this.idx=1,xn(this,hr(e,n=>n!==void 0))}}class On extends Fr{constructor(e){super(e.definition),this.idx=1,xn(this,hr(e,n=>n!==void 0))}}class wt extends Fr{constructor(e){super(e.definition),this.idx=1,xn(this,hr(e,n=>n!==void 0))}}class Dn extends Fr{constructor(e){super(e.definition),this.idx=1,xn(this,hr(e,n=>n!==void 0))}}class Tn extends Fr{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,xn(this,hr(e,n=>n!==void 0))}}class ot{constructor(e){this.idx=1,xn(this,hr(e,n=>n!==void 0))}accept(e){e.visit(this)}}function $6(t){return de(t,Df)}function Df(t){function e(n){return de(n,Df)}if(t instanceof cn){const n={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return bn(t.label)&&(n.label=t.label),n}else{if(t instanceof En)return{type:"Alternative",definition:e(t.definition)};if(t instanceof Wt)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof Nn)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof On)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Df(new ot({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Dn)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Df(new ot({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof wt)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof Tn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof ot){const n={type:"Terminal",name:t.terminalType.name,label:S6(t.terminalType),idx:t.idx};bn(t.label)&&(n.terminalLabel=t.label);const r=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(n.pattern=fi(r)?r.source:r),n}else{if(t instanceof Vo)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}class Ko{visit(e){const n=e;switch(n.constructor){case cn:return this.visitNonTerminal(n);case En:return this.visitAlternative(n);case Wt:return this.visitOption(n);case Nn:return this.visitRepetitionMandatory(n);case On:return this.visitRepetitionMandatoryWithSeparator(n);case Dn:return this.visitRepetitionWithSeparator(n);case wt:return this.visitRepetition(n);case Tn:return this.visitAlternation(n);case ot:return this.visitTerminal(n);case Vo:return this.visitRule(n);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function C6(t){return t instanceof En||t instanceof Wt||t instanceof wt||t instanceof Nn||t instanceof On||t instanceof Dn||t instanceof ot||t instanceof Vo}function Tf(t,e=[]){return t instanceof Wt||t instanceof wt||t instanceof Dn?!0:t instanceof Tn?bR(t.definition,r=>Tf(r,e)):t instanceof cn&&on(e,t)?!1:t instanceof Fr?(t instanceof cn&&e.push(t),dr(t.definition,r=>Tf(r,e))):!1}function _6(t){return t instanceof Tn}function Lr(t){if(t instanceof cn)return"SUBRULE";if(t instanceof Wt)return"OPTION";if(t instanceof Tn)return"OR";if(t instanceof Nn)return"AT_LEAST_ONE";if(t instanceof On)return"AT_LEAST_ONE_SEP";if(t instanceof Dn)return"MANY_SEP";if(t instanceof wt)return"MANY";if(t instanceof ot)return"CONSUME";throw Error("non exhaustive match")}class Rf{walk(e,n=[]){ve(e.definition,(r,i)=>{const s=Gt(e.definition,i+1);if(r instanceof cn)this.walkProdRef(r,s,n);else if(r instanceof ot)this.walkTerminal(r,s,n);else if(r instanceof En)this.walkFlat(r,s,n);else if(r instanceof Wt)this.walkOption(r,s,n);else if(r instanceof Nn)this.walkAtLeastOne(r,s,n);else if(r instanceof On)this.walkAtLeastOneSep(r,s,n);else if(r instanceof Dn)this.walkManySep(r,s,n);else if(r instanceof wt)this.walkMany(r,s,n);else if(r instanceof Tn)this.walkOr(r,s,n);else throw Error("non exhaustive match")})}walkTerminal(e,n,r){}walkProdRef(e,n,r){}walkFlat(e,n,r){const i=n.concat(r);this.walk(e,i)}walkOption(e,n,r){const i=n.concat(r);this.walk(e,i)}walkAtLeastOne(e,n,r){const i=[new Wt({definition:e.definition})].concat(n,r);this.walk(e,i)}walkAtLeastOneSep(e,n,r){const i=SR(e,n,r);this.walk(e,i)}walkMany(e,n,r){const i=[new Wt({definition:e.definition})].concat(n,r);this.walk(e,i)}walkManySep(e,n,r){const i=SR(e,n,r);this.walk(e,i)}walkOr(e,n,r){const i=n.concat(r);ve(e.definition,s=>{const o=new En({definition:[s]});this.walk(o,i)})}}function SR(t,e,n){return[new Wt({definition:[new ot({terminalType:t.separator})].concat(t.definition)})].concat(e,n)}function jc(t){if(t instanceof cn)return jc(t.referencedRule);if(t instanceof ot)return I6(t);if(C6(t))return A6(t);if(_6(t))return x6(t);throw Error("non exhaustive match")}function A6(t){let e=[];const n=t.definition;let r=0,i=n.length>r,s,o=!0;for(;i&&o;)s=n[r],o=Tf(s),e=e.concat(jc(s)),r=r+1,i=n.length>r;return iy(e)}function x6(t){const e=de(t.definition,n=>jc(n));return iy(Yn(e))}function I6(t){return[t.terminalType]}const kR="_~IN~_";class P6 extends Rf{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,n,r){}walkProdRef(e,n,r){const i=O6(e.referencedRule,e.idx)+this.topProd.name,s=n.concat(r),o=new En({definition:s}),a=jc(o);this.follows[i]=a}}function N6(t){const e={};return ve(t,n=>{const r=new P6(n).startWalking();xn(e,r)}),e}function O6(t,e){return t.name+e+kR}let Sf={};const F6=new eT;function kf(t){const e=t.toString();if(Sf.hasOwnProperty(e))return Sf[e];{const n=F6.pattern(e);return Sf[e]=n,n}}function L6(){Sf={}}const $R="Complement Sets are not supported for first char optimization",$f=`Unable to use "first char" lexer optimizations:
13
+ `;function M6(t,e=!1){try{const n=kf(t);return oy(n.value,{},n.flags.ignoreCase)}catch(n){if(n.message===$R)e&&DR(`${$f} Unable to optimize: < ${t.toString()} >
14
+ Complement Sets cannot be automatically optimized.
15
+ This will disable the lexer's first char optimizations.
16
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";e&&(r=`
17
+ This will disable the lexer's first char optimizations.
18
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),sy(`${$f}
19
+ Failed parsing: < ${t.toString()} >
20
+ Using the @chevrotain/regexp-to-ast library
21
+ Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function oy(t,e,n){switch(t.type){case"Disjunction":for(let i=0;i<t.value.length;i++)oy(t.value[i],e,n);break;case"Alternative":const r=t.value;for(let i=0;i<r.length;i++){const s=r[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const o=s;switch(o.type){case"Character":Cf(o.value,e,n);break;case"Set":if(o.complement===!0)throw Error($R);ve(o.value,c=>{if(typeof c=="number")Cf(c,e,n);else{const u=c;if(n===!0)for(let l=u.from;l<=u.to;l++)Cf(l,e,n);else{for(let l=u.from;l<=u.to&&l<Gc;l++)Cf(l,e,n);if(u.to>=Gc){const l=u.from>=Gc?u.from:Gc,d=u.to,f=qi(l),h=qi(d);for(let p=f;p<=h;p++)e[p]=p}}}});break;case"Group":oy(o.value,e,n);break;default:throw Error("Non Exhaustive Match")}const a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&ay(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return Nt(e)}function Cf(t,e,n){const r=qi(t);e[r]=r,n===!0&&z6(t,e)}function z6(t,e){const n=String.fromCharCode(t),r=n.toUpperCase();if(r!==n){const i=qi(r.charCodeAt(0));e[i]=i}else{const i=n.toLowerCase();if(i!==n){const s=qi(i.charCodeAt(0));e[s]=s}}}function CR(t,e){return Ho(t.value,n=>{if(typeof n=="number")return on(e,n);{const r=n;return Ho(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function ay(t){const e=t.quantifier;return e&&e.atLeast===0?!0:t.value?Be(t.value)?dr(t.value,ay):ay(t.value):!1}class B6 extends tf{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){on(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?CR(e,this.targetCharCodes)===void 0&&(this.found=!0):CR(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function cy(t,e){if(e instanceof RegExp){const n=kf(e),r=new B6(t);return r.visit(n),r.found}else return Ho(e,n=>on(t,n.charCodeAt(0)))!==void 0}const Fs="PATTERN",Uc="defaultMode",_f="modes";let _R=typeof new RegExp("(?:)").sticky=="boolean";function q6(t,e){e=ry(e,{useSticky:_R,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
22
+ `],tracer:(w,E)=>E()});const n=e.tracer;n("initCharCodeToOptimizedIndexMap",()=>{l5()});let r;n("Reject Lexer.NA",()=>{r=Ef(t,w=>w[Fs]===Rn.NA)});let i=!1,s;n("Transform Patterns",()=>{i=!1,s=de(r,w=>{const E=w[Fs];if(fi(E)){const k=E.source;return k.length===1&&k!=="^"&&k!=="$"&&k!=="."&&!E.ignoreCase?k:k.length===2&&k[0]==="\\"&&!on(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],k[1])?k[1]:e.useSticky?xR(E):AR(E)}else{if(ci(E))return i=!0,{exec:E};if(typeof E=="object")return i=!0,E;if(typeof E=="string"){if(E.length===1)return E;{const k=E.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),A=new RegExp(k);return e.useSticky?xR(A):AR(A)}}else throw Error("non exhaustive match")}})});let o,a,c,u,l;n("misc mapping",()=>{o=de(r,w=>w.tokenTypeIdx),a=de(r,w=>{const E=w.GROUP;if(E!==Rn.SKIPPED){if(bn(E))return E;if(hi(E))return!1;throw Error("non exhaustive match")}}),c=de(r,w=>{const E=w.LONGER_ALT;if(E)return Be(E)?de(E,A=>vR(r,A)):[vR(r,E)]}),u=de(r,w=>w.PUSH_MODE),l=de(r,w=>be(w,"POP_MODE"))});let d;n("Line Terminator Handling",()=>{const w=NR(e.lineTerminatorCharacters);d=de(r,E=>!1),e.positionTracking!=="onlyOffset"&&(d=de(r,E=>be(E,"LINE_BREAKS")?!!E.LINE_BREAKS:PR(E,w)===!1&&cy(w,E.PATTERN)))});let f,h,p,m;n("Misc Mapping #2",()=>{f=de(r,IR),h=de(s,a5),p=an(r,(w,E)=>{const k=E.GROUP;return bn(k)&&k!==Rn.SKIPPED&&(w[k]=[]),w},{}),m=de(s,(w,E)=>({pattern:s[E],longerAlt:c[E],canLineTerminator:d[E],isCustom:f[E],short:h[E],group:a[E],push:u[E],pop:l[E],tokenTypeIdx:o[E],tokenType:r[E]}))});let y=!0,g=[];return e.safeMode||n("First Char Optimization",()=>{g=an(r,(w,E,k)=>{if(typeof E.PATTERN=="string"){const A=E.PATTERN.charCodeAt(0),I=qi(A);uy(w,I,m[k])}else if(Be(E.START_CHARS_HINT)){let A;ve(E.START_CHARS_HINT,I=>{const x=typeof I=="string"?I.charCodeAt(0):I,_=qi(x);A!==_&&(A=_,uy(w,_,m[k]))})}else if(fi(E.PATTERN))if(E.PATTERN.unicode)y=!1,e.ensureOptimizations&&sy(`${$f} Unable to analyze < ${E.PATTERN.toString()} > pattern.
23
+ The regexp unicode flag is not currently supported by the regexp-to-ast library.
24
+ This will disable the lexer's first char optimizations.
25
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const A=M6(E.PATTERN,e.ensureOptimizations);tt(A)&&(y=!1),ve(A,I=>{uy(w,I,m[k])})}else e.ensureOptimizations&&sy(`${$f} TokenType: <${E.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
26
+ This will disable the lexer's first char optimizations.
27
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return w},[])}),{emptyGroups:p,patternIdxToConfig:m,charCodeToPatternIdxToConfig:g,hasCustom:i,canBeOptimized:y}}function j6(t,e){let n=[];const r=G6(t);n=n.concat(r.errors);const i=W6(r.valid),s=i.valid;return n=n.concat(i.errors),n=n.concat(U6(s)),n=n.concat(Q6(s)),n=n.concat(e5(s,e)),n=n.concat(t5(s)),n}function U6(t){let e=[];const n=In(t,r=>fi(r[Fs]));return e=e.concat(V6(n)),e=e.concat(X6(n)),e=e.concat(J6(n)),e=e.concat(Z6(n)),e=e.concat(K6(n)),e}function G6(t){const e=In(t,i=>!be(i,Fs)),n=de(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:bt.MISSING_PATTERN,tokenTypes:[i]})),r=bf(t,e);return{errors:n,valid:r}}function W6(t){const e=In(t,i=>{const s=i[Fs];return!fi(s)&&!ci(s)&&!be(s,"exec")&&!bn(s)}),n=de(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:bt.INVALID_PATTERN,tokenTypes:[i]})),r=bf(t,e);return{errors:n,valid:r}}const H6=/[^\\][$]/;function V6(t){class e extends tf{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const n=In(t,i=>{const s=i.PATTERN;try{const o=kf(s),a=new e;return a.visit(o),a.found}catch{return H6.test(s.source)}});return de(n,i=>({message:`Unexpected RegExp Anchor Error:
28
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
29
+ See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:bt.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function K6(t){const e=In(t,r=>r.PATTERN.test(""));return de(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:bt.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const Y6=/[^\\[][\^]|^\^/;function X6(t){class e extends tf{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const n=In(t,i=>{const s=i.PATTERN;try{const o=kf(s),a=new e;return a.visit(o),a.found}catch{return Y6.test(s.source)}});return de(n,i=>({message:`Unexpected RegExp Anchor Error:
30
+ Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
31
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:bt.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function J6(t){const e=In(t,r=>{const i=r[Fs];return i instanceof RegExp&&(i.multiline||i.global)});return de(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:bt.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function Z6(t){const e=[];let n=de(t,s=>an(t,(o,a)=>(s.PATTERN.source===a.PATTERN.source&&!on(e,a)&&a.PATTERN!==Rn.NA&&(e.push(a),o.push(a)),o),[]));n=Bc(n);const r=In(n,s=>s.length>1);return de(r,s=>{const o=de(s,c=>c.name);return{message:`The same RegExp pattern ->${fr(s).PATTERN}<-has been used in all of the following Token Types: ${o.join(", ")} <-`,type:bt.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function Q6(t){const e=In(t,r=>{if(!be(r,"GROUP"))return!1;const i=r.GROUP;return i!==Rn.SKIPPED&&i!==Rn.NA&&!bn(i)});return de(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:bt.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function e5(t,e){const n=In(t,i=>i.PUSH_MODE!==void 0&&!on(e,i.PUSH_MODE));return de(n,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:bt.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function t5(t){const e=[],n=an(t,(r,i,s)=>{const o=i.PATTERN;return o===Rn.NA||(bn(o)?r.push({str:o,idx:s,tokenType:i}):fi(o)&&r5(o)&&r.push({str:o.source,idx:s,tokenType:i})),r},[]);return ve(t,(r,i)=>{ve(n,({str:s,idx:o,tokenType:a})=>{if(i<o&&n5(s,r.PATTERN)){const c=`Token: ->${a.name}<- can never be matched.
32
+ Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
33
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:bt.UNREACHABLE_PATTERN,tokenTypes:[r,a]})}})}),e}function n5(t,e){if(fi(e)){const n=e.exec(t);return n!==null&&n.index===0}else{if(ci(e))return e(t,0,[],{});if(be(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function r5(t){return Ho([".","\\","[","]","|","^","$","(",")","?","*","+","{"],n=>t.source.indexOf(n)!==-1)===void 0}function AR(t){const e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function xR(t){const e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function i5(t,e,n){const r=[];return be(t,Uc)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Uc+`> property in its definition
34
+ `,type:bt.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),be(t,_f)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+_f+`> property in its definition
35
+ `,type:bt.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),be(t,_f)&&be(t,Uc)&&!be(t.modes,t.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Uc}: <${t.defaultMode}>which does not exist
36
+ `,type:bt.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),be(t,_f)&&ve(t.modes,(i,s)=>{ve(i,(o,a)=>{if(hi(o))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${a}>
37
+ `,type:bt.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(be(o,"LONGER_ALT")){const c=Be(o.LONGER_ALT)?o.LONGER_ALT:[o.LONGER_ALT];ve(c,u=>{!hi(u)&&!on(i,u)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${u.name}> on token <${o.name}> outside of mode <${s}>
38
+ `,type:bt.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function s5(t,e,n){const r=[];let i=!1;const s=Bc(Yn(Nt(t.modes))),o=Ef(s,c=>c[Fs]===Rn.NA),a=NR(n);return e&&ve(o,c=>{const u=PR(c,a);if(u!==!1){const d={message:u5(c,u),type:u.issue,tokenType:c};r.push(d)}else be(c,"LINE_BREAKS")?c.LINE_BREAKS===!0&&(i=!0):cy(a,c.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
39
+ This Lexer has been defined to track line and column information,
40
+ But none of the Token Types can be identified as matching a line terminator.
41
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
42
+ for details.`,type:bt.NO_LINE_BREAKS_FLAGS}),r}function o5(t){const e={},n=Kn(t);return ve(n,r=>{const i=t[r];if(Be(i))e[r]=[];else throw Error("non exhaustive match")}),e}function IR(t){const e=t.PATTERN;if(fi(e))return!1;if(ci(e))return!0;if(be(e,"exec"))return!0;if(bn(e))return!1;throw Error("non exhaustive match")}function a5(t){return bn(t)&&t.length===1?t.charCodeAt(0):!1}const c5={test:function(t){const e=t.length;for(let n=this.lastIndex;n<e;n++){const r=t.charCodeAt(n);if(r===10)return this.lastIndex=n+1,!0;if(r===13)return t.charCodeAt(n+1)===10?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function PR(t,e){if(be(t,"LINE_BREAKS"))return!1;if(fi(t.PATTERN)){try{cy(e,t.PATTERN)}catch(n){return{issue:bt.IDENTIFY_TERMINATOR,errMsg:n.message}}return!1}else{if(bn(t.PATTERN))return!1;if(IR(t))return{issue:bt.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function u5(t,e){if(e.issue===bt.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
43
+ The problem is in the <${t.name}> Token Type
44
+ Root cause: ${e.errMsg}.
45
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===bt.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
46
+ The problem is in the <${t.name}> Token Type
47
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function NR(t){return de(t,n=>bn(n)?n.charCodeAt(0):n)}function uy(t,e,n){t[e]===void 0?t[e]=[n]:t[e].push(n)}const Gc=256;let Af=[];function qi(t){return t<Gc?t:Af[t]}function l5(){if(tt(Af)){Af=new Array(65536);for(let t=0;t<65536;t++)Af[t]=t>255?255+~~(t/255):t}}function Wc(t,e){const n=t.tokenTypeIdx;return n===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[n]===!0}function xf(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}let OR=1;const FR={};function Hc(t){const e=d5(t);f5(e),p5(e),h5(e),ve(e,n=>{n.isParent=n.categoryMatches.length>0})}function d5(t){let e=Ut(t),n=t,r=!0;for(;r;){n=Bc(Yn(de(n,s=>s.CATEGORIES)));const i=bf(n,e);e=e.concat(i),tt(i)?r=!1:n=i}return e}function f5(t){ve(t,e=>{MR(e)||(FR[OR]=e,e.tokenTypeIdx=OR++),zR(e)&&!Be(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),zR(e)||(e.CATEGORIES=[]),m5(e)||(e.categoryMatches=[]),g5(e)||(e.categoryMatchesMap={})})}function h5(t){ve(t,e=>{e.categoryMatches=[],ve(e.categoryMatchesMap,(n,r)=>{e.categoryMatches.push(FR[r].tokenTypeIdx)})})}function p5(t){ve(t,e=>{LR([],e)})}function LR(t,e){ve(t,n=>{e.categoryMatchesMap[n.tokenTypeIdx]=!0}),ve(e.CATEGORIES,n=>{const r=t.concat(e);on(r,n)||LR(r,n)})}function MR(t){return be(t,"tokenTypeIdx")}function zR(t){return be(t,"CATEGORIES")}function m5(t){return be(t,"categoryMatches")}function g5(t){return be(t,"categoryMatchesMap")}function y5(t){return be(t,"tokenTypeIdx")}const v5={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,n,r,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${n} characters.`}};var bt;(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(bt||(bt={}));const Vc={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
48
+ `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:v5,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Vc);class Rn{constructor(e,n=Vc){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const o=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${o}--> <${i}>`);const{time:a,value:c}=TR(s),u=a>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&u(`${o}<-- <${i}> time: ${a}ms`),this.traceInitIndent--,c}else return s()},typeof n=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
49
+ a boolean 2nd argument is no longer supported`);this.config=xn({},Vc,n);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Vc.lineTerminatorsPattern)this.config.lineTerminatorsPattern=c5;else if(this.config.lineTerminatorCharacters===Vc.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
50
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(n.safeMode&&n.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Be(e)?i={modes:{defaultMode:Ut(e)},defaultMode:Uc}:(s=!1,i=Ut(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(i5(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(s5(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},ve(i.modes,(a,c)=>{i.modes[c]=Ef(a,u=>hi(u))});const o=Kn(i.modes);if(ve(i.modes,(a,c)=>{this.TRACE_INIT(`Mode: <${c}> processing`,()=>{if(this.modes.push(c),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(j6(a,o))}),tt(this.lexerDefinitionErrors)){Hc(a);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=q6(a,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:n.positionTracking,ensureOptimizations:n.ensureOptimizations,safeMode:n.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[c]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[c]=u.charCodeToPatternIdxToConfig,this.emptyGroups=xn({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[c]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!tt(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const c=de(this.lexerDefinitionErrors,u=>u.message).join(`-----------------------
51
+ `);throw new Error(`Errors detected in definition of Lexer:
52
+ `+c)}ve(this.lexerDefinitionWarning,a=>{DR(a.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(_R?(this.chopInput=xs,this.match=this.matchWithTest):(this.updateLastIndex=Pt,this.match=this.matchWithExec),s&&(this.handleModes=Pt),this.trackStartLines===!1&&(this.computeNewColumn=xs),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=Pt),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const a=an(this.canModeBeOptimized,(c,u,l)=>(u===!1&&c.push(l),c),[]);if(n.ensureOptimizations&&!tt(a))throw Error(`Lexer Modes: < ${a.join(", ")} > cannot be optimized.
53
+ Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
54
+ Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{L6()}),this.TRACE_INIT("toFastProperties",()=>{RR(this)})})}tokenize(e,n=this.defaultMode){if(!tt(this.lexerDefinitionErrors)){const i=de(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
55
+ `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
56
+ `+i)}return this.tokenizeInternal(e,n)}tokenizeInternal(e,n){let r,i,s,o,a,c,u,l,d,f,h,p,m,y,g;const w=e,E=w.length;let k=0,A=0;const I=this.hasCustom?0:Math.floor(e.length/10),x=new Array(I),_=[];let P=this.trackStartLines?1:void 0,O=this.trackStartLines?1:void 0;const C=o5(this.emptyGroups),D=this.trackStartLines,R=this.config.lineTerminatorsPattern;let L=0,W=[],V=[];const Z=[],Fe=[];Object.freeze(Fe);let se;function K(){return W}function Te(ne){const fe=qi(ne),Ee=V[fe];return Ee===void 0?Fe:Ee}const ut=ne=>{if(Z.length===1&&ne.tokenType.PUSH_MODE===void 0){const fe=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(ne);_.push({offset:ne.startOffset,line:ne.startLine,column:ne.startColumn,length:ne.image.length,message:fe})}else{Z.pop();const fe=Wo(Z);W=this.patternIdxToConfig[fe],V=this.charCodeToPatternIdxToConfig[fe],L=W.length;const Ee=this.canModeBeOptimized[fe]&&this.config.safeMode===!1;V&&Ee?se=Te:se=K}};function H(ne){Z.push(ne),V=this.charCodeToPatternIdxToConfig[ne],W=this.patternIdxToConfig[ne],L=W.length,L=W.length;const fe=this.canModeBeOptimized[ne]&&this.config.safeMode===!1;V&&fe?se=Te:se=K}H.call(this,n);let Y;const ee=this.config.recoveryEnabled;for(;k<E;){c=null;const ne=w.charCodeAt(k),fe=se(ne),Ee=fe.length;for(r=0;r<Ee;r++){Y=fe[r];const ge=Y.pattern;u=null;const ce=Y.short;if(ce!==!1?ne===ce&&(c=ge):Y.isCustom===!0?(g=ge.exec(w,k,x,C),g!==null?(c=g[0],g.payload!==void 0&&(u=g.payload)):c=null):(this.updateLastIndex(ge,k),c=this.match(ge,e,k)),c!==null){if(a=Y.longerAlt,a!==void 0){const M=a.length;for(s=0;s<M;s++){const U=W[a[s]],oe=U.pattern;if(l=null,U.isCustom===!0?(g=oe.exec(w,k,x,C),g!==null?(o=g[0],g.payload!==void 0&&(l=g.payload)):o=null):(this.updateLastIndex(oe,k),o=this.match(oe,e,k)),o&&o.length>c.length){c=o,u=l,Y=U;break}}}break}}if(c!==null){if(d=c.length,f=Y.group,f!==void 0&&(h=Y.tokenTypeIdx,p=this.createTokenInstance(c,k,h,Y.tokenType,P,O,d),this.handlePayload(p,u),f===!1?A=this.addToken(x,A,p):C[f].push(p)),e=this.chopInput(e,d),k=k+d,O=this.computeNewColumn(O,d),D===!0&&Y.canLineTerminator===!0){let ge=0,ce,M;R.lastIndex=0;do ce=R.test(c),ce===!0&&(M=R.lastIndex-1,ge++);while(ce===!0);ge!==0&&(P=P+ge,O=d-M,this.updateTokenEndLineColumnLocation(p,f,M,ge,P,O,d))}this.handleModes(Y,ut,H,p)}else{const ge=k,ce=P,M=O;let U=ee===!1;for(;U===!1&&k<E;)for(e=this.chopInput(e,1),k++,i=0;i<L;i++){const oe=W[i],G=oe.pattern,Le=oe.short;if(Le!==!1?w.charCodeAt(k)===Le&&(U=!0):oe.isCustom===!0?U=G.exec(w,k,x,C)!==null:(this.updateLastIndex(G,k),U=G.exec(e)!==null),U===!0)break}if(m=k-ge,O=this.computeNewColumn(O,m),y=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(w,ge,m,ce,M),_.push({offset:ge,line:ce,column:M,length:m,message:y}),ee===!1)break}}return this.hasCustom||(x.length=A),{tokens:x,groups:C,errors:_}}handleModes(e,n,r,i){if(e.pop===!0){const s=e.push;n(i),s!==void 0&&r.call(this,s)}else e.push!==void 0&&r.call(this,e.push)}chopInput(e,n){return e.substring(n)}updateLastIndex(e,n){e.lastIndex=n}updateTokenEndLineColumnLocation(e,n,r,i,s,o,a){let c,u;n!==void 0&&(c=r===a-1,u=c?-1:0,i===1&&c===!0||(e.endLine=s+u,e.endColumn=o-1+-u))}computeNewColumn(e,n){return e+n}createOffsetOnlyToken(e,n,r,i){return{image:e,startOffset:n,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(e,n,r,i,s,o){return{image:e,startOffset:n,startLine:s,startColumn:o,tokenTypeIdx:r,tokenType:i}}createFullToken(e,n,r,i,s,o,a){return{image:e,startOffset:n,endOffset:n+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(e,n,r){return e.push(r),n}addTokenUsingMemberAccess(e,n,r){return e[n]=r,n++,n}handlePayloadNoCustom(e,n){}handlePayloadWithCustom(e,n){n!==null&&(e.payload=n)}matchWithTest(e,n,r){return e.test(n)===!0?n.substring(r,e.lastIndex):null}matchWithExec(e,n){const r=e.exec(n);return r!==null?r[0]:null}}Rn.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",Rn.NA=/NOT_APPLICABLE/;function Yo(t){return BR(t)?t.LABEL:t.name}function BR(t){return bn(t.LABEL)&&t.LABEL!==""}const w5="parent",qR="categories",jR="label",UR="group",GR="push_mode",WR="pop_mode",HR="longer_alt",VR="line_breaks",KR="start_chars_hint";function YR(t){return b5(t)}function b5(t){const e=t.pattern,n={};if(n.name=t.name,hi(e)||(n.PATTERN=e),be(t,w5))throw`The parent property is no longer supported.
57
+ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return be(t,qR)&&(n.CATEGORIES=t[qR]),Hc([n]),be(t,jR)&&(n.LABEL=t[jR]),be(t,UR)&&(n.GROUP=t[UR]),be(t,WR)&&(n.POP_MODE=t[WR]),be(t,GR)&&(n.PUSH_MODE=t[GR]),be(t,HR)&&(n.LONGER_ALT=t[HR]),be(t,VR)&&(n.LINE_BREAKS=t[VR]),be(t,KR)&&(n.START_CHARS_HINT=t[KR]),n}const ji=YR({name:"EOF",pattern:Rn.NA});Hc([ji]);function ly(t,e,n,r,i,s,o,a){return{image:e,startOffset:n,endOffset:r,startLine:i,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}function XR(t,e){return Wc(t,e)}const Xo={buildMismatchTokenMessage({expected:t,actual:e,previous:n,ruleName:r}){return`Expecting ${BR(t)?`--> ${Yo(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:n,customUserDescription:r,ruleName:i}){const s="Expecting: ",a=`
58
+ but found: '`+fr(e).image+"'";if(r)return s+r+a;{const c=an(t,(f,h)=>f.concat(h),[]),u=de(c,f=>`[${de(f,h=>Yo(h)).join(", ")}]`),d=`one of these possible Token sequences:
59
+ ${de(u,(f,h)=>` ${h+1}. ${f}`).join(`
60
+ `)}`;return s+d+a}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:n,ruleName:r}){const i="Expecting: ",o=`
61
+ but found: '`+fr(e).image+"'";if(n)return i+n+o;{const c=`expecting at least one iteration which starts with one of these possible Token sequences::
62
+ <${de(t,u=>`[${de(u,l=>Yo(l)).join(",")}]`).join(" ,")}>`;return i+c+o}}};Object.freeze(Xo);const E5={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
63
+ inside top level rule: ->`+t.name+"<-"}},Ls={buildDuplicateFoundError(t,e){function n(l){return l instanceof ot?l.terminalType.name:l instanceof cn?l.nonTerminalName:""}const r=t.name,i=fr(e),s=i.idx,o=Lr(i),a=n(i),c=s>0;let u=`->${o}${c?s:""}<- ${a?`with argument: ->${a}<-`:""}
64
+ appears more than once (${e.length} times) in the top level rule: ->${r}<-.
65
+ For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
66
+ `;return u=u.replace(/[ \t]+/g," "),u=u.replace(/\s\s+/g,`
67
+ `),u},buildNamespaceConflictError(t){return`Namespace conflict found in grammar.
68
+ The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>.
69
+ To resolve this make sure each Terminal and Non-Terminal names are unique
70
+ This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
71
+ and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){const e=de(t.prefixPath,i=>Yo(i)).join(", "),n=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix
72
+ in <OR${n}> inside <${t.topLevelRule.name}> Rule,
73
+ <${e}> may appears as a prefix path in all these alternatives.
74
+ See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
75
+ For Further details.`},buildAlternationAmbiguityError(t){const e=de(t.prefixPath,i=>Yo(i)).join(", "),n=t.alternation.idx===0?"":t.alternation.idx;let r=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in <OR${n}> inside <${t.topLevelRule.name}> Rule,
76
+ <${e}> may appears as a prefix path in all these alternatives.
77
+ `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
78
+ For Further details.`,r},buildEmptyRepetitionError(t){let e=Lr(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens.
79
+ This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in <OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
80
+ Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives:
81
+ <OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
82
+ has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){const e=t.topLevelRule.name,n=de(t.leftRecursionPath,s=>s.name),r=`${e} --> ${n.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
83
+ rule: <${e}> can be invoked from itself (directly or indirectly)
84
+ without consuming any Tokens. The grammar path that causes this is:
85
+ ${r}
86
+ To fix this refactor your grammar to remove the left recursion.
87
+ see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof Vo?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}};function D5(t,e){const n=new T5(t,e);return n.resolveRefs(),n.errors}class T5 extends Ko{constructor(e,n){super(),this.nameToTopRule=e,this.errMsgProvider=n,this.errors=[]}resolveRefs(){ve(Nt(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const n=this.nameToTopRule[e.nonTerminalName];if(n)e.referencedRule=n;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:un.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class R5 extends Rf{constructor(e,n){super(),this.topProd=e,this.path=n,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=Ut(this.path.ruleStack).reverse(),this.occurrenceStack=Ut(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,n=[]){this.found||super.walk(e,n)}walkProdRef(e,n,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=n.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){tt(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class S5 extends R5{constructor(e,n){super(e,n),this.path=n,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,n,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=n.concat(r),s=new En({definition:i});this.possibleTokTypes=jc(s),this.found=!0}}}class If extends Rf{constructor(e,n){super(),this.topRule=e,this.occurrence=n,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class k5 extends If{walkMany(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,n,r)}}class JR extends If{walkManySep(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,n,r)}}class $5 extends If{walkAtLeastOne(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,n,r)}}class ZR extends If{walkAtLeastOneSep(e,n,r){if(e.idx===this.occurrence){const i=fr(n.concat(r));this.result.isEndOfRule=i===void 0,i instanceof ot&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,n,r)}}function dy(t,e,n=[]){n=Ut(n);let r=[],i=0;function s(a){return a.concat(Gt(t,i+1))}function o(a){const c=dy(s(a),e,n);return r.concat(c)}for(;n.length<e&&i<t.length;){const a=t[i];if(a instanceof En)return o(a.definition);if(a instanceof cn)return o(a.definition);if(a instanceof Wt)r=o(a.definition);else if(a instanceof Nn){const c=a.definition.concat([new wt({definition:a.definition})]);return o(c)}else if(a instanceof On){const c=[new En({definition:a.definition}),new wt({definition:[new ot({terminalType:a.separator})].concat(a.definition)})];return o(c)}else if(a instanceof Dn){const c=a.definition.concat([new wt({definition:[new ot({terminalType:a.separator})].concat(a.definition)})]);r=o(c)}else if(a instanceof wt){const c=a.definition.concat([new wt({definition:a.definition})]);r=o(c)}else{if(a instanceof Tn)return ve(a.definition,c=>{tt(c.definition)===!1&&(r=o(c.definition))}),r;if(a instanceof ot)n.push(a.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:n,suffixDef:Gt(t,i)}),r}function QR(t,e,n,r){const i="EXIT_NONE_TERMINAL",s=[i],o="EXIT_ALTERNATIVE";let a=!1;const c=e.length,u=c-r-1,l=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!tt(d);){const f=d.pop();if(f===o){a&&Wo(d).idx<=u&&d.pop();continue}const h=f.def,p=f.idx,m=f.ruleStack,y=f.occurrenceStack;if(tt(h))continue;const g=h[0];if(g===i){const w={idx:p,def:Gt(h),ruleStack:qc(m),occurrenceStack:qc(y)};d.push(w)}else if(g instanceof ot)if(p<c-1){const w=p+1,E=e[w];if(n(E,g.terminalType)){const k={idx:w,def:Gt(h),ruleStack:m,occurrenceStack:y};d.push(k)}}else if(p===c-1)l.push({nextTokenType:g.terminalType,nextTokenOccurrence:g.idx,ruleStack:m,occurrenceStack:y}),a=!0;else throw Error("non exhaustive match");else if(g instanceof cn){const w=Ut(m);w.push(g.nonTerminalName);const E=Ut(y);E.push(g.idx);const k={idx:p,def:g.definition.concat(s,Gt(h)),ruleStack:w,occurrenceStack:E};d.push(k)}else if(g instanceof Wt){const w={idx:p,def:Gt(h),ruleStack:m,occurrenceStack:y};d.push(w),d.push(o);const E={idx:p,def:g.definition.concat(Gt(h)),ruleStack:m,occurrenceStack:y};d.push(E)}else if(g instanceof Nn){const w=new wt({definition:g.definition,idx:g.idx}),E=g.definition.concat([w],Gt(h)),k={idx:p,def:E,ruleStack:m,occurrenceStack:y};d.push(k)}else if(g instanceof On){const w=new ot({terminalType:g.separator}),E=new wt({definition:[w].concat(g.definition),idx:g.idx}),k=g.definition.concat([E],Gt(h)),A={idx:p,def:k,ruleStack:m,occurrenceStack:y};d.push(A)}else if(g instanceof Dn){const w={idx:p,def:Gt(h),ruleStack:m,occurrenceStack:y};d.push(w),d.push(o);const E=new ot({terminalType:g.separator}),k=new wt({definition:[E].concat(g.definition),idx:g.idx}),A=g.definition.concat([k],Gt(h)),I={idx:p,def:A,ruleStack:m,occurrenceStack:y};d.push(I)}else if(g instanceof wt){const w={idx:p,def:Gt(h),ruleStack:m,occurrenceStack:y};d.push(w),d.push(o);const E=new wt({definition:g.definition,idx:g.idx}),k=g.definition.concat([E],Gt(h)),A={idx:p,def:k,ruleStack:m,occurrenceStack:y};d.push(A)}else if(g instanceof Tn)for(let w=g.definition.length-1;w>=0;w--){const E=g.definition[w],k={idx:p,def:E.definition.concat(Gt(h)),ruleStack:m,occurrenceStack:y};d.push(k),d.push(o)}else if(g instanceof En)d.push({idx:p,def:g.definition.concat(Gt(h)),ruleStack:m,occurrenceStack:y});else if(g instanceof Vo)d.push(C5(g,p,m,y));else throw Error("non exhaustive match")}return l}function C5(t,e,n,r){const i=Ut(n);i.push(t.name);const s=Ut(r);return s.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:s}}var ht;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(ht||(ht={}));function fy(t){if(t instanceof Wt||t==="Option")return ht.OPTION;if(t instanceof wt||t==="Repetition")return ht.REPETITION;if(t instanceof Nn||t==="RepetitionMandatory")return ht.REPETITION_MANDATORY;if(t instanceof On||t==="RepetitionMandatoryWithSeparator")return ht.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof Dn||t==="RepetitionWithSeparator")return ht.REPETITION_WITH_SEPARATOR;if(t instanceof Tn||t==="Alternation")return ht.ALTERNATION;throw Error("non exhaustive match")}function e1(t){const{occurrence:e,rule:n,prodType:r,maxLookahead:i}=t,s=fy(r);return s===ht.ALTERNATION?Pf(e,n,i):Nf(e,n,s,i)}function _5(t,e,n,r,i,s){const o=Pf(t,e,n),a=i1(o)?xf:Wc;return s(o,r,a,i)}function A5(t,e,n,r,i,s){const o=Nf(t,e,i,n),a=i1(o)?xf:Wc;return s(o[0],a,r)}function x5(t,e,n,r){const i=t.length,s=dr(t,o=>dr(o,a=>a.length===1));if(e)return function(o){const a=de(o,c=>c.GATE);for(let c=0;c<i;c++){const u=t[c],l=u.length,d=a[c];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<l;f++){const h=u[f],p=h.length;for(let m=0;m<p;m++){const y=this.LA(m+1);if(n(y,h[m])===!1)continue e}return c}}};if(s&&!r){const o=de(t,c=>Yn(c)),a=an(o,(c,u,l)=>(ve(u,d=>{be(c,d.tokenTypeIdx)||(c[d.tokenTypeIdx]=l),ve(d.categoryMatches,f=>{be(c,f)||(c[f]=l)})}),c),{});return function(){const c=this.LA(1);return a[c.tokenTypeIdx]}}else return function(){for(let o=0;o<i;o++){const a=t[o],c=a.length;e:for(let u=0;u<c;u++){const l=a[u],d=l.length;for(let f=0;f<d;f++){const h=this.LA(f+1);if(n(h,l[f])===!1)continue e}return o}}}}function I5(t,e,n){const r=dr(t,s=>s.length===1),i=t.length;if(r&&!n){const s=Yn(t);if(s.length===1&&tt(s[0].categoryMatches)){const a=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{const o=an(s,(a,c,u)=>(a[c.tokenTypeIdx]=!0,ve(c.categoryMatches,l=>{a[l]=!0}),a),[]);return function(){const a=this.LA(1);return o[a.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const o=t[s],a=o.length;for(let c=0;c<a;c++){const u=this.LA(c+1);if(e(u,o[c])===!1)continue e}return!0}return!1}}class P5 extends Rf{constructor(e,n,r){super(),this.topProd=e,this.targetOccurrence=n,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,n,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===n?(this.restDef=r.concat(i),!0):!1}walkOption(e,n,r){this.checkIsTarget(e,ht.OPTION,n,r)||super.walkOption(e,n,r)}walkAtLeastOne(e,n,r){this.checkIsTarget(e,ht.REPETITION_MANDATORY,n,r)||super.walkOption(e,n,r)}walkAtLeastOneSep(e,n,r){this.checkIsTarget(e,ht.REPETITION_MANDATORY_WITH_SEPARATOR,n,r)||super.walkOption(e,n,r)}walkMany(e,n,r){this.checkIsTarget(e,ht.REPETITION,n,r)||super.walkOption(e,n,r)}walkManySep(e,n,r){this.checkIsTarget(e,ht.REPETITION_WITH_SEPARATOR,n,r)||super.walkOption(e,n,r)}}class t1 extends Ko{constructor(e,n,r){super(),this.targetOccurrence=e,this.targetProdType=n,this.targetRef=r,this.result=[]}checkIsTarget(e,n){e.idx===this.targetOccurrence&&this.targetProdType===n&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,ht.OPTION)}visitRepetition(e){this.checkIsTarget(e,ht.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,ht.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,ht.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,ht.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,ht.ALTERNATION)}}function n1(t){const e=new Array(t);for(let n=0;n<t;n++)e[n]=[];return e}function hy(t){let e=[""];for(let n=0;n<t.length;n++){const r=t[n],i=[];for(let s=0;s<e.length;s++){const o=e[s];i.push(o+"_"+r.tokenTypeIdx);for(let a=0;a<r.categoryMatches.length;a++){const c="_"+r.categoryMatches[a];i.push(o+c)}}e=i}return e}function N5(t,e,n){for(let r=0;r<t.length;r++){if(r===n)continue;const i=t[r];for(let s=0;s<e.length;s++){const o=e[s];if(i[o]===!0)return!1}}return!0}function r1(t,e){const n=de(t,o=>dy([o],1)),r=n1(n.length),i=de(n,o=>{const a={};return ve(o,c=>{const u=hy(c.partialPath);ve(u,l=>{a[l]=!0})}),a});let s=n;for(let o=1;o<=e;o++){const a=s;s=n1(a.length);for(let c=0;c<a.length;c++){const u=a[c];for(let l=0;l<u.length;l++){const d=u[l].partialPath,f=u[l].suffixDef,h=hy(d);if(N5(i,h,c)||tt(f)||d.length===e){const m=r[c];if(py(m,d)===!1){m.push(d);for(let y=0;y<h.length;y++){const g=h[y];i[c][g]=!0}}}else{const m=dy(f,o+1,d);s[c]=s[c].concat(m),ve(m,y=>{const g=hy(y.partialPath);ve(g,w=>{i[c][w]=!0})})}}}}return r}function Pf(t,e,n,r){const i=new t1(t,ht.ALTERNATION,r);return e.accept(i),r1(i.result,n)}function Nf(t,e,n,r){const i=new t1(t,n);e.accept(i);const s=i.result,a=new P5(e,t,n).startWalking(),c=new En({definition:s}),u=new En({definition:a});return r1([c,u],r)}function py(t,e){e:for(let n=0;n<t.length;n++){const r=t[n];if(r.length===e.length){for(let i=0;i<r.length;i++){const s=e[i],o=r[i];if((s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function O5(t,e){return t.length<e.length&&dr(t,(n,r)=>{const i=e[r];return n===i||i.categoryMatchesMap[n.tokenTypeIdx]})}function i1(t){return dr(t,e=>dr(e,n=>dr(n,r=>tt(r.categoryMatches))))}function F5(t){const e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return de(e,n=>Object.assign({type:un.CUSTOM_LOOKAHEAD_VALIDATION},n))}function L5(t,e,n,r){const i=Pn(t,c=>M5(c,n)),s=X5(t,e,n),o=Pn(t,c=>H5(c,n)),a=Pn(t,c=>q5(c,t,r,n));return i.concat(s,o,a)}function M5(t,e){const n=new B5;t.accept(n);const r=n.allProductions,i=Q4(r,z5),s=hr(i,a=>a.length>1);return de(Nt(s),a=>{const c=fr(a),u=e.buildDuplicateFoundError(t,a),l=Lr(c),d={message:u,type:un.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:l,occurrence:c.idx},f=s1(c);return f&&(d.parameter=f),d})}function z5(t){return`${Lr(t)}_#_${t.idx}_#_${s1(t)}`}function s1(t){return t instanceof ot?t.terminalType.name:t instanceof cn?t.nonTerminalName:""}class B5 extends Ko{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function q5(t,e,n,r){const i=[];if(an(e,(o,a)=>a.name===t.name?o+1:o,0)>1){const o=r.buildDuplicateRuleNameError({topLevelRule:t,grammarName:n});i.push({message:o,type:un.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function j5(t,e,n){const r=[];let i;return on(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:un.INVALID_RULE_OVERRIDE,ruleName:t})),r}function o1(t,e,n,r=[]){const i=[],s=Of(e.definition);if(tt(s))return[];{const o=t.name;on(s,t)&&i.push({message:n.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:r}),type:un.LEFT_RECURSION,ruleName:o});const c=bf(s,r.concat([t])),u=Pn(c,l=>{const d=Ut(r);return d.push(l),o1(t,l,n,d)});return i.concat(u)}}function Of(t){let e=[];if(tt(t))return e;const n=fr(t);if(n instanceof cn)e.push(n.referencedRule);else if(n instanceof En||n instanceof Wt||n instanceof Nn||n instanceof On||n instanceof Dn||n instanceof wt)e=e.concat(Of(n.definition));else if(n instanceof Tn)e=Yn(de(n.definition,s=>Of(s.definition)));else if(!(n instanceof ot))throw Error("non exhaustive match");const r=Tf(n),i=t.length>1;if(r&&i){const s=Gt(t);return e.concat(Of(s))}else return e}class my extends Ko{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function U5(t,e){const n=new my;t.accept(n);const r=n.alternations;return Pn(r,s=>{const o=qc(s.definition);return Pn(o,(a,c)=>{const u=QR([a],[],Wc,1);return tt(u)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:s,emptyChoiceIdx:c}),type:un.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:s.idx,alternative:c+1}]:[]})})}function G5(t,e,n){const r=new my;t.accept(r);let i=r.alternations;return i=Ef(i,o=>o.ignoreAmbiguities===!0),Pn(i,o=>{const a=o.idx,c=o.maxLookahead||e,u=Pf(a,t,c,o),l=K5(u,o,t,n),d=Y5(u,o,t,n);return l.concat(d)})}class W5 extends Ko{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}function H5(t,e){const n=new my;t.accept(n);const r=n.alternations;return Pn(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:s}),type:un.TOO_MANY_ALTS,ruleName:t.name,occurrence:s.idx}]:[])}function V5(t,e,n){const r=[];return ve(t,i=>{const s=new W5;i.accept(s);const o=s.allProductions;ve(o,a=>{const c=fy(a),u=a.maxLookahead||e,l=a.idx,f=Nf(l,i,c,u)[0];if(tt(Yn(f))){const h=n.buildEmptyRepetitionError({topLevelRule:i,repetition:a});r.push({message:h,type:un.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function K5(t,e,n,r){const i=[],s=an(t,(a,c,u)=>(e.definition[u].ignoreAmbiguities===!0||ve(c,l=>{const d=[u];ve(t,(f,h)=>{u!==h&&py(f,l)&&e.definition[h].ignoreAmbiguities!==!0&&d.push(h)}),d.length>1&&!py(i,l)&&(i.push(l),a.push({alts:d,path:l}))}),a),[]);return de(s,a=>{const c=de(a.alts,l=>l+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:c,prefixPath:a.path}),type:un.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:e.idx,alternatives:a.alts}})}function Y5(t,e,n,r){const i=an(t,(o,a,c)=>{const u=de(a,l=>({idx:c,path:l}));return o.concat(u)},[]);return Bc(Pn(i,o=>{if(e.definition[o.idx].ignoreAmbiguities===!0)return[];const c=o.idx,u=o.path,l=In(i,f=>e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx<c&&O5(f.path,u));return de(l,f=>{const h=[f.idx+1,c+1],p=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:h,prefixPath:f.path}),type:un.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:p,alternatives:h}})}))}function X5(t,e,n){const r=[],i=de(e,s=>s.name);return ve(t,s=>{const o=s.name;if(on(i,o)){const a=n.buildNamespaceConflictError(s);r.push({message:a,type:un.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),r}function J5(t){const e=ry(t,{errMsgProvider:E5}),n={};return ve(t.rules,r=>{n[r.name]=r}),D5(n,e.errMsgProvider)}function Z5(t){return t=ry(t,{errMsgProvider:Ls}),L5(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}const a1="MismatchedTokenException",c1="NoViableAltException",u1="EarlyExitException",l1="NotAllInputParsedException",d1=[a1,c1,u1,l1];Object.freeze(d1);function Ff(t){return on(d1,t.name)}class Lf extends Error{constructor(e,n){super(e),this.token=n,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class f1 extends Lf{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=a1}}class Q5 extends Lf{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=c1}}class eq extends Lf{constructor(e,n){super(e,n),this.name=l1}}class tq extends Lf{constructor(e,n,r){super(e,n),this.previousToken=r,this.name=u1}}const gy={},h1="InRuleRecoveryException";class nq extends Error{constructor(e){super(e),this.name=h1}}class rq{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=be(e,"recoveryEnabled")?e.recoveryEnabled:pi.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=iq)}getTokenToInsert(e){const n=ly(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return n.isInsertedInRecovery=!0,n}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,n,r,i){const s=this.findReSyncTokenType(),o=this.exportLexerState(),a=[];let c=!1;const u=this.LA(1);let l=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:f,ruleName:this.getCurrRuleFullName()}),p=new f1(h,u,this.LA(0));p.resyncedTokens=qc(a),this.SAVE_ERROR(p)};for(;!c;)if(this.tokenMatcher(l,i)){d();return}else if(r.call(this)){d(),e.apply(this,n);return}else this.tokenMatcher(l,s)?c=!0:(l=this.SKIP_TOKEN(),this.addToResyncTokens(l,a));this.importLexerState(o)}shouldInRepetitionRecoveryBeTried(e,n,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,n)))}getFollowsForInRuleRecovery(e,n){const r=this.getCurrentGrammarPath(e,n);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,n){if(this.canRecoverWithSingleTokenInsertion(e,n))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new nq("sad sad panda")}canPerformInRuleRecovery(e,n){return this.canRecoverWithSingleTokenInsertion(e,n)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,n){if(!this.canTokenTypeBeInsertedInRecovery(e)||tt(n))return!1;const r=this.LA(1);return Ho(n,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const n=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(n);return on(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let n=this.LA(1),r=2;for(;;){const i=Ho(e,s=>XR(n,s));if(i!==void 0)return i;n=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return gy;const e=this.getLastExplicitRuleShortName(),n=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:n,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,n=this.RULE_OCCURRENCE_STACK;return de(e,(r,i)=>i===0?gy:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:n[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=de(this.buildFullFollowKeyStack(),n=>this.getFollowSetFromFollowKey(n));return Yn(e)}getFollowSetFromFollowKey(e){if(e===gy)return[ji];const n=e.ruleName+e.idxInCallingRule+kR+e.inRule;return this.resyncFollows[n]}addToResyncTokens(e,n){return this.tokenMatcher(e,ji)||n.push(e),n}reSyncTo(e){const n=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,n);return qc(n)}attemptInRepetitionRecovery(e,n,r,i,s,o,a){}getCurrentGrammarPath(e,n){const r=this.getHumanReadableRuleStack(),i=Ut(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:n}}getHumanReadableRuleStack(){return de(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function iq(t,e,n,r,i,s,o){const a=this.getKeyForAutomaticLookahead(r,i);let c=this.firstAfterRepMap[a];if(c===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];c=new s(h,i).startWalking(),this.firstAfterRepMap[a]=c}let u=c.token,l=c.occurrence;const d=c.isEndOfRule;this.RULE_STACK.length===1&&d&&u===void 0&&(u=ji,l=1),!(u===void 0||l===void 0)&&this.shouldInRepetitionRecoveryBeTried(u,l,o)&&this.tryInRepetitionRecovery(t,e,n,u)}const sq=4,Ui=8,p1=1<<Ui,m1=2<<Ui,yy=3<<Ui,vy=4<<Ui,wy=5<<Ui,Mf=6<<Ui;function by(t,e,n){return n|e|t}class Ey{constructor(e){var n;this.maxLookahead=(n=e?.maxLookahead)!==null&&n!==void 0?n:pi.maxLookahead}validate(e){const n=this.validateNoLeftRecursion(e.rules);if(tt(n)){const r=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...n,...r,...i,...s]}return n}validateNoLeftRecursion(e){return Pn(e,n=>o1(n,n,Ls))}validateEmptyOrAlternatives(e){return Pn(e,n=>U5(n,Ls))}validateAmbiguousAlternationAlternatives(e,n){return Pn(e,r=>G5(r,n,Ls))}validateSomeNonEmptyLookaheadPath(e,n){return V5(e,n,Ls)}buildLookaheadForAlternation(e){return _5(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,x5)}buildLookaheadForOptional(e){return A5(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,fy(e.prodType),I5)}}class oq{initLooksAhead(e){this.dynamicTokensEnabled=be(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:pi.dynamicTokensEnabled,this.maxLookahead=be(e,"maxLookahead")?e.maxLookahead:pi.maxLookahead,this.lookaheadStrategy=be(e,"lookaheadStrategy")?e.lookaheadStrategy:new Ey({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){ve(e,n=>{this.TRACE_INIT(`${n.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:o,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:c}=cq(n);ve(r,u=>{const l=u.idx===0?"":u.idx;this.TRACE_INIT(`${Lr(u)}${l}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:n,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=by(this.fullRuleNameToShort[n.name],p1,u.idx);this.setLaFuncCache(f,d)})}),ve(i,u=>{this.computeLookaheadFunc(n,u.idx,yy,"Repetition",u.maxLookahead,Lr(u))}),ve(s,u=>{this.computeLookaheadFunc(n,u.idx,m1,"Option",u.maxLookahead,Lr(u))}),ve(o,u=>{this.computeLookaheadFunc(n,u.idx,vy,"RepetitionMandatory",u.maxLookahead,Lr(u))}),ve(a,u=>{this.computeLookaheadFunc(n,u.idx,Mf,"RepetitionMandatoryWithSeparator",u.maxLookahead,Lr(u))}),ve(c,u=>{this.computeLookaheadFunc(n,u.idx,wy,"RepetitionWithSeparator",u.maxLookahead,Lr(u))})})})}computeLookaheadFunc(e,n,r,i,s,o){this.TRACE_INIT(`${o}${n===0?"":n}`,()=>{const a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:n,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),c=by(this.fullRuleNameToShort[e.name],r,n);this.setLaFuncCache(c,a)})}getKeyForAutomaticLookahead(e,n){const r=this.getLastExplicitRuleShortName();return by(r,e,n)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,n){this.lookAheadFuncsCache.set(e,n)}}class aq extends Ko{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const zf=new aq;function cq(t){zf.reset(),t.accept(zf);const e=zf.dslMethods;return zf.reset(),e}function g1(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset)}function y1(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.startColumn=e.startColumn,t.startLine=e.startLine,t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine)}function uq(t,e,n){t.children[n]===void 0?t.children[n]=[e]:t.children[n].push(e)}function lq(t,e,n){t.children[e]===void 0?t.children[e]=[n]:t.children[e].push(n)}const dq="name";function v1(t,e){Object.defineProperty(t,dq,{enumerable:!1,configurable:!0,writable:!1,value:e})}function fq(t,e){const n=Kn(t),r=n.length;for(let i=0;i<r;i++){const s=n[i],o=t[s],a=o.length;for(let c=0;c<a;c++){const u=o[c];u.tokenTypeIdx===void 0&&this[u.name](u.children,e)}}}function hq(t,e){const n=function(){};v1(n,t+"BaseSemantics");const r={visit:function(i,s){if(Be(i)&&(i=i[0]),!hi(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=mq(this,e);if(!tt(i)){const s=de(i,o=>o.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
88
+ ${s.join(`
89
+
90
+ `).replace(/\n/g,`
91
+ `)}`)}}};return n.prototype=r,n.prototype.constructor=n,n._RULE_NAMES=e,n}function pq(t,e,n){const r=function(){};v1(r,t+"BaseSemanticsWithDefaults");const i=Object.create(n.prototype);return ve(e,s=>{i[s]=fq}),r.prototype=i,r.prototype.constructor=r,r}var Dy;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(Dy||(Dy={}));function mq(t,e){return gq(t,e)}function gq(t,e){const n=In(e,i=>ci(t[i])===!1),r=de(n,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:Dy.MISSING_METHOD,methodName:i}));return Bc(r)}class yq{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=be(e,"nodeLocationTracking")?e.nodeLocationTracking:pi.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Pt,this.cstFinallyStateUpdate=Pt,this.cstPostTerminal=Pt,this.cstPostNonTerminal=Pt,this.cstPostRule=Pt;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=y1,this.setNodeLocationFromNode=y1,this.cstPostRule=Pt,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Pt,this.setNodeLocationFromNode=Pt,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=g1,this.setNodeLocationFromNode=g1,this.cstPostRule=Pt,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Pt,this.setNodeLocationFromNode=Pt,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Pt,this.setNodeLocationFromNode=Pt,this.cstPostRule=Pt,this.setInitialNodeLocation=Pt;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const n=this.LA(1);e.location={startOffset:n.startOffset,startLine:n.startLine,startColumn:n.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const n={name:e,children:Object.create(null)};this.setInitialNodeLocation(n),this.CST_STACK.push(n)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?(r.endOffset=n.endOffset,r.endLine=n.endLine,r.endColumn=n.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?r.endOffset=n.endOffset:r.startOffset=NaN}cstPostTerminal(e,n){const r=this.CST_STACK[this.CST_STACK.length-1];uq(r,n,e),this.setNodeLocationFromToken(r.location,n)}cstPostNonTerminal(e,n){const r=this.CST_STACK[this.CST_STACK.length-1];lq(r,n,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(hi(this.baseCstVisitorConstructor)){const e=hq(this.className,Kn(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(hi(this.baseCstVisitorWithDefaultsConstructor)){const e=pq(this.className,Kn(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}class vq{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):jf}LA(e){const n=this.currIdx+e;return n<0||this.tokVectorLength<=n?jf:this.tokVector[n]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}class wq{ACTION(e){return e.call(this)}consume(e,n,r){return this.consumeInternal(n,e,r)}subrule(e,n,r){return this.subruleInternal(n,e,r)}option(e,n){return this.optionInternal(n,e)}or(e,n){return this.orInternal(n,e)}many(e,n){return this.manyInternal(e,n)}atLeastOne(e,n){return this.atLeastOneInternal(e,n)}CONSUME(e,n){return this.consumeInternal(e,0,n)}CONSUME1(e,n){return this.consumeInternal(e,1,n)}CONSUME2(e,n){return this.consumeInternal(e,2,n)}CONSUME3(e,n){return this.consumeInternal(e,3,n)}CONSUME4(e,n){return this.consumeInternal(e,4,n)}CONSUME5(e,n){return this.consumeInternal(e,5,n)}CONSUME6(e,n){return this.consumeInternal(e,6,n)}CONSUME7(e,n){return this.consumeInternal(e,7,n)}CONSUME8(e,n){return this.consumeInternal(e,8,n)}CONSUME9(e,n){return this.consumeInternal(e,9,n)}SUBRULE(e,n){return this.subruleInternal(e,0,n)}SUBRULE1(e,n){return this.subruleInternal(e,1,n)}SUBRULE2(e,n){return this.subruleInternal(e,2,n)}SUBRULE3(e,n){return this.subruleInternal(e,3,n)}SUBRULE4(e,n){return this.subruleInternal(e,4,n)}SUBRULE5(e,n){return this.subruleInternal(e,5,n)}SUBRULE6(e,n){return this.subruleInternal(e,6,n)}SUBRULE7(e,n){return this.subruleInternal(e,7,n)}SUBRULE8(e,n){return this.subruleInternal(e,8,n)}SUBRULE9(e,n){return this.subruleInternal(e,9,n)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,n,r=Uf){if(on(this.definedRulesNames,e)){const o={message:Ls.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:un.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(o)}this.definedRulesNames.push(e);const i=this.defineRule(e,n,r);return this[e]=i,i}OVERRIDE_RULE(e,n,r=Uf){const i=j5(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,n,r);return this[e]=s,s}BACKTRACK(e,n){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,n),!0}catch(i){if(Ff(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return $6(Nt(this.gastProductionsCache))}}class bq{initRecognizerEngine(e,n){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=xf,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},be(n,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
92
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
93
+ For Further details.`);if(Be(e)){if(tt(e))throw Error(`A Token Vocabulary cannot be empty.
94
+ Note that the first argument for the parser constructor
95
+ is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
96
+ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
97
+ For Further details.`)}if(Be(e))this.tokensMap=an(e,(s,o)=>(s[o.name]=o,s),{});else if(be(e,"modes")&&dr(Yn(Nt(e.modes)),y5)){const s=Yn(Nt(e.modes)),o=iy(s);this.tokensMap=an(o,(a,c)=>(a[c.name]=c,a),{})}else if(Vn(e))this.tokensMap=Ut(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=ji;const r=be(e,"modes")?Yn(Nt(e.modes)):Nt(e),i=dr(r,s=>tt(s.categoryMatches));this.tokenMatcher=i?xf:Wc,Hc(Nt(this.tokensMap))}defineRule(e,n,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
98
+ Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=be(r,"resyncEnabled")?r.resyncEnabled:Uf.resyncEnabled,s=be(r,"recoveryValueFunc")?r.recoveryValueFunc:Uf.recoveryValueFunc,o=this.ruleShortNameIdx<<sq+Ui;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;let a;return this.outputCst===!0?a=function(...l){try{this.ruleInvocationStateUpdate(o,e,this.subruleIdx),n.apply(this,l);const d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}}:a=function(...l){try{return this.ruleInvocationStateUpdate(o,e,this.subruleIdx),n.apply(this,l)}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(a,{ruleName:e,originalGrammarAction:n})}invokeRuleCatch(e,n,r){const i=this.RULE_STACK.length===1,s=n&&!this.isBackTracking()&&this.recoveryEnabled;if(Ff(e)){const o=e;if(s){const a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){const c=this.CST_STACK[this.CST_STACK.length-1];return c.recoveredNode=!0,c}else return r(e);else{if(this.outputCst){const c=this.CST_STACK[this.CST_STACK.length-1];c.recoveredNode=!0,o.partialCstResult=c}throw o}}else{if(i)return this.moveToTerminatedState(),r(e);throw o}}else throw e}optionInternal(e,n){const r=this.getKeyForAutomaticLookahead(m1,n);return this.optionInternalLogic(e,n,r)}optionInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const o=e.GATE;if(o!==void 0){const a=i;i=()=>o.call(this)&&a.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,n){const r=this.getKeyForAutomaticLookahead(vy,e);return this.atLeastOneInternalLogic(e,n,r)}atLeastOneInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof n!="function"){s=n.DEF;const o=n.GATE;if(o!==void 0){const a=i;i=()=>o.call(this)&&a.call(this)}}else s=n;if(i.call(this)===!0){let o=this.doSingleRepetition(s);for(;i.call(this)===!0&&o===!0;)o=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,ht.REPETITION_MANDATORY,n.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,n],i,vy,e,$5)}atLeastOneSepFirstInternal(e,n){const r=this.getKeyForAutomaticLookahead(Mf,e);this.atLeastOneSepFirstInternalLogic(e,n,r)}atLeastOneSepFirstInternalLogic(e,n,r){const i=n.DEF,s=n.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,ZR],a,Mf,e,ZR)}else throw this.raiseEarlyExitException(e,ht.REPETITION_MANDATORY_WITH_SEPARATOR,n.ERR_MSG)}manyInternal(e,n){const r=this.getKeyForAutomaticLookahead(yy,e);return this.manyInternalLogic(e,n,r)}manyInternalLogic(e,n,r){let i=this.getLaFuncFromCache(r),s;if(typeof n!="function"){s=n.DEF;const a=n.GATE;if(a!==void 0){const c=i;i=()=>a.call(this)&&c.call(this)}}else s=n;let o=!0;for(;i.call(this)===!0&&o===!0;)o=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,n],i,yy,e,k5,o)}manySepFirstInternal(e,n){const r=this.getKeyForAutomaticLookahead(wy,e);this.manySepFirstInternalLogic(e,n,r)}manySepFirstInternalLogic(e,n,r){const i=n.DEF,s=n.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const a=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,a,i,JR],a,wy,e,JR)}}repetitionSepSecondInternal(e,n,r,i,s){for(;r();)this.CONSUME(n),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,n,r,i,s],r,Mf,e,s)}doSingleRepetition(e){const n=this.getLexerPosition();return e.call(this),this.getLexerPosition()>n}orInternal(e,n){const r=this.getKeyForAutomaticLookahead(p1,n),i=Be(e)?e:e.DEF,o=this.getLaFuncFromCache(r).call(this,i);if(o!==void 0)return i[o].ALT.call(this);this.raiseNoAltException(n,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),n=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new eq(n,e))}}subruleInternal(e,n,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=n,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,n,r){throw Ff(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,n!==void 0&&n.LABEL!==void 0?n.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,n,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,n,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,n,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:n,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new f1(i,n,s))}consumeInternalRecovery(e,n,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,n);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===h1?r:s}}else throw r}saveRecogState(){const e=this.errors,n=Ut(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:n,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,n,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(n)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ji)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class Eq{initErrorHandler(e){this._errors=[],this.errorMessageProvider=be(e,"errorMessageProvider")?e.errorMessageProvider:pi.errorMessageProvider}SAVE_ERROR(e){if(Ff(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Ut(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return Ut(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,n,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],a=Nf(e,s,n,this.maxLookahead)[0],c=[];for(let l=1;l<=this.maxLookahead;l++)c.push(this.LA(l));const u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:c,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new tq(u,this.LA(1),this.LA(0)))}raiseNoAltException(e,n){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=Pf(e,i,this.maxLookahead),o=[];for(let u=1;u<=this.maxLookahead;u++)o.push(this.LA(u));const a=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:a,customUserDescription:n,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Q5(c,this.LA(1),a))}}class Dq{initContentAssist(){}computeContentAssist(e,n){const r=this.gastProductionsCache[e];if(hi(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return QR([r],n,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const n=fr(e.ruleStack),i=this.getGAstProductions()[n];return new S5(i,e).startWalking()}}const Bf={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Bf);const w1=!0,b1=Math.pow(2,Ui)-1,E1=YR({name:"RECORDING_PHASE_TOKEN",pattern:Rn.NA});Hc([E1]);const D1=ly(E1,`This IToken indicates the Parser is in Recording Phase
99
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(D1);const Tq={name:`This CSTNode indicates the Parser is in Recording Phase
100
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class Rq{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const n=e>0?e:"";this[`CONSUME${n}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${n}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${n}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${n}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${n}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${n}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${n}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${n}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,n,r){return this.consumeInternalRecord(n,e,r)},this.subrule=function(e,n,r){return this.subruleInternalRecord(n,e,r)},this.option=function(e,n){return this.optionInternalRecord(n,e)},this.or=function(e,n){return this.orInternalRecord(n,e)},this.many=function(e,n){this.manyInternalRecord(e,n)},this.atLeastOne=function(e,n){this.atLeastOneInternalRecord(e,n)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let n=0;n<10;n++){const r=n>0?n:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,n){return()=>!0}LA_RECORD(e){return jf}topLevelRuleRecord(e,n){try{const r=new Vo({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),n.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
101
+ This error was thrown during the "grammar recording phase" For more info see:
102
+ https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,n){return Kc.call(this,Wt,e,n)}atLeastOneInternalRecord(e,n){Kc.call(this,Nn,n,e)}atLeastOneSepFirstInternalRecord(e,n){Kc.call(this,On,n,e,w1)}manyInternalRecord(e,n){Kc.call(this,wt,n,e)}manySepFirstInternalRecord(e,n){Kc.call(this,Dn,n,e,w1)}orInternalRecord(e,n){return Sq.call(this,e,n)}subruleInternalRecord(e,n,r){if(qf(n),!e||be(e,"ruleName")===!1){const a=new Error(`<SUBRULE${T1(n)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
103
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=Wo(this.recordingProdStack),s=e.ruleName,o=new cn({idx:n,nonTerminalName:s,label:r?.LABEL,referencedRule:void 0});return i.definition.push(o),this.outputCst?Tq:Bf}consumeInternalRecord(e,n,r){if(qf(n),!MR(e)){const o=new Error(`<CONSUME${T1(n)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
104
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=Wo(this.recordingProdStack),s=new ot({idx:n,terminalType:e,label:r?.LABEL});return i.definition.push(s),D1}}function Kc(t,e,n,r=!1){qf(n);const i=Wo(this.recordingProdStack),s=ci(e)?e:e.DEF,o=new t({definition:[],idx:n});return r&&(o.separator=e.SEP),be(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),i.definition.push(o),this.recordingProdStack.pop(),Bf}function Sq(t,e){qf(e);const n=Wo(this.recordingProdStack),r=Be(t)===!1,i=r===!1?t:t.DEF,s=new Tn({definition:[],idx:e,ignoreAmbiguities:r&&t.IGNORE_AMBIGUITIES===!0});be(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD);const o=bR(i,a=>ci(a.GATE));return s.hasPredicates=o,n.definition.push(s),ve(i,a=>{const c=new En({definition:[]});s.definition.push(c),be(a,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=a.IGNORE_AMBIGUITIES:be(a,"GATE")&&(c.ignoreAmbiguities=!0),this.recordingProdStack.push(c),a.ALT.call(this),this.recordingProdStack.pop()}),Bf}function T1(t){return t===0?"":`${t}`}function qf(t){if(t<0||t>b1){const e=new Error(`Invalid DSL Method idx value: <${t}>
105
+ Idx value must be a none negative value smaller than ${b1+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class kq{initPerformanceTracer(e){if(be(e,"traceInitPerf")){const n=e.traceInitPerf,r=typeof n=="number";this.traceInitMaxIdent=r?n:1/0,this.traceInitPerf=r?n>0:n}else this.traceInitMaxIdent=0,this.traceInitPerf=pi.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,n){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=TR(n),o=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&o(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return n()}}function $q(t,e){e.forEach(n=>{const r=n.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(t.prototype,i,s):t.prototype[i]=n.prototype[i]})})}const jf=ly(ji,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(jf);const pi=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Xo,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Uf=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var un;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(un||(un={}));function R1(t=void 0){return function(){return t}}class hd{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const n=this.className;this.TRACE_INIT("toFastProps",()=>{RR(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),ve(this.definedRulesNames,i=>{const o=this[i].originalGrammarAction;let a;this.TRACE_INIT(`${i} Rule`,()=>{a=this.topLevelRuleRecord(i,o)}),this.gastProductionsCache[i]=a})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=J5({rules:Nt(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(tt(r)&&this.skipValidations===!1){const i=Z5({rules:Nt(this.gastProductionsCache),tokenTypes:Nt(this.tokensMap),errMsgProvider:Ls,grammarName:n}),s=F5({lookaheadStrategy:this.lookaheadStrategy,rules:Nt(this.gastProductionsCache),tokenTypes:Nt(this.tokensMap),grammarName:n});this.definitionErrors=this.definitionErrors.concat(i,s)}}),tt(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=N6(Nt(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:Nt(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Nt(this.gastProductionsCache))})),!hd.DEFER_DEFINITION_ERRORS_HANDLING&&!tt(this.definitionErrors))throw e=de(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
106
+ ${e.join(`
107
+ -------------------------------
108
+ `)}`)})}constructor(e,n){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(n),r.initLexerAdapter(),r.initLooksAhead(n),r.initRecognizerEngine(e,n),r.initRecoverable(n),r.initTreeBuilder(n),r.initContentAssist(),r.initGastRecorder(n),r.initPerformanceTracer(n),be(n,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
109
+ Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
110
+ See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
111
+ For further details.`);this.skipValidations=be(n,"skipValidations")?n.skipValidations:pi.skipValidations}}hd.DEFER_DEFINITION_ERRORS_HANDLING=!1,$q(hd,[rq,oq,yq,vq,bq,wq,Eq,Dq,Rq,kq]);class Cq extends hd{constructor(e,n=pi){const r=Ut(n);r.outputCst=!1,super(e,r)}}function Jo(t,e,n){return`${t.name}_${e}_${n}`}const Gi=1,_q=2,S1=4,k1=5,Yc=7,Aq=8,xq=9,Iq=10,Pq=11,$1=12;class Ty{constructor(e){this.target=e}isEpsilon(){return!1}}class Ry extends Ty{constructor(e,n){super(e),this.tokenType=n}}class C1 extends Ty{constructor(e){super(e)}isEpsilon(){return!0}}class Sy extends Ty{constructor(e,n,r){super(e),this.rule=n,this.followState=r}isEpsilon(){return!0}}function Nq(t){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Oq(e,t);const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=Ms(e,i,i);s!==void 0&&Hq(e,i,s)}return e}function Oq(t,e){const n=e.length;for(let r=0;r<n;r++){const i=e[r],s=Mt(t,i,void 0,{type:_q}),o=Mt(t,i,void 0,{type:Yc});s.stop=o,t.ruleToStartState.set(i,s),t.ruleToStopState.set(i,o)}}function _1(t,e,n){return n instanceof ot?ky(t,e,n.terminalType,n):n instanceof cn?Wq(t,e,n):n instanceof Tn?Bq(t,e,n):n instanceof Wt?qq(t,e,n):n instanceof wt?Fq(t,e,n):n instanceof Dn?Lq(t,e,n):n instanceof Nn?Mq(t,e,n):n instanceof On?zq(t,e,n):Ms(t,e,n)}function Fq(t,e,n){const r=Mt(t,e,n,{type:k1});Wi(t,r);const i=Zo(t,e,r,n,Ms(t,e,n));return x1(t,e,n,i)}function Lq(t,e,n){const r=Mt(t,e,n,{type:k1});Wi(t,r);const i=Zo(t,e,r,n,Ms(t,e,n)),s=ky(t,e,n.separator,n);return x1(t,e,n,i,s)}function Mq(t,e,n){const r=Mt(t,e,n,{type:S1});Wi(t,r);const i=Zo(t,e,r,n,Ms(t,e,n));return A1(t,e,n,i)}function zq(t,e,n){const r=Mt(t,e,n,{type:S1});Wi(t,r);const i=Zo(t,e,r,n,Ms(t,e,n)),s=ky(t,e,n.separator,n);return A1(t,e,n,i,s)}function Bq(t,e,n){const r=Mt(t,e,n,{type:Gi});Wi(t,r);const i=de(n.definition,o=>_1(t,e,o));return Zo(t,e,r,n,...i)}function qq(t,e,n){const r=Mt(t,e,n,{type:Gi});Wi(t,r);const i=Zo(t,e,r,n,Ms(t,e,n));return jq(t,e,n,i)}function Ms(t,e,n){const r=In(de(n.definition,i=>_1(t,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:Gq(t,r)}function A1(t,e,n,r,i){const s=r.left,o=r.right,a=Mt(t,e,n,{type:Pq});Wi(t,a);const c=Mt(t,e,n,{type:$1});return s.loopback=a,c.loopback=a,t.decisionMap[Jo(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=a,_t(o,a),i===void 0?(_t(a,s),_t(a,c)):(_t(a,c),_t(a,i.left),_t(i.right,s)),{left:s,right:c}}function x1(t,e,n,r,i){const s=r.left,o=r.right,a=Mt(t,e,n,{type:Iq});Wi(t,a);const c=Mt(t,e,n,{type:$1}),u=Mt(t,e,n,{type:xq});return a.loopback=u,c.loopback=u,_t(a,s),_t(a,c),_t(o,u),i!==void 0?(_t(u,c),_t(u,i.left),_t(i.right,s)):_t(u,a),t.decisionMap[Jo(e,i?"RepetitionWithSeparator":"Repetition",n.idx)]=a,{left:a,right:c}}function jq(t,e,n,r){const i=r.left,s=r.right;return _t(i,s),t.decisionMap[Jo(e,"Option",n.idx)]=i,r}function Wi(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function Zo(t,e,n,r,...i){const s=Mt(t,e,r,{type:Aq,start:n});n.end=s;for(const a of i)a!==void 0?(_t(n,a.left),_t(a.right,s)):_t(n,s);const o={left:n,right:s};return t.decisionMap[Jo(e,Uq(r),r.idx)]=n,o}function Uq(t){if(t instanceof Tn)return"Alternation";if(t instanceof Wt)return"Option";if(t instanceof wt)return"Repetition";if(t instanceof Dn)return"RepetitionWithSeparator";if(t instanceof Nn)return"RepetitionMandatory";if(t instanceof On)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Gq(t,e){const n=e.length;for(let s=0;s<n-1;s++){const o=e[s];let a;o.left.transitions.length===1&&(a=o.left.transitions[0]);const c=a instanceof Sy,u=a,l=e[s+1].left;o.left.type===Gi&&o.right.type===Gi&&a!==void 0&&(c&&u.followState===o.right||a.target===o.right)?(c?u.followState=l:a.target=l,Vq(t,o.right)):_t(o.right,l)}const r=e[0],i=e[n-1];return{left:r.left,right:i.right}}function ky(t,e,n,r){const i=Mt(t,e,r,{type:Gi}),s=Mt(t,e,r,{type:Gi});return $y(i,new Ry(s,n)),{left:i,right:s}}function Wq(t,e,n){const r=n.referencedRule,i=t.ruleToStartState.get(r),s=Mt(t,e,n,{type:Gi}),o=Mt(t,e,n,{type:Gi}),a=new Sy(i,r,o);return $y(s,a),{left:s,right:o}}function Hq(t,e,n){const r=t.ruleToStartState.get(e);_t(r,n.left);const i=t.ruleToStopState.get(e);return _t(n.right,i),{left:r,right:i}}function _t(t,e){const n=new C1(e);$y(t,n)}function Mt(t,e,n,r){const i=Object.assign({atn:t,production:n,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:t.states.length},r);return t.states.push(i),i}function $y(t,e){t.transitions.length===0&&(t.epsilonOnlyTransitions=e.isEpsilon()),t.transitions.push(e)}function Vq(t,e){t.states.splice(t.states.indexOf(e),1)}const Gf={};class Cy{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const n=I1(e);n in this.map||(this.map[n]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return de(this.configs,e=>e.alt)}get key(){let e="";for(const n in this.map)e+=n+":";return e}}function I1(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(n=>n.stateNumber.toString()).join("_")}`}function Kq(t,e){const n={};return r=>{const i=r.toString();let s=n[i];return s!==void 0||(s={atnStartState:t,decision:e,states:{}},n[i]=s),s}}class P1{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,n){this.predicates[e]=n}toString(){let e="";const n=this.predicates.length;for(let r=0;r<n;r++)e+=this.predicates[r]===!0?"1":"0";return e}}const N1=new P1;class Yq extends Ey{constructor(e){var n;super(),this.logging=(n=e?.logging)!==null&&n!==void 0?n:r=>console.log(r)}initialize(e){this.atn=Nq(e.rules),this.dfas=Xq(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:n,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,o=this.dfas,a=this.logging,c=Jo(r,"Alternation",n),l=this.atn.decisionMap[c].decision,d=de(e1({maxLookahead:1,occurrence:n,prodType:"Alternation",rule:r}),f=>de(f,h=>h[0]));if(O1(d,!1)&&!s){const f=an(d,(h,p,m)=>(ve(p,y=>{y&&(h[y.tokenTypeIdx]=m,ve(y.categoryMatches,g=>{h[g]=m}))}),h),{});return i?function(h){var p;const m=this.LA(1),y=f[m.tokenTypeIdx];if(h!==void 0&&y!==void 0){const g=(p=h[y])===null||p===void 0?void 0:p.GATE;if(g!==void 0&&g.call(this)===!1)return}return y}:function(){const h=this.LA(1);return f[h.tokenTypeIdx]}}else return i?function(f){const h=new P1,p=f===void 0?0:f.length;for(let y=0;y<p;y++){const g=f?.[y].GATE;h.set(y,g===void 0||g.call(this))}const m=_y.call(this,o,l,h,a);return typeof m=="number"?m:void 0}:function(){const f=_y.call(this,o,l,N1,a);return typeof f=="number"?f:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:n,rule:r,prodType:i,dynamicTokensEnabled:s}=e,o=this.dfas,a=this.logging,c=Jo(r,i,n),l=this.atn.decisionMap[c].decision,d=de(e1({maxLookahead:1,occurrence:n,prodType:i,rule:r}),f=>de(f,h=>h[0]));if(O1(d)&&d[0][0]&&!s){const f=d[0],h=Yn(f);if(h.length===1&&tt(h[0].categoryMatches)){const m=h[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===m}}else{const p=an(h,(m,y)=>(y!==void 0&&(m[y.tokenTypeIdx]=!0,ve(y.categoryMatches,g=>{m[g]=!0})),m),{});return function(){const m=this.LA(1);return p[m.tokenTypeIdx]===!0}}}return function(){const f=_y.call(this,o,l,N1,a);return typeof f=="object"?!1:f===0}}}function O1(t,e=!0){const n=new Set;for(const r of t){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const o=[s.tokenTypeIdx].concat(s.categoryMatches);for(const a of o)if(n.has(a)){if(!i.has(a))return!1}else n.add(a),i.add(a)}}return!0}function Xq(t){const e=t.decisionStates.length,n=Array(e);for(let r=0;r<e;r++)n[r]=Kq(t.decisionStates[r],r);return n}function _y(t,e,n,r){const i=t[e](n);let s=i.start;if(s===void 0){const a=aj(i.atnStartState);s=M1(i,F1(a)),i.start=s}return Jq.apply(this,[i,s,n,r])}function Jq(t,e,n,r){let i=e,s=1;const o=[];let a=this.LA(s++);for(;;){let c=rj(i,a);if(c===void 0&&(c=Zq.apply(this,[t,i,a,s,n,r])),c===Gf)return nj(o,i,a);if(c.isAcceptState===!0)return c.prediction;i=c,o.push(a),a=this.LA(s++)}}function Zq(t,e,n,r,i,s){const o=ij(e.configs,n,i);if(o.size===0)return L1(t,e,n,Gf),Gf;let a=F1(o);const c=oj(o,i);if(c!==void 0)a.isAcceptState=!0,a.prediction=c,a.configs.uniqueAlt=c;else if(dj(o)){const u=p6(o.alts);a.isAcceptState=!0,a.prediction=u,a.configs.uniqueAlt=u,Qq.apply(this,[t,r,o.alts,s])}return a=L1(t,e,n,a),a}function Qq(t,e,n,r){const i=[];for(let u=1;u<=e;u++)i.push(this.LA(u).tokenType);const s=t.atnStartState,o=s.rule,a=s.production,c=ej({topLevelRule:o,ambiguityIndices:n,production:a,prefixPath:i});r(c)}function ej(t){const e=de(t.prefixPath,i=>Yo(i)).join(", "),n=t.production.idx===0?"":t.production.idx;let r=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${tj(t.production)}${n}> inside <${t.topLevelRule.name}> Rule,
112
+ <${e}> may appears as a prefix path in all these alternatives.
113
+ `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
114
+ For Further details.`,r}function tj(t){if(t instanceof cn)return"SUBRULE";if(t instanceof Wt)return"OPTION";if(t instanceof Tn)return"OR";if(t instanceof Nn)return"AT_LEAST_ONE";if(t instanceof On)return"AT_LEAST_ONE_SEP";if(t instanceof Dn)return"MANY_SEP";if(t instanceof wt)return"MANY";if(t instanceof ot)return"CONSUME";throw Error("non exhaustive match")}function nj(t,e,n){const r=Pn(e.configs.elements,s=>s.state.transitions),i=R6(r.filter(s=>s instanceof Ry).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:n,possibleTokenTypes:i,tokenPath:t}}function rj(t,e){return t.edges[e.tokenTypeIdx]}function ij(t,e,n){const r=new Cy,i=[];for(const o of t.elements){if(n.is(o.alt)===!1)continue;if(o.state.type===Yc){i.push(o);continue}const a=o.state.transitions.length;for(let c=0;c<a;c++){const u=o.state.transitions[c],l=sj(u,e);l!==void 0&&r.add({state:l,alt:o.alt,stack:o.stack})}}let s;if(i.length===0&&r.size===1&&(s=r),s===void 0){s=new Cy;for(const o of r.elements)Wf(o,s)}if(i.length>0&&!uj(s))for(const o of i)s.add(o);return s}function sj(t,e){if(t instanceof Ry&&XR(e,t.tokenType))return t.target}function oj(t,e){let n;for(const r of t.elements)if(e.is(r.alt)===!0){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}function F1(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function L1(t,e,n,r){return r=M1(t,r),e.edges[n.tokenTypeIdx]=r,r}function M1(t,e){if(e===Gf)return e;const n=e.configs.key,r=t.states[n];return r!==void 0?r:(e.configs.finalize(),t.states[n]=e,e)}function aj(t){const e=new Cy,n=t.transitions.length;for(let r=0;r<n;r++){const s={state:t.transitions[r].target,alt:r,stack:[]};Wf(s,e)}return e}function Wf(t,e){const n=t.state;if(n.type===Yc){if(t.stack.length>0){const i=[...t.stack],o={state:i.pop(),alt:t.alt,stack:i};Wf(o,e)}else e.add(t);return}n.epsilonOnlyTransitions||e.add(t);const r=n.transitions.length;for(let i=0;i<r;i++){const s=n.transitions[i],o=cj(t,s);o!==void 0&&Wf(o,e)}}function cj(t,e){if(e instanceof C1)return{state:e.target,alt:t.alt,stack:t.stack};if(e instanceof Sy){const n=[...t.stack,e.followState];return{state:e.target,alt:t.alt,stack:n}}}function uj(t){for(const e of t.elements)if(e.state.type===Yc)return!0;return!1}function lj(t){for(const e of t.elements)if(e.state.type!==Yc)return!1;return!0}function dj(t){if(lj(t))return!0;const e=fj(t.elements);return hj(e)&&!pj(e)}function fj(t){const e=new Map;for(const n of t){const r=I1(n,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[n.alt]=!0}return e}function hj(t){for(const e of Array.from(t.values()))if(Object.keys(e).length>1)return!0;return!1}function pj(t){for(const e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var z1;(function(t){function e(n){return typeof n=="string"}t.is=e})(z1||(z1={}));var Ay;(function(t){function e(n){return typeof n=="string"}t.is=e})(Ay||(Ay={}));var B1;(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(B1||(B1={}));var Hf;(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=e})(Hf||(Hf={}));var He;(function(t){function e(r,i){return r===Number.MAX_VALUE&&(r=Hf.MAX_VALUE),i===Number.MAX_VALUE&&(i=Hf.MAX_VALUE),{line:r,character:i}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&B.uinteger(i.line)&&B.uinteger(i.character)}t.is=n})(He||(He={}));var Me;(function(t){function e(r,i,s,o){if(B.uinteger(r)&&B.uinteger(i)&&B.uinteger(s)&&B.uinteger(o))return{start:He.create(r,i),end:He.create(s,o)};if(He.is(r)&&He.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${o}]`)}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&He.is(i.start)&&He.is(i.end)}t.is=n})(Me||(Me={}));var Vf;(function(t){function e(r,i){return{uri:r,range:i}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&Me.is(i.range)&&(B.string(i.uri)||B.undefined(i.uri))}t.is=n})(Vf||(Vf={}));var q1;(function(t){function e(r,i,s,o){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:o}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&Me.is(i.targetRange)&&B.string(i.targetUri)&&Me.is(i.targetSelectionRange)&&(Me.is(i.originSelectionRange)||B.undefined(i.originSelectionRange))}t.is=n})(q1||(q1={}));var xy;(function(t){function e(r,i,s,o){return{red:r,green:i,blue:s,alpha:o}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.numberRange(i.red,0,1)&&B.numberRange(i.green,0,1)&&B.numberRange(i.blue,0,1)&&B.numberRange(i.alpha,0,1)}t.is=n})(xy||(xy={}));var j1;(function(t){function e(r,i){return{range:r,color:i}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&Me.is(i.range)&&xy.is(i.color)}t.is=n})(j1||(j1={}));var U1;(function(t){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.string(i.label)&&(B.undefined(i.textEdit)||Sn.is(i))&&(B.undefined(i.additionalTextEdits)||B.typedArray(i.additionalTextEdits,Sn.is))}t.is=n})(U1||(U1={}));var G1;(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(G1||(G1={}));var W1;(function(t){function e(r,i,s,o,a,c){const u={startLine:r,endLine:i};return B.defined(s)&&(u.startCharacter=s),B.defined(o)&&(u.endCharacter=o),B.defined(a)&&(u.kind=a),B.defined(c)&&(u.collapsedText=c),u}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.uinteger(i.startLine)&&B.uinteger(i.startLine)&&(B.undefined(i.startCharacter)||B.uinteger(i.startCharacter))&&(B.undefined(i.endCharacter)||B.uinteger(i.endCharacter))&&(B.undefined(i.kind)||B.string(i.kind))}t.is=n})(W1||(W1={}));var Iy;(function(t){function e(r,i){return{location:r,message:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&Vf.is(i.location)&&B.string(i.message)}t.is=n})(Iy||(Iy={}));var Xc;(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(Xc||(Xc={}));var H1;(function(t){t.Unnecessary=1,t.Deprecated=2})(H1||(H1={}));var V1;(function(t){function e(n){const r=n;return B.objectLiteral(r)&&B.string(r.href)}t.is=e})(V1||(V1={}));var Kf;(function(t){function e(r,i,s,o,a,c){let u={range:r,message:i};return B.defined(s)&&(u.severity=s),B.defined(o)&&(u.code=o),B.defined(a)&&(u.source=a),B.defined(c)&&(u.relatedInformation=c),u}t.create=e;function n(r){var i;let s=r;return B.defined(s)&&Me.is(s.range)&&B.string(s.message)&&(B.number(s.severity)||B.undefined(s.severity))&&(B.integer(s.code)||B.string(s.code)||B.undefined(s.code))&&(B.undefined(s.codeDescription)||B.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(B.string(s.source)||B.undefined(s.source))&&(B.undefined(s.relatedInformation)||B.typedArray(s.relatedInformation,Iy.is))}t.is=n})(Kf||(Kf={}));var Qo;(function(t){function e(r,i,...s){let o={title:r,command:i};return B.defined(s)&&s.length>0&&(o.arguments=s),o}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.title)&&B.string(i.command)}t.is=n})(Qo||(Qo={}));var Sn;(function(t){function e(s,o){return{range:s,newText:o}}t.replace=e;function n(s,o){return{range:{start:s,end:s},newText:o}}t.insert=n;function r(s){return{range:s,newText:""}}t.del=r;function i(s){const o=s;return B.objectLiteral(o)&&B.string(o.newText)&&Me.is(o.range)}t.is=i})(Sn||(Sn={}));var Py;(function(t){function e(r,i,s){const o={label:r};return i!==void 0&&(o.needsConfirmation=i),s!==void 0&&(o.description=s),o}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&B.string(i.label)&&(B.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(B.string(i.description)||i.description===void 0)}t.is=n})(Py||(Py={}));var ea;(function(t){function e(n){const r=n;return B.string(r)}t.is=e})(ea||(ea={}));var K1;(function(t){function e(s,o,a){return{range:s,newText:o,annotationId:a}}t.replace=e;function n(s,o,a){return{range:{start:s,end:s},newText:o,annotationId:a}}t.insert=n;function r(s,o){return{range:s,newText:"",annotationId:o}}t.del=r;function i(s){const o=s;return Sn.is(o)&&(Py.is(o.annotationId)||ea.is(o.annotationId))}t.is=i})(K1||(K1={}));var Ny;(function(t){function e(r,i){return{textDocument:r,edits:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&zy.is(i.textDocument)&&Array.isArray(i.edits)}t.is=n})(Ny||(Ny={}));var Oy;(function(t){function e(r,i,s){let o={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(o.options=i),s!==void 0&&(o.annotationId=s),o}t.create=e;function n(r){let i=r;return i&&i.kind==="create"&&B.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||B.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||B.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||ea.is(i.annotationId))}t.is=n})(Oy||(Oy={}));var Fy;(function(t){function e(r,i,s,o){let a={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(a.options=s),o!==void 0&&(a.annotationId=o),a}t.create=e;function n(r){let i=r;return i&&i.kind==="rename"&&B.string(i.oldUri)&&B.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||B.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||B.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||ea.is(i.annotationId))}t.is=n})(Fy||(Fy={}));var Ly;(function(t){function e(r,i,s){let o={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(o.options=i),s!==void 0&&(o.annotationId=s),o}t.create=e;function n(r){let i=r;return i&&i.kind==="delete"&&B.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||B.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||B.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||ea.is(i.annotationId))}t.is=n})(Ly||(Ly={}));var My;(function(t){function e(n){let r=n;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>B.string(i.kind)?Oy.is(i)||Fy.is(i)||Ly.is(i):Ny.is(i)))}t.is=e})(My||(My={}));var Y1;(function(t){function e(r){return{uri:r}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)}t.is=n})(Y1||(Y1={}));var X1;(function(t){function e(r,i){return{uri:r,version:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)&&B.integer(i.version)}t.is=n})(X1||(X1={}));var zy;(function(t){function e(r,i){return{uri:r,version:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)&&(i.version===null||B.integer(i.version))}t.is=n})(zy||(zy={}));var J1;(function(t){function e(r,i,s,o){return{uri:r,languageId:i,version:s,text:o}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.string(i.uri)&&B.string(i.languageId)&&B.integer(i.version)&&B.string(i.text)}t.is=n})(J1||(J1={}));var By;(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(n){const r=n;return r===t.PlainText||r===t.Markdown}t.is=e})(By||(By={}));var Jc;(function(t){function e(n){const r=n;return B.objectLiteral(n)&&By.is(r.kind)&&B.string(r.value)}t.is=e})(Jc||(Jc={}));var Ot;(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(Ot||(Ot={}));var pr;(function(t){t.PlainText=1,t.Snippet=2})(pr||(pr={}));var Z1;(function(t){t.Deprecated=1})(Z1||(Z1={}));var Q1;(function(t){function e(r,i,s){return{newText:r,insert:i,replace:s}}t.create=e;function n(r){const i=r;return i&&B.string(i.newText)&&Me.is(i.insert)&&Me.is(i.replace)}t.is=n})(Q1||(Q1={}));var eS;(function(t){t.asIs=1,t.adjustIndentation=2})(eS||(eS={}));var tS;(function(t){function e(n){const r=n;return r&&(B.string(r.detail)||r.detail===void 0)&&(B.string(r.description)||r.description===void 0)}t.is=e})(tS||(tS={}));var nS;(function(t){function e(n){return{label:n}}t.create=e})(nS||(nS={}));var rS;(function(t){function e(n,r){return{items:n||[],isIncomplete:!!r}}t.create=e})(rS||(rS={}));var Yf;(function(t){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}t.fromPlainText=e;function n(r){const i=r;return B.string(i)||B.objectLiteral(i)&&B.string(i.language)&&B.string(i.value)}t.is=n})(Yf||(Yf={}));var iS;(function(t){function e(n){let r=n;return!!r&&B.objectLiteral(r)&&(Jc.is(r.contents)||Yf.is(r.contents)||B.typedArray(r.contents,Yf.is))&&(n.range===void 0||Me.is(n.range))}t.is=e})(iS||(iS={}));var sS;(function(t){function e(n,r){return r?{label:n,documentation:r}:{label:n}}t.create=e})(sS||(sS={}));var oS;(function(t){function e(n,r,...i){let s={label:n};return B.defined(r)&&(s.documentation=r),B.defined(i)?s.parameters=i:s.parameters=[],s}t.create=e})(oS||(oS={}));var aS;(function(t){t.Text=1,t.Read=2,t.Write=3})(aS||(aS={}));var cS;(function(t){function e(n,r){let i={range:n};return B.number(r)&&(i.kind=r),i}t.create=e})(cS||(cS={}));var mr;(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(mr||(mr={}));var uS;(function(t){t.Deprecated=1})(uS||(uS={}));var lS;(function(t){function e(n,r,i,s,o){let a={name:n,kind:r,location:{uri:s,range:i}};return o&&(a.containerName=o),a}t.create=e})(lS||(lS={}));var dS;(function(t){function e(n,r,i,s){return s!==void 0?{name:n,kind:r,location:{uri:i,range:s}}:{name:n,kind:r,location:{uri:i}}}t.create=e})(dS||(dS={}));var fS;(function(t){function e(r,i,s,o,a,c){let u={name:r,detail:i,kind:s,range:o,selectionRange:a};return c!==void 0&&(u.children=c),u}t.create=e;function n(r){let i=r;return i&&B.string(i.name)&&B.number(i.kind)&&Me.is(i.range)&&Me.is(i.selectionRange)&&(i.detail===void 0||B.string(i.detail))&&(i.deprecated===void 0||B.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}t.is=n})(fS||(fS={}));var hS;(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(hS||(hS={}));var Xf;(function(t){t.Invoked=1,t.Automatic=2})(Xf||(Xf={}));var pS;(function(t){function e(r,i,s){let o={diagnostics:r};return i!=null&&(o.only=i),s!=null&&(o.triggerKind=s),o}t.create=e;function n(r){let i=r;return B.defined(i)&&B.typedArray(i.diagnostics,Kf.is)&&(i.only===void 0||B.typedArray(i.only,B.string))&&(i.triggerKind===void 0||i.triggerKind===Xf.Invoked||i.triggerKind===Xf.Automatic)}t.is=n})(pS||(pS={}));var mS;(function(t){function e(r,i,s){let o={title:r},a=!0;return typeof i=="string"?(a=!1,o.kind=i):Qo.is(i)?o.command=i:o.edit=i,a&&s!==void 0&&(o.kind=s),o}t.create=e;function n(r){let i=r;return i&&B.string(i.title)&&(i.diagnostics===void 0||B.typedArray(i.diagnostics,Kf.is))&&(i.kind===void 0||B.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Qo.is(i.command))&&(i.isPreferred===void 0||B.boolean(i.isPreferred))&&(i.edit===void 0||My.is(i.edit))}t.is=n})(mS||(mS={}));var gS;(function(t){function e(r,i){let s={range:r};return B.defined(i)&&(s.data=i),s}t.create=e;function n(r){let i=r;return B.defined(i)&&Me.is(i.range)&&(B.undefined(i.command)||Qo.is(i.command))}t.is=n})(gS||(gS={}));var yS;(function(t){function e(r,i){return{tabSize:r,insertSpaces:i}}t.create=e;function n(r){let i=r;return B.defined(i)&&B.uinteger(i.tabSize)&&B.boolean(i.insertSpaces)}t.is=n})(yS||(yS={}));var vS;(function(t){function e(r,i,s){return{range:r,target:i,data:s}}t.create=e;function n(r){let i=r;return B.defined(i)&&Me.is(i.range)&&(B.undefined(i.target)||B.string(i.target))}t.is=n})(vS||(vS={}));var wS;(function(t){function e(r,i){return{range:r,parent:i}}t.create=e;function n(r){let i=r;return B.objectLiteral(i)&&Me.is(i.range)&&(i.parent===void 0||t.is(i.parent))}t.is=n})(wS||(wS={}));var We;(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(We||(We={}));var pt;(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(pt||(pt={}));var bS;(function(t){function e(n){const r=n;return B.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}t.is=e})(bS||(bS={}));var ES;(function(t){function e(r,i){return{range:r,text:i}}t.create=e;function n(r){const i=r;return i!=null&&Me.is(i.range)&&B.string(i.text)}t.is=n})(ES||(ES={}));var DS;(function(t){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}t.create=e;function n(r){const i=r;return i!=null&&Me.is(i.range)&&B.boolean(i.caseSensitiveLookup)&&(B.string(i.variableName)||i.variableName===void 0)}t.is=n})(DS||(DS={}));var TS;(function(t){function e(r,i){return{range:r,expression:i}}t.create=e;function n(r){const i=r;return i!=null&&Me.is(i.range)&&(B.string(i.expression)||i.expression===void 0)}t.is=n})(TS||(TS={}));var RS;(function(t){function e(r,i){return{frameId:r,stoppedLocation:i}}t.create=e;function n(r){const i=r;return B.defined(i)&&Me.is(r.stoppedLocation)}t.is=n})(RS||(RS={}));var qy;(function(t){t.Type=1,t.Parameter=2;function e(n){return n===1||n===2}t.is=e})(qy||(qy={}));var jy;(function(t){function e(r){return{value:r}}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&(i.tooltip===void 0||B.string(i.tooltip)||Jc.is(i.tooltip))&&(i.location===void 0||Vf.is(i.location))&&(i.command===void 0||Qo.is(i.command))}t.is=n})(jy||(jy={}));var SS;(function(t){function e(r,i,s){const o={position:r,label:i};return s!==void 0&&(o.kind=s),o}t.create=e;function n(r){const i=r;return B.objectLiteral(i)&&He.is(i.position)&&(B.string(i.label)||B.typedArray(i.label,jy.is))&&(i.kind===void 0||qy.is(i.kind))&&i.textEdits===void 0||B.typedArray(i.textEdits,Sn.is)&&(i.tooltip===void 0||B.string(i.tooltip)||Jc.is(i.tooltip))&&(i.paddingLeft===void 0||B.boolean(i.paddingLeft))&&(i.paddingRight===void 0||B.boolean(i.paddingRight))}t.is=n})(SS||(SS={}));var kS;(function(t){function e(n){return{kind:"snippet",value:n}}t.createSnippet=e})(kS||(kS={}));var $S;(function(t){function e(n,r,i,s){return{insertText:n,filterText:r,range:i,command:s}}t.create=e})($S||($S={}));var CS;(function(t){function e(n){return{items:n}}t.create=e})(CS||(CS={}));var _S;(function(t){t.Invoked=0,t.Automatic=1})(_S||(_S={}));var AS;(function(t){function e(n,r){return{range:n,text:r}}t.create=e})(AS||(AS={}));var xS;(function(t){function e(n,r){return{triggerKind:n,selectedCompletionInfo:r}}t.create=e})(xS||(xS={}));var IS;(function(t){function e(n){const r=n;return B.objectLiteral(r)&&Ay.is(r.uri)&&B.string(r.name)}t.is=e})(IS||(IS={}));var PS;(function(t){function e(s,o,a,c){return new mj(s,o,a,c)}t.create=e;function n(s){let o=s;return!!(B.defined(o)&&B.string(o.uri)&&(B.undefined(o.languageId)||B.string(o.languageId))&&B.uinteger(o.lineCount)&&B.func(o.getText)&&B.func(o.positionAt)&&B.func(o.offsetAt))}t.is=n;function r(s,o){let a=s.getText(),c=i(o,(l,d)=>{let f=l.range.start.line-d.range.start.line;return f===0?l.range.start.character-d.range.start.character:f}),u=a.length;for(let l=c.length-1;l>=0;l--){let d=c[l],f=s.offsetAt(d.range.start),h=s.offsetAt(d.range.end);if(h<=u)a=a.substring(0,f)+d.newText+a.substring(h,a.length);else throw new Error("Overlapping edit");u=f}return a}t.applyEdits=r;function i(s,o){if(s.length<=1)return s;const a=s.length/2|0,c=s.slice(0,a),u=s.slice(a);i(c,o),i(u,o);let l=0,d=0,f=0;for(;l<c.length&&d<u.length;)o(c[l],u[d])<=0?s[f++]=c[l++]:s[f++]=u[d++];for(;l<c.length;)s[f++]=c[l++];for(;d<u.length;)s[f++]=u[d++];return s}})(PS||(PS={}));let mj=class{constructor(e,n,r,i){this._uri=e,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(n,r)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,r=!0;for(let i=0;i<n.length;i++){r&&(e.push(i),r=!1);let s=n.charAt(i);r=s==="\r"||s===`
115
+ `,s==="\r"&&i+1<n.length&&n.charAt(i+1)===`
116
+ `&&i++}r&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return He.create(0,e);for(;r<i;){let o=Math.floor((r+i)/2);n[o]>e?i=o:r=o+1}let s=r-1;return He.create(s,e-n[s])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let r=n[e.line],i=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}};var B;(function(t){const e=Object.prototype.toString;function n(h){return typeof h<"u"}t.defined=n;function r(h){return typeof h>"u"}t.undefined=r;function i(h){return h===!0||h===!1}t.boolean=i;function s(h){return e.call(h)==="[object String]"}t.string=s;function o(h){return e.call(h)==="[object Number]"}t.number=o;function a(h,p,m){return e.call(h)==="[object Number]"&&p<=h&&h<=m}t.numberRange=a;function c(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}t.integer=c;function u(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}t.uinteger=u;function l(h){return e.call(h)==="[object Function]"}t.func=l;function d(h){return h!==null&&typeof h=="object"}t.objectLiteral=d;function f(h,p){return Array.isArray(h)&&h.every(p)}t.typedArray=f})(B||(B={}));class gj{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new OS(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const n=new Gy;return n.grammarSource=e,n.root=this.rootNode,this.current.content.push(n),this.nodeStack.push(n),n}buildLeafNode(e,n){const r=new Uy(e.startOffset,e.image.length,Ld(e),e.tokenType,!1);return r.grammarSource=n,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const n=e.container;if(n){const r=n.content.indexOf(e);r>=0&&n.content.splice(r,1)}}construct(e){const n=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=n;const r=this.nodeStack.pop();r?.content.length===0&&this.removeNode(r)}addHiddenTokens(e){for(const n of e){const r=new Uy(n.startOffset,n.image.length,Ld(n),n.tokenType,!0);r.root=this.rootNode,this.addHiddenToken(this.rootNode,r)}}addHiddenToken(e,n){const{offset:r,end:i}=n;for(let s=0;s<e.content.length;s++){const o=e.content[s],{offset:a,end:c}=o;if(ri(o)&&r>a&&i<c){this.addHiddenToken(o,n);return}else if(i<=a){e.content.splice(s,0,n);return}}e.content.push(n)}}class NS{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,n;const r=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(n=this.container)===null||n===void 0?void 0:n.astNode;if(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Uy extends NS{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,n,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=n,this._range=r}}class Gy extends NS{constructor(){super(...arguments),this.content=new q0(this)}get children(){return this.content}get offset(){var e,n;return(n=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&n!==void 0?n:0}get length(){return this.end-this.offset}get end(){var e,n;return(n=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&n!==void 0?n:0}get range(){const e=this.firstNonHiddenNode,n=this.lastNonHiddenNode;if(e&&n){if(this._rangeCache===void 0){const{range:r}=e,{range:i}=n;this._rangeCache={start:r.start,end:i.end.line<r.start.line?r.start:i.end}}return this._rangeCache}else return{start:He.create(0,0),end:He.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const n=this.content[e];if(!n.hidden)return n}return this.content[this.content.length-1]}}class q0 extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,q0.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,n,...r){return this.addParents(r),super.splice(e,n,...r)}addParents(e){for(const n of e)n.container=this.parent}}class OS extends Gy{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const Wy=Symbol("Datatype");function Hy(t){return t.$type===Wy}const FS="\u200B",LS=t=>t.endsWith(FS)?t:t+FS;class MS{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const n=this.lexer.definition;this.wrapper=new Ej(n,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,n){this.wrapper.wrapOr(e,n)}optional(e,n){this.wrapper.wrapOption(e,n)}many(e,n){this.wrapper.wrapMany(e,n)}atLeastOne(e,n){this.wrapper.wrapAtLeastOne(e,n)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class yj extends MS{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new gj,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,n){const r=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(LS(e.name),this.startImplementation(r,n).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(sf(e))return Wy;{const n=As(e);return n??e.name}}}parse(e,n={}){this.nodeBuilder.buildRootNode(e);const r=this.lexer.tokenize(e);this.wrapper.input=r.tokens;const i=n.rule?this.allRules.get(n.rule):this.mainRule;if(!i)throw new Error(n.rule?`No rule found with name '${n.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(r.hidden),this.unorderedGroups.clear(),{value:s,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,n){return r=>{if(!this.isRecording()){const s={$type:e};this.stack.push(s),e===Wy&&(s.value="")}let i;try{i=n(r)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,n,r){const i=this.wrapper.wrapConsume(e,n);if(!this.isRecording()&&this.isValidToken(i)){const s=this.nodeBuilder.buildLeafNode(i,r),{assignment:o,isCrossRef:a}=this.getAssignment(r),c=this.current;if(o){const u=xr(r)?i.image:this.converter.convert(i.image,s);this.assign(o.operator,o.feature,u,s,a)}else if(Hy(c)){let u=i.image;xr(r)||(u=this.converter.convert(u,s).toString()),c.value+=u}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,n,r,i){let s;this.isRecording()||(s=this.nodeBuilder.buildCompositeNode(r));const o=this.wrapper.wrapSubrule(e,n,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(o,r,s)}performSubruleAssignment(e,n,r){const{assignment:i,isCrossRef:s}=this.getAssignment(n);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const o=this.current;if(Hy(o))o.value+=e.toString();else if(typeof e=="object"&&e){const a=e.$type,c=this.assignWithoutOverride(e,o);a&&(c.$type=a);const u=c;this.stack.pop(),this.stack.push(u)}}}action(e,n){if(!this.isRecording()){let r=this.current;if(n.feature&&n.operator){r=this.construct(),this.nodeBuilder.buildCompositeNode(n).content.push(r.$cstNode);const s={$type:e};this.stack.push(s),this.assign(n.operator,n.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return vg(e),this.nodeBuilder.construct(e),this.stack.pop(),Hy(e)?this.converter.convert(e.value,e.$cstNode):(bg(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const n=wn(e,Ar);this.assignmentMap.set(e,{assignment:n,isCrossRef:n?fc(n.terminal):!1})}return this.assignmentMap.get(e)}assign(e,n,r,i,s){const o=this.current;let a;switch(s&&typeof r=="string"?a=this.linker.buildReference(o,n,i,r):a=r,e){case"=":{o[n]=a;break}case"?=":{o[n]=!0;break}case"+=":Array.isArray(o[n])||(o[n]=[]),o[n].push(a)}}assignWithoutOverride(e,n){for(const[i,s]of Object.entries(n)){const o=e[i];o===void 0?e[i]=s:Array.isArray(o)&&Array.isArray(s)&&(s.push(...o),e[i]=s)}const r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class vj{buildMismatchTokenMessage(e){return Xo.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Xo.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Xo.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Xo.buildEarlyExitMessage(e)}}class zS extends vj{buildMismatchTokenMessage({expected:e,actual:n}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${n.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class wj extends MS{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const n=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=n.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,n){const r=this.wrapper.DEFINE_RULE(LS(e.name),this.startImplementation(n).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return n=>{const r=this.keepStackSize();try{e(n)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,n,r){this.wrapper.wrapConsume(e,n),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,n,r,i){this.before(r),this.wrapper.wrapSubrule(e,n,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const n=this.elementStack.lastIndexOf(e);n>=0&&this.elementStack.splice(n)}}get currIdx(){return this.wrapper.currIdx}}const bj={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new zS};class Ej extends Cq{constructor(e,n){const r=n&&"maxLookahead"in n;super(e,Object.assign(Object.assign(Object.assign({},bj),{lookaheadStrategy:r?new Ey({maxLookahead:n.maxLookahead}):new Yq}),n))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,n){return this.RULE(e,n)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,n){return this.consume(e,n)}wrapSubrule(e,n,r){return this.subrule(e,n,{ARGS:[r]})}wrapOr(e,n){this.or(e,n)}wrapOption(e,n){this.option(e,n)}wrapMany(e,n){this.many(e,n)}wrapAtLeastOne(e,n){this.atLeastOne(e,n)}}function BS(t,e,n){return Dj({parser:e,tokens:n,ruleNames:new Map},t),e}function Dj(t,e){const n=Sg(e,!1),r=et(e.rules).filter(Xt).filter(i=>n.has(i));for(const i of r){const s=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});t.parser.rule(i,zs(s,i.definition))}}function zs(t,e,n=!1){let r;if(xr(e))r=_j(t,e);else if(_s(e))r=Tj(t,e);else if(Ar(e))r=zs(t,e.terminal);else if(fc(e))r=qS(t,e);else if(si(e))r=Rj(t,e);else if(gg(e))r=kj(t,e);else if(yg(e))r=$j(t,e);else if(Mi(e))r=Cj(t,e);else if(gM(e)){const i=t.consume++;r=()=>t.parser.consume(i,ji,e)}else throw new GD(e.$cstNode,`Unexpected element type: ${e.$type}`);return jS(t,n?void 0:Jf(e),r,e.cardinality)}function Tj(t,e){const n=_c(e);return()=>t.parser.action(n,e)}function Rj(t,e){const n=e.rule.ref;if(Xt(n)){const r=t.subrule++,i=e.arguments.length>0?Sj(n,e.arguments):()=>({});return s=>t.parser.subrule(r,US(t,n),e,i(s))}else if(ii(n)){const r=t.consume++,i=Vy(t,n.name);return()=>t.parser.consume(r,i,e)}else if(n)Bd();else throw new GD(e.$cstNode,`Undefined rule type: ${e.$type}`)}function Sj(t,e){const n=e.map(r=>mi(r.value));return r=>{const i={};for(let s=0;s<n.length;s++){const o=t.parameters[s],a=n[s];i[o.name]=a(r)}return i}}function mi(t){if(uM(t)){const e=mi(t.left),n=mi(t.right);return r=>e(r)||n(r)}else if(cM(t)){const e=mi(t.left),n=mi(t.right);return r=>e(r)&&n(r)}else if(lM(t)){const e=mi(t.value);return n=>!e(n)}else if(dM(t)){const e=t.parameter.ref.name;return n=>n!==void 0&&n[e]===!0}else if(aM(t)){const e=!!t.true;return()=>e}Bd()}function kj(t,e){if(e.elements.length===1)return zs(t,e.elements[0]);{const n=[];for(const i of e.elements){const s={ALT:zs(t,i,!0)},o=Jf(i);o&&(s.GATE=mi(o)),n.push(s)}const r=t.or++;return i=>t.parser.alternatives(r,n.map(s=>{const o={ALT:()=>s.ALT(i)},a=s.GATE;return a&&(o.GATE=()=>a(i)),o}))}}function $j(t,e){if(e.elements.length===1)return zs(t,e.elements[0]);const n=[];for(const a of e.elements){const c={ALT:zs(t,a,!0)},u=Jf(a);u&&(c.GATE=mi(u)),n.push(c)}const r=t.or++,i=(a,c)=>{const u=c.getRuleStack().join("-");return`uGroup_${a}_${u}`},s=a=>t.parser.alternatives(r,n.map((c,u)=>{const l={ALT:()=>!0},d=t.parser;l.ALT=()=>{if(c.ALT(a),!d.isRecording()){const h=i(r,d);d.unorderedGroups.get(h)||d.unorderedGroups.set(h,[]);const p=d.unorderedGroups.get(h);typeof p?.[u]>"u"&&(p[u]=!0)}};const f=c.GATE;return f?l.GATE=()=>f(a):l.GATE=()=>{const h=d.unorderedGroups.get(i(r,d));return!h?.[u]},l})),o=jS(t,Jf(e),s,"*");return a=>{o(a),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(r,t.parser))}}function Cj(t,e){const n=e.elements.map(r=>zs(t,r));return r=>n.forEach(i=>i(r))}function Jf(t){if(Mi(t))return t.guardCondition}function qS(t,e,n=e.terminal){if(n)if(si(n)&&Xt(n.rule.ref)){const r=t.subrule++;return i=>t.parser.subrule(r,US(t,n.rule.ref),e,i)}else if(si(n)&&ii(n.rule.ref)){const r=t.consume++,i=Vy(t,n.rule.ref.name);return()=>t.parser.consume(r,i,e)}else if(xr(n)){const r=t.consume++,i=Vy(t,n.value);return()=>t.parser.consume(r,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const r=Ag(e.type.ref),i=r?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+_c(e.type.ref));return qS(t,e,i)}}function _j(t,e){const n=t.consume++,r=t.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(n,r,e)}function jS(t,e,n,r){const i=e&&mi(e);if(!r)if(i){const s=t.or++;return o=>t.parser.alternatives(s,[{ALT:()=>n(o),GATE:()=>i(o)},{ALT:R1(),GATE:()=>!i(o)}])}else return n;if(r==="*"){const s=t.many++;return o=>t.parser.many(s,{DEF:()=>n(o),GATE:i?()=>i(o):void 0})}else if(r==="+"){const s=t.many++;if(i){const o=t.or++;return a=>t.parser.alternatives(o,[{ALT:()=>t.parser.atLeastOne(s,{DEF:()=>n(a)}),GATE:()=>i(a)},{ALT:R1(),GATE:()=>!i(a)}])}else return o=>t.parser.atLeastOne(s,{DEF:()=>n(o)})}else if(r==="?"){const s=t.optional++;return o=>t.parser.optional(s,{DEF:()=>n(o),GATE:i?()=>i(o):void 0})}else Bd()}function US(t,e){const n=Aj(t,e),r=t.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function Aj(t,e){if(Xt(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let n=e,r=n.$container,i=e.$type;for(;!Xt(r);)(Mi(r)||gg(r)||yg(r))&&(i=r.elements.indexOf(n).toString()+":"+i),n=r,r=r.$container;return i=r.name+":"+i,t.ruleNames.set(e,i),i}}function Vy(t,e){const n=t.tokens[e];if(!n)throw new Error(`Token "${e}" not found."`);return n}function xj(t){const e=t.Grammar,n=t.parser.Lexer,r=new wj(t);return BS(e,r,n.definition),r.finalize(),r}function Ij(t){const e=Pj(t);return e.finalize(),e}function Pj(t){const e=t.Grammar,n=t.parser.Lexer,r=new yj(t);return BS(e,r,n.definition)}class Nj{constructor(){this.diagnostics=[]}buildTokens(e,n){const r=et(Sg(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,n);return i.forEach(o=>{const a=o.PATTERN;typeof a=="object"&&a&&"test"in a&&Rg(a)?s.unshift(o):s.push(o)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(ii).filter(n=>!n.fragment).map(n=>this.buildTerminalToken(n)).toArray()}buildTerminalToken(e){const n=Ac(e),r=this.requiresCustomPattern(n)?this.regexPatternFunction(n):n,i={name:e.name,PATTERN:r,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=Rg(n)?Rn.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const n=new RegExp(e,e.flags+"y");return(r,i)=>(n.lastIndex=i,n.exec(r))}buildKeywordTokens(e,n,r){return e.filter(Xt).flatMap(i=>Ir(i).filter(xr)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,n,!!r?.caseInsensitive))}buildKeywordToken(e,n,r){return{name:e.value,PATTERN:this.buildKeywordPattern(e,r),LONGER_ALT:this.findLongerAlt(e,n)}}buildKeywordPattern(e,n){return n?new RegExp(xM(e.value)):e.value}findLongerAlt(e,n){return n.reduce((r,i)=>{const s=i?.PATTERN;return s?.source&&IM("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class Oj{convert(e,n){let r=n.grammarSource;if(fc(r)&&(r=kg(r)),si(r)){const i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,n)}return e}runConverter(e,n,r){var i;switch(e.name.toUpperCase()){case"INT":return gi.convertInt(n);case"STRING":return gi.convertString(n);case"ID":return gi.convertID(n)}switch((i=dT(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return gi.convertNumber(n);case"boolean":return gi.convertBoolean(n);case"bigint":return gi.convertBigint(n);case"date":return gi.convertDate(n);default:return n}}}var gi;(function(t){function e(u){let l="";for(let d=1;d<u.length-1;d++){const f=u.charAt(d);if(f==="\\"){const h=u.charAt(++d);l+=n(h)}else l+=f}return l}t.convertString=e;function n(u){switch(u){case"b":return"\b";case"f":return"\f";case"n":return`
117
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return u}}function r(u){return u.charAt(0)==="^"?u.substring(1):u}t.convertID=r;function i(u){return parseInt(u)}t.convertInt=i;function s(u){return BigInt(u)}t.convertBigint=s;function o(u){return new Date(u)}t.convertDate=o;function a(u){return Number(u)}t.convertNumber=a;function c(u){return u.toLowerCase()==="true"}t.convertBoolean=c})(gi||(gi={}));var Bs={},Zf={},GS;function qs(){if(GS)return Zf;GS=1,Object.defineProperty(Zf,"__esModule",{value:!0});let t;function e(){if(t===void 0)throw new Error("No runtime abstraction layer installed");return t}return function(n){function r(i){if(i===void 0)throw new Error("No runtime abstraction layer provided");t=i}n.install=r}(e||(e={})),Zf.default=e,Zf}var Ht={},WS;function Zc(){if(WS)return Ht;WS=1,Object.defineProperty(Ht,"__esModule",{value:!0}),Ht.stringArray=Ht.array=Ht.func=Ht.error=Ht.number=Ht.string=Ht.boolean=void 0;function t(a){return a===!0||a===!1}Ht.boolean=t;function e(a){return typeof a=="string"||a instanceof String}Ht.string=e;function n(a){return typeof a=="number"||a instanceof Number}Ht.number=n;function r(a){return a instanceof Error}Ht.error=r;function i(a){return typeof a=="function"}Ht.func=i;function s(a){return Array.isArray(a)}Ht.array=s;function o(a){return s(a)&&a.every(c=>e(c))}return Ht.stringArray=o,Ht}var js={},HS;function ta(){if(HS)return js;HS=1,Object.defineProperty(js,"__esModule",{value:!0}),js.Emitter=js.Event=void 0;const t=qs();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(js.Event=e={}));class n{add(s,o=null,a){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(o),Array.isArray(a)&&a.push({dispose:()=>this.remove(s,o)})}remove(s,o=null){if(!this._callbacks)return;let a=!1;for(let c=0,u=this._callbacks.length;c<u;c++)if(this._callbacks[c]===s)if(this._contexts[c]===o){this._callbacks.splice(c,1),this._contexts.splice(c,1);return}else a=!0;if(a)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const o=[],a=this._callbacks.slice(0),c=this._contexts.slice(0);for(let u=0,l=a.length;u<l;u++)try{o.push(a[u].apply(c[u],s))}catch(d){(0,t.default)().console.error(d)}return o}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,o,a)=>{this._callbacks||(this._callbacks=new n),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,o);const c={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,o),c.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(a)&&a.push(c),c}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return js.Emitter=r,r._noop=function(){},js}var VS;function Qf(){if(VS)return Bs;VS=1,Object.defineProperty(Bs,"__esModule",{value:!0}),Bs.CancellationTokenSource=Bs.CancellationToken=void 0;const t=qs(),e=Zc(),n=ta();var r;(function(a){a.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),a.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:n.Event.None});function c(u){const l=u;return l&&(l===a.None||l===a.Cancelled||e.boolean(l.isCancellationRequested)&&!!l.onCancellationRequested)}a.is=c})(r||(Bs.CancellationToken=r={}));const i=Object.freeze(function(a,c){const u=(0,t.default)().timer.setTimeout(a.bind(c),0);return{dispose(){u.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?i:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class o{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=r.None}}return Bs.CancellationTokenSource=o,Bs}var lt=Qf();function Fj(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}let KS=0,Lj=10;const eh=Symbol("OperationCancelled");function th(t){return t===eh}async function zt(t){if(t===lt.CancellationToken.None)return;const e=Date.now();if(e-KS>=Lj&&(KS=e,await Fj()),t.isCancellationRequested)throw eh}class Ky{constructor(){this.promise=new Promise((e,n)=>{this.resolve=r=>(e(r),this),this.reject=r=>(n(r),this)})}}class pd{constructor(e,n,r,i){this._uri=e,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const n=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(n,r)}return this._content}update(e,n){for(let r of e)if(pd.isIncremental(r)){const i=XS(r.range),s=this.offsetAt(i.start),o=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(o,this._content.length);const a=Math.max(i.start.line,0),c=Math.max(i.end.line,0);let u=this._lineOffsets;const l=YS(r.text,!1,s);if(c-a===l.length)for(let f=0,h=l.length;f<h;f++)u[f+a+1]=l[f];else l.length<1e4?u.splice(a+1,c-a,...l):this._lineOffsets=u=u.slice(0,a+1).concat(l,u.slice(c+1));const d=r.text.length-(o-s);if(d!==0)for(let f=a+1+l.length,h=u.length;f<h;f++)u[f]=u[f]+d}else if(pd.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=YS(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return{line:0,character:e};for(;r<i;){let o=Math.floor((r+i)/2);n[o]>e?i=o:r=o+1}let s=r-1;return{line:s,character:e-n[s]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let r=n[e.line],i=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}}var nh;(function(t){function e(i,s,o,a){return new pd(i,s,o,a)}t.create=e;function n(i,s,o){if(i instanceof pd)return i.update(s,o),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function r(i,s){let o=i.getText(),a=Yy(s.map(Mj),(l,d)=>{let f=l.range.start.line-d.range.start.line;return f===0?l.range.start.character-d.range.start.character:f}),c=0;const u=[];for(const l of a){let d=i.offsetAt(l.range.start);if(d<c)throw new Error("Overlapping edit");d>c&&u.push(o.substring(c,d)),l.newText.length&&u.push(l.newText),c=i.offsetAt(l.range.end)}return u.push(o.substr(c)),u.join("")}t.applyEdits=r})(nh||(nh={}));function Yy(t,e){if(t.length<=1)return t;const n=t.length/2|0,r=t.slice(0,n),i=t.slice(n);Yy(r,e),Yy(i,e);let s=0,o=0,a=0;for(;s<r.length&&o<i.length;)e(r[s],i[o])<=0?t[a++]=r[s++]:t[a++]=i[o++];for(;s<r.length;)t[a++]=r[s++];for(;o<i.length;)t[a++]=i[o++];return t}function YS(t,e,n=0){const r=e?[n]:[];for(let i=0;i<t.length;i++){let s=t.charCodeAt(i);(s===13||s===10)&&(s===13&&i+1<t.length&&t.charCodeAt(i+1)===10&&i++,r.push(n+i+1))}return r}function XS(t){const e=t.start,n=t.end;return e.line>n.line||e.line===n.line&&e.character>n.character?{start:n,end:e}:t}function Mj(t){const e=XS(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var JS;(()=>{var t={470:i=>{function s(c){if(typeof c!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(c))}function o(c,u){for(var l,d="",f=0,h=-1,p=0,m=0;m<=c.length;++m){if(m<c.length)l=c.charCodeAt(m);else{if(l===47)break;l=47}if(l===47){if(!(h===m-1||p===1))if(h!==m-1&&p===2){if(d.length<2||f!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var y=d.lastIndexOf("/");if(y!==d.length-1){y===-1?(d="",f=0):f=(d=d.slice(0,y)).length-1-d.lastIndexOf("/"),h=m,p=0;continue}}else if(d.length===2||d.length===1){d="",f=0,h=m,p=0;continue}}u&&(d.length>0?d+="/..":d="..",f=2)}else d.length>0?d+="/"+c.slice(h+1,m):d=c.slice(h+1,m),f=m-h-1;h=m,p=0}else l===46&&p!==-1?++p:p=-1}return d}var a={resolve:function(){for(var c,u="",l=!1,d=arguments.length-1;d>=-1&&!l;d--){var f;d>=0?f=arguments[d]:(c===void 0&&(c=process.cwd()),f=c),s(f),f.length!==0&&(u=f+"/"+u,l=f.charCodeAt(0)===47)}return u=o(u,!l),l?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(c){if(s(c),c.length===0)return".";var u=c.charCodeAt(0)===47,l=c.charCodeAt(c.length-1)===47;return(c=o(c,!u)).length!==0||u||(c="."),c.length>0&&l&&(c+="/"),u?"/"+c:c},isAbsolute:function(c){return s(c),c.length>0&&c.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var c,u=0;u<arguments.length;++u){var l=arguments[u];s(l),l.length>0&&(c===void 0?c=l:c+="/"+l)}return c===void 0?".":a.normalize(c)},relative:function(c,u){if(s(c),s(u),c===u||(c=a.resolve(c))===(u=a.resolve(u)))return"";for(var l=1;l<c.length&&c.charCodeAt(l)===47;++l);for(var d=c.length,f=d-l,h=1;h<u.length&&u.charCodeAt(h)===47;++h);for(var p=u.length-h,m=f<p?f:p,y=-1,g=0;g<=m;++g){if(g===m){if(p>m){if(u.charCodeAt(h+g)===47)return u.slice(h+g+1);if(g===0)return u.slice(h+g)}else f>m&&(c.charCodeAt(l+g)===47?y=g:g===0&&(y=0));break}var w=c.charCodeAt(l+g);if(w!==u.charCodeAt(h+g))break;w===47&&(y=g)}var E="";for(g=l+y+1;g<=d;++g)g!==d&&c.charCodeAt(g)!==47||(E.length===0?E+="..":E+="/..");return E.length>0?E+u.slice(h+y):(h+=y,u.charCodeAt(h)===47&&++h,u.slice(h))},_makeLong:function(c){return c},dirname:function(c){if(s(c),c.length===0)return".";for(var u=c.charCodeAt(0),l=u===47,d=-1,f=!0,h=c.length-1;h>=1;--h)if((u=c.charCodeAt(h))===47){if(!f){d=h;break}}else f=!1;return d===-1?l?"/":".":l&&d===1?"//":c.slice(0,d)},basename:function(c,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');s(c);var l,d=0,f=-1,h=!0;if(u!==void 0&&u.length>0&&u.length<=c.length){if(u.length===c.length&&u===c)return"";var p=u.length-1,m=-1;for(l=c.length-1;l>=0;--l){var y=c.charCodeAt(l);if(y===47){if(!h){d=l+1;break}}else m===-1&&(h=!1,m=l+1),p>=0&&(y===u.charCodeAt(p)?--p==-1&&(f=l):(p=-1,f=m))}return d===f?f=m:f===-1&&(f=c.length),c.slice(d,f)}for(l=c.length-1;l>=0;--l)if(c.charCodeAt(l)===47){if(!h){d=l+1;break}}else f===-1&&(h=!1,f=l+1);return f===-1?"":c.slice(d,f)},extname:function(c){s(c);for(var u=-1,l=0,d=-1,f=!0,h=0,p=c.length-1;p>=0;--p){var m=c.charCodeAt(p);if(m!==47)d===-1&&(f=!1,d=p+1),m===46?u===-1?u=p:h!==1&&(h=1):u!==-1&&(h=-1);else if(!f){l=p+1;break}}return u===-1||d===-1||h===0||h===1&&u===d-1&&u===l+1?"":c.slice(u,d)},format:function(c){if(c===null||typeof c!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof c);return function(u,l){var d=l.dir||l.root,f=l.base||(l.name||"")+(l.ext||"");return d?d===l.root?d+f:d+"/"+f:f}(0,c)},parse:function(c){s(c);var u={root:"",dir:"",base:"",ext:"",name:""};if(c.length===0)return u;var l,d=c.charCodeAt(0),f=d===47;f?(u.root="/",l=1):l=0;for(var h=-1,p=0,m=-1,y=!0,g=c.length-1,w=0;g>=l;--g)if((d=c.charCodeAt(g))!==47)m===-1&&(y=!1,m=g+1),d===46?h===-1?h=g:w!==1&&(w=1):h!==-1&&(w=-1);else if(!y){p=g+1;break}return h===-1||m===-1||w===0||w===1&&h===m-1&&h===p+1?m!==-1&&(u.base=u.name=p===0&&f?c.slice(1,m):c.slice(p,m)):(p===0&&f?(u.name=c.slice(1,h),u.base=c.slice(1,m)):(u.name=c.slice(p,h),u.base=c.slice(p,m)),u.ext=c.slice(h,m)),p>0?u.dir=c.slice(0,p-1):f&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};a.posix=a,i.exports=a}},e={};function n(i){var s=e[i];if(s!==void 0)return s.exports;var o=e[i]={exports:{}};return t[i](o,o.exports,n),o.exports}n.d=(i,s)=>{for(var o in s)n.o(s,o)&&!n.o(i,o)&&Object.defineProperty(i,o,{enumerable:!0,get:s[o]})},n.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),n.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;n.r(r),n.d(r,{URI:()=>f,Utils:()=>O}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,o=/^\//,a=/^\/\//;function c(C,D){if(!C.scheme&&D)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${C.authority}", path: "${C.path}", query: "${C.query}", fragment: "${C.fragment}"}`);if(C.scheme&&!s.test(C.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(C.path){if(C.authority){if(!o.test(C.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(C.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const u="",l="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{static isUri(D){return D instanceof f||!!D&&typeof D.authority=="string"&&typeof D.fragment=="string"&&typeof D.path=="string"&&typeof D.query=="string"&&typeof D.scheme=="string"&&typeof D.fsPath=="string"&&typeof D.with=="function"&&typeof D.toString=="function"}scheme;authority;path;query;fragment;constructor(D,R,L,W,V,Z=!1){typeof D=="object"?(this.scheme=D.scheme||u,this.authority=D.authority||u,this.path=D.path||u,this.query=D.query||u,this.fragment=D.fragment||u):(this.scheme=function(Fe,se){return Fe||se?Fe:"file"}(D,Z),this.authority=R||u,this.path=function(Fe,se){switch(Fe){case"https":case"http":case"file":se?se[0]!==l&&(se=l+se):se=l}return se}(this.scheme,L||u),this.query=W||u,this.fragment=V||u,c(this,Z))}get fsPath(){return w(this)}with(D){if(!D)return this;let{scheme:R,authority:L,path:W,query:V,fragment:Z}=D;return R===void 0?R=this.scheme:R===null&&(R=u),L===void 0?L=this.authority:L===null&&(L=u),W===void 0?W=this.path:W===null&&(W=u),V===void 0?V=this.query:V===null&&(V=u),Z===void 0?Z=this.fragment:Z===null&&(Z=u),R===this.scheme&&L===this.authority&&W===this.path&&V===this.query&&Z===this.fragment?this:new p(R,L,W,V,Z)}static parse(D,R=!1){const L=d.exec(D);return L?new p(L[2]||u,I(L[4]||u),I(L[5]||u),I(L[7]||u),I(L[9]||u),R):new p(u,u,u,u,u)}static file(D){let R=u;if(i&&(D=D.replace(/\\/g,l)),D[0]===l&&D[1]===l){const L=D.indexOf(l,2);L===-1?(R=D.substring(2),D=l):(R=D.substring(2,L),D=D.substring(L)||l)}return new p("file",R,D,u,u)}static from(D){const R=new p(D.scheme,D.authority,D.path,D.query,D.fragment);return c(R,!0),R}toString(D=!1){return E(this,D)}toJSON(){return this}static revive(D){if(D){if(D instanceof f)return D;{const R=new p(D);return R._formatted=D.external,R._fsPath=D._sep===h?D.fsPath:null,R}}return D}}const h=i?1:void 0;class p extends f{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=w(this)),this._fsPath}toString(D=!1){return D?E(this,!0):(this._formatted||(this._formatted=E(this,!1)),this._formatted)}toJSON(){const D={$mid:1};return this._fsPath&&(D.fsPath=this._fsPath,D._sep=h),this._formatted&&(D.external=this._formatted),this.path&&(D.path=this.path),this.scheme&&(D.scheme=this.scheme),this.authority&&(D.authority=this.authority),this.query&&(D.query=this.query),this.fragment&&(D.fragment=this.fragment),D}}const m={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function y(C,D,R){let L,W=-1;for(let V=0;V<C.length;V++){const Z=C.charCodeAt(V);if(Z>=97&&Z<=122||Z>=65&&Z<=90||Z>=48&&Z<=57||Z===45||Z===46||Z===95||Z===126||D&&Z===47||R&&Z===91||R&&Z===93||R&&Z===58)W!==-1&&(L+=encodeURIComponent(C.substring(W,V)),W=-1),L!==void 0&&(L+=C.charAt(V));else{L===void 0&&(L=C.substr(0,V));const Fe=m[Z];Fe!==void 0?(W!==-1&&(L+=encodeURIComponent(C.substring(W,V)),W=-1),L+=Fe):W===-1&&(W=V)}}return W!==-1&&(L+=encodeURIComponent(C.substring(W))),L!==void 0?L:C}function g(C){let D;for(let R=0;R<C.length;R++){const L=C.charCodeAt(R);L===35||L===63?(D===void 0&&(D=C.substr(0,R)),D+=m[L]):D!==void 0&&(D+=C[R])}return D!==void 0?D:C}function w(C,D){let R;return R=C.authority&&C.path.length>1&&C.scheme==="file"?`//${C.authority}${C.path}`:C.path.charCodeAt(0)===47&&(C.path.charCodeAt(1)>=65&&C.path.charCodeAt(1)<=90||C.path.charCodeAt(1)>=97&&C.path.charCodeAt(1)<=122)&&C.path.charCodeAt(2)===58?C.path[1].toLowerCase()+C.path.substr(2):C.path,i&&(R=R.replace(/\//g,"\\")),R}function E(C,D){const R=D?g:y;let L="",{scheme:W,authority:V,path:Z,query:Fe,fragment:se}=C;if(W&&(L+=W,L+=":"),(V||W==="file")&&(L+=l,L+=l),V){let K=V.indexOf("@");if(K!==-1){const Te=V.substr(0,K);V=V.substr(K+1),K=Te.lastIndexOf(":"),K===-1?L+=R(Te,!1,!1):(L+=R(Te.substr(0,K),!1,!1),L+=":",L+=R(Te.substr(K+1),!1,!0)),L+="@"}V=V.toLowerCase(),K=V.lastIndexOf(":"),K===-1?L+=R(V,!1,!0):(L+=R(V.substr(0,K),!1,!0),L+=V.substr(K))}if(Z){if(Z.length>=3&&Z.charCodeAt(0)===47&&Z.charCodeAt(2)===58){const K=Z.charCodeAt(1);K>=65&&K<=90&&(Z=`/${String.fromCharCode(K+32)}:${Z.substr(3)}`)}else if(Z.length>=2&&Z.charCodeAt(1)===58){const K=Z.charCodeAt(0);K>=65&&K<=90&&(Z=`${String.fromCharCode(K+32)}:${Z.substr(2)}`)}L+=R(Z,!0,!1)}return Fe&&(L+="?",L+=R(Fe,!1,!1)),se&&(L+="#",L+=D?se:y(se,!1,!1)),L}function k(C){try{return decodeURIComponent(C)}catch{return C.length>3?C.substr(0,3)+k(C.substr(3)):C}}const A=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function I(C){return C.match(A)?C.replace(A,D=>k(D)):C}var x=n(470);const _=x.posix||x,P="/";var O;(function(C){C.joinPath=function(D,...R){return D.with({path:_.join(D.path,...R)})},C.resolvePath=function(D,...R){let L=D.path,W=!1;L[0]!==P&&(L=P+L,W=!0);let V=_.resolve(L,...R);return W&&V[0]===P&&!D.authority&&(V=V.substring(1)),D.with({path:V})},C.dirname=function(D){if(D.path.length===0||D.path===P)return D;let R=_.dirname(D.path);return R.length===1&&R.charCodeAt(0)===46&&(R=""),D.with({path:R})},C.basename=function(D){return _.basename(D.path)},C.extname=function(D){return _.extname(D.path)}})(O||(O={}))})(),JS=r})();const{URI:Jt,Utils:Qc}=JS;var Dt;(function(t){t.basename=Qc.basename,t.dirname=Qc.dirname,t.extname=Qc.extname,t.joinPath=Qc.joinPath,t.resolvePath=Qc.resolvePath;function e(i,s){return i?.toString()===s?.toString()}t.equals=e;function n(i,s){const o=typeof i=="string"?i:i.path,a=typeof s=="string"?s:s.path,c=o.split("/").filter(h=>h.length>0),u=a.split("/").filter(h=>h.length>0);let l=0;for(;l<c.length&&c[l]===u[l];l++);const d="../".repeat(c.length-l),f=u.slice(l).join("/");return d+f}t.relative=n;function r(i){return Jt.parse(i.toString()).toString()}t.normalize=r})(Dt||(Dt={}));var Ve;(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(Ve||(Ve={}));class zj{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,n=lt.CancellationToken.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,n)}fromTextDocument(e,n,r){return n=n??Jt.parse(e.uri),lt.CancellationToken.is(r)?this.createAsync(n,e,r):this.create(n,e,r)}fromString(e,n,r){return lt.CancellationToken.is(r)?this.createAsync(n,e,r):this.create(n,e,r)}fromModel(e,n){return this.create(n,{$model:e})}create(e,n,r){if(typeof n=="string"){const i=this.parse(e,n,r);return this.createLangiumDocument(i,e,void 0,n)}else if("$model"in n){const i={value:n.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,n.getText(),r);return this.createLangiumDocument(i,e,n)}}async createAsync(e,n,r){if(typeof n=="string"){const i=await this.parseAsync(e,n,r);return this.createLangiumDocument(i,e,void 0,n)}else{const i=await this.parseAsync(e,n.getText(),r);return this.createLangiumDocument(i,e,n)}}createLangiumDocument(e,n,r,i){let s;if(r)s={parseResult:e,uri:n,state:Ve.Parsed,references:[],textDocument:r};else{const o=this.createTextDocumentGetter(n,i);s={parseResult:e,uri:n,state:Ve.Parsed,references:[],get textDocument(){return o()}}}return e.value.$document=s,s}async update(e,n){var r,i;const s=(r=e.parseResult.value.$cstNode)===null||r===void 0?void 0:r.root.fullText,o=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),a=o?o.getText():await this.fileSystemProvider.readFile(e.uri);if(o)Object.defineProperty(e,"textDocument",{value:o});else{const c=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:c})}return s!==a&&(e.parseResult=await this.parseAsync(e.uri,a,n),e.parseResult.value.$document=e),e.state=Ve.Parsed,e}parse(e,n,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(n,r)}parseAsync(e,n,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(n,r)}createTextDocumentGetter(e,n){const r=this.serviceRegistry;let i;return()=>i??(i=nh.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,n??""))}}class Bj{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return et(this.documentMap.values())}addDocument(e){const n=e.uri.toString();if(this.documentMap.has(n))throw new Error(`A document with the URI '${n}' is already present.`);this.documentMap.set(n,e)}getDocument(e){const n=e.toString();return this.documentMap.get(n)}async getOrCreateDocument(e,n){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,n),this.addDocument(r),r)}createDocument(e,n,r){if(r)return this.langiumDocumentFactory.fromString(n,e,r).then(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(n,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const n=e.toString(),r=this.documentMap.get(n);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=Ve.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){const n=e.toString(),r=this.documentMap.get(n);return r&&(r.state=Ve.Changed,this.documentMap.delete(n)),r}}const Xy=Symbol("ref_resolving");class qj{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,n=lt.CancellationToken.None){for(const r of oi(e.parseResult.value))await zt(n),Xd(r).forEach(i=>this.doLink(i,e))}doLink(e,n){var r;const i=e.reference;if(i._ref===void 0){i._ref=Xy;try{const s=this.getCandidate(e);if(Od(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const o=this.loadAstNode(s);i._ref=o??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const o=(r=s.message)!==null&&r!==void 0?r:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${o}`})}n.references.push(i)}}unlink(e){for(const n of e.references)delete n._ref,delete n._nodeDescription;e.references=[]}getCandidate(e){const r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,n,r,i){const s=this,o={$refNode:r,$refText:i,get ref(){var a;if(vt(this._ref))return this._ref;if(tM(this._nodeDescription)){const c=s.loadAstNode(this._nodeDescription);this._ref=c??s.createLinkingError({reference:o,container:e,property:n},this._nodeDescription)}else if(this._ref===void 0){this._ref=Xy;const c=Yd(e).$document,u=s.getLinkedNode({reference:o,container:e,property:n});if(u.error&&c&&c.state<Ve.ComputedScopes)return this._ref=void 0;this._ref=(a=u.node)!==null&&a!==void 0?a:u.error,this._nodeDescription=u.descr,c?.references.push(this)}else if(this._ref===Xy)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${n} (symbol '${i}')`);return vt(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return Od(this._ref)?this._ref:void 0}};return o}getLinkedNode(e){var n;try{const r=this.getCandidate(e);if(Od(r))return{error:r};const i=this.loadAstNode(r);return i?{node:i,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);const i=(n=r.message)!==null&&n!==void 0?n:String(r);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const n=this.langiumDocuments().getDocument(e.documentUri);if(n)return this.astNodeLocator.getAstNode(n.parseResult.value,e.path)}createLinkingError(e,n){const r=Yd(e.container).$document;r&&r.state<Ve.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:n})}}function ZS(t){return typeof t.name=="string"}class jj{getName(e){if(ZS(e))return e.name}getNameNode(e){return An(e.$cstNode,"name")}}class Uj{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const n=sT(e),r=e.astNode;if(n&&r){const i=r[n.feature];if(Wn(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(Wn(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||LD(e,i)))return r}}}findDeclarationNode(e){const n=this.findDeclaration(e);if(n?.$cstNode){const r=this.nameProvider.getNameNode(n);return r??n.$cstNode}}findReferences(e,n){const r=[];if(n.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return n.documentUri&&(i=i.filter(s=>Dt.equals(s.sourceUri,n.documentUri))),r.push(...i),et(r)}getReferenceToSelf(e){const n=this.nameProvider.getNameNode(e);if(n){const r=sn(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:Ha(n),local:!0}}}}class Mr{constructor(e){if(this.map=new Map,e)for(const[n,r]of e)this.add(n,r)}get size(){return ig.sum(et(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,n){if(n===void 0)return this.map.delete(e);{const r=this.map.get(e);if(r){const i=r.indexOf(n);if(i>=0)return r.length===1?this.map.delete(e):r.splice(i,1),!0}return!1}}get(e){var n;return(n=this.map.get(e))!==null&&n!==void 0?n:[]}has(e,n){if(n===void 0)return this.map.has(e);{const r=this.map.get(e);return r?r.indexOf(n)>=0:!1}}add(e,n){return this.map.has(e)?this.map.get(e).push(n):this.map.set(e,[n]),this}addAll(e,n){return this.map.has(e)?this.map.get(e).push(...n):this.map.set(e,Array.from(n)),this}forEach(e){this.map.forEach((n,r)=>n.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return et(this.map.entries()).flatMap(([e,n])=>n.map(r=>[e,r]))}keys(){return et(this.map.keys())}values(){return et(this.map.values()).flat()}entriesGroupedByKey(){return et(this.map.entries())}}class QS{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[n,r]of e)this.set(n,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,n){return this.map.set(e,n),this.inverse.set(n,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const n=this.map.get(e);return n!==void 0?(this.map.delete(e),this.inverse.delete(n),!0):!1}}class ek{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,n=lt.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,n)}async computeExportsForNode(e,n,r=kc,i=lt.CancellationToken.None){const s=[];this.exportNode(e,s,n);for(const o of r(e))await zt(i),this.exportNode(o,s,n);return s}exportNode(e,n,r){const i=this.nameProvider.getName(e);i&&n.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,n=lt.CancellationToken.None){const r=e.parseResult.value,i=new Mr;for(const s of Ir(r))await zt(n),this.processNode(s,e,i);return i}processNode(e,n,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,n))}}}class eu{constructor(e,n,r){var i;this.elements=e,this.outerScope=n,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const n=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}}class tk{constructor(e,n,r){var i;this.elements=new Map,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const o=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(o,s)}this.outerScope=n}getElement(e){const n=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(n);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=et(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}const nk={getElement(){},getAllElements(){return Fo}};class rk{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class Gj extends rk{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,n){this.throwIfDisposed(),this.cache.set(e,n)}get(e,n){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(n){const r=n();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class Wj extends rk{constructor(e){super(),this.cache=new Map,this.converter=e??(n=>n)}has(e,n){return this.throwIfDisposed(),this.cacheForContext(e).has(n)}set(e,n,r){this.throwIfDisposed(),this.cacheForContext(e).set(n,r)}get(e,n,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(n))return i.get(n);if(r){const s=r();return i.set(n,s),s}else return}delete(e,n){return this.throwIfDisposed(),this.cacheForContext(e).delete(n)}clear(e){if(this.throwIfDisposed(),e){const n=this.converter(e);this.cache.delete(n)}else this.cache.clear()}cacheForContext(e){const n=this.converter(e);let r=this.cache.get(n);return r||(r=new Map,this.cache.set(n,r)),r}}class ik extends Gj{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class sk{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new ik(e.shared)}getScope(e){const n=[],r=this.reflection.getReferenceType(e),i=sn(e.container).precomputedScopes;if(i){let o=e.container;do{const a=i.get(o);a.length>0&&n.push(et(a).filter(c=>this.reflection.isSubtype(c.type,r))),o=o.$container}while(o)}let s=this.getGlobalScope(r,e);for(let o=n.length-1;o>=0;o--)s=this.createScope(n[o],s);return s}createScope(e,n,r){return new eu(et(e),n,r)}createScopeForNodes(e,n,r){const i=et(e).map(s=>{const o=this.nameProvider.getName(s);if(o)return this.descriptions.createDescription(s,o)}).nonNullable();return new eu(i,n,r)}getGlobalScope(e,n){return this.globalScopeCache.get(e,()=>new tk(this.indexManager.allElements(e)))}}function Hj(t){return typeof t.$comment=="string"}function ok(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}class Vj{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,n){const r=n??{},i=n?.replacer,s=(a,c)=>this.replacer(a,c,r),o=i?(a,c)=>i(a,c,s):s;try{return this.currentDocument=sn(e),JSON.stringify(e,o,n?.space)}finally{this.currentDocument=void 0}}deserialize(e,n){const r=n??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,n,{refText:r,sourceText:i,textRegions:s,comments:o,uriConverter:a}){var c,u,l,d;if(!this.ignoreProperties.has(e))if(Wn(n)){const f=n.ref,h=r?n.$refText:void 0;if(f){const p=sn(f);let m="";this.currentDocument&&this.currentDocument!==p&&(a?m=a(p.uri,n):m=p.uri.toString());const y=this.astNodeLocator.getAstNodePath(f);return{$ref:`${m}#${y}`,$refText:h}}else return{$error:(u=(c=n.error)===null||c===void 0?void 0:c.message)!==null&&u!==void 0?u:"Could not resolve reference",$refText:h}}else if(vt(n)){let f;if(s&&(f=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},n)),(!e||n.$document)&&f?.$textRegion&&(f.$textRegion.documentURI=(l=this.currentDocument)===null||l===void 0?void 0:l.uri.toString())),i&&!e&&(f??(f=Object.assign({},n)),f.$sourceText=(d=n.$cstNode)===null||d===void 0?void 0:d.text),o){f??(f=Object.assign({},n));const h=this.commentProvider.getComment(n);h&&(f.$comment=h.replace(/\r/g,""))}return f??n}else return n}addAstNodeRegionWithAssignmentsTo(e){const n=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=n(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const o=Bo(e.$cstNode,s).map(n);o.length!==0&&(i[s]=o)}),e}}linkNode(e,n,r,i,s,o){for(const[c,u]of Object.entries(e))if(Array.isArray(u))for(let l=0;l<u.length;l++){const d=u[l];ok(d)?u[l]=this.reviveReference(e,c,n,d,r):vt(d)&&this.linkNode(d,n,r,e,c,l)}else ok(u)?e[c]=this.reviveReference(e,c,n,u,r):vt(u)&&this.linkNode(u,n,r,e,c);const a=e;a.$container=i,a.$containerProperty=s,a.$containerIndex=o}reviveReference(e,n,r,i,s){let o=i.$refText,a=i.$error;if(i.$ref){const c=this.getRefNode(r,i.$ref,s.uriConverter);if(vt(c))return o||(o=this.nameProvider.getName(c)),{$refText:o??"",ref:c};a=c}if(a){const c={$refText:o??""};return c.error={container:e,property:n,message:a,reference:c},c}else return}getRefNode(e,n,r){try{const i=n.indexOf("#");if(i===0){const c=this.astNodeLocator.getAstNode(e,n.substring(1));return c||"Could not resolve path: "+n}if(i<0){const c=r?r(n):Jt.parse(n),u=this.langiumDocuments.getDocument(c);return u?u.parseResult.value:"Could not find document for URI: "+n}const s=r?r(n.substring(0,i)):Jt.parse(n.substring(0,i)),o=this.langiumDocuments.getDocument(s);if(!o)return"Could not find document for URI: "+n;if(i===n.length-1)return o.parseResult.value;const a=this.astNodeLocator.getAstNode(o.parseResult.value,n.substring(i+1));return a||"Could not resolve URI: "+n}catch(i){return String(i)}}}class Kj{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){const n=e.LanguageMetaData;for(const r of n.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileExtensionMap.set(r,e);this.languageIdMap.set(n.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var n,r;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(r=(n=this.textDocuments)===null||n===void 0?void 0:n.get(e))===null||r===void 0?void 0:r.languageId;if(i!==void 0){const a=this.languageIdMap.get(i);if(a)return a}const s=Dt.extname(e),o=this.fileExtensionMap.get(s);if(!o)throw i?new Error(`The service registry contains no services for the extension '${s}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${s}'.`);return o}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function tu(t){return{code:t}}var rh;(function(t){t.all=["fast","slow","built-in"]})(rh||(rh={}));class Yj{constructor(e){this.entries=new Mr,this.reflection=e.shared.AstReflection}register(e,n=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const o=s;if(Array.isArray(o))for(const a of o){const c={check:this.wrapValidationException(a,n),category:r};this.addEntry(i,c)}else if(typeof o=="function"){const a={check:this.wrapValidationException(o,n),category:r};this.addEntry(i,a)}}}wrapValidationException(e,n){return async(r,i,s)=>{try{await e.call(n,r,i,s)}catch(o){if(th(o))throw o;console.error("An error occurred during validation:",o);const a=o instanceof Error?o.message:String(o);o instanceof Error&&o.stack&&console.error(o.stack),i("error","An error occurred during validation: "+a,{node:r})}}}addEntry(e,n){if(e==="AstNode"){this.entries.add("AstNode",n);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,n)}getChecks(e,n){let r=et(this.entries.get(e)).concat(this.entries.get("AstNode"));return n&&(r=r.filter(i=>n.includes(i.category))),r.map(i=>i.check)}}class Xj{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,n={},r=lt.CancellationToken.None){const i=e.parseResult,s=[];if(await zt(r),(!n.categories||n.categories.includes("built-in"))&&(this.processLexingErrors(i,s,n),n.stopAfterLexingErrors&&s.some(o=>{var a;return((a=o.data)===null||a===void 0?void 0:a.code)===gr.LexingError})||(this.processParsingErrors(i,s,n),n.stopAfterParsingErrors&&s.some(o=>{var a;return((a=o.data)===null||a===void 0?void 0:a.code)===gr.ParsingError}))||(this.processLinkingErrors(e,s,n),n.stopAfterLinkingErrors&&s.some(o=>{var a;return((a=o.data)===null||a===void 0?void 0:a.code)===gr.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,n,r))}catch(o){if(th(o))throw o;console.error("An error occurred during validation:",o)}return await zt(r),s}processLexingErrors(e,n,r){var i,s,o;const a=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const c of a){const u=(o=c.severity)!==null&&o!==void 0?o:"error",l={severity:Jy(u),range:{start:{line:c.line-1,character:c.column-1},end:{line:c.line-1,character:c.column+c.length-1}},message:c.message,data:Zj(u),source:this.getSource()};n.push(l)}}processParsingErrors(e,n,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const o=i.previousToken;if(isNaN(o.startOffset)){const a={line:0,character:0};s={start:a,end:a}}else{const a={line:o.endLine-1,character:o.endColumn};s={start:a,end:a}}}}else s=Ld(i.token);if(s){const o={severity:Jy("error"),range:s,message:i.message,data:tu(gr.ParsingError),source:this.getSource()};n.push(o)}}}processLinkingErrors(e,n,r){for(const i of e.references){const s=i.error;if(s){const o={node:s.container,property:s.property,index:s.index,data:{code:gr.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};n.push(this.toDiagnostic("error",s.message,o))}}}async validateAst(e,n,r=lt.CancellationToken.None){const i=[],s=(o,a,c)=>{i.push(this.toDiagnostic(o,a,c))};return await Promise.all(oi(e).map(async o=>{await zt(r);const a=this.validationRegistry.getChecks(o.$type,n.categories);for(const c of a)await c(o,s,r)})),i}toDiagnostic(e,n,r){return{message:n,range:Jj(r),severity:Jy(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function Jj(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=An(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=Cc(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Jy(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}function Zj(t){switch(t){case"error":return tu(gr.LexingError);case"warning":return tu(gr.LexingWarning);case"info":return tu(gr.LexingInfo);case"hint":return tu(gr.LexingHint);default:throw new Error("Invalid diagnostic severity: "+t)}}var gr;(function(t){t.LexingError="lexing-error",t.LexingWarning="lexing-warning",t.LexingInfo="lexing-info",t.LexingHint="lexing-hint",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(gr||(gr={}));class Qj{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,n,r){const i=r??sn(e);n??(n=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!n)throw new Error(`Node at path ${s} has no name.`);let o;const a=()=>{var c;return o??(o=Ha((c=this.nameProvider.getNameNode(e))!==null&&c!==void 0?c:e.$cstNode))};return{node:e,name:n,get nameSegment(){return a()},selectionSegment:Ha(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class e9{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,n=lt.CancellationToken.None){const r=[],i=e.parseResult.value;for(const s of oi(i))await zt(n),Xd(s).filter(o=>!Od(o)).forEach(o=>{const a=this.createDescription(o);a&&r.push(a)});return r}createDescription(e){const n=e.reference.$nodeDescription,r=e.reference.$refNode;if(!n||!r)return;const i=sn(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:n.documentUri,targetPath:n.path,segment:Ha(r),local:Dt.equals(n.documentUri,i)}}}class t9{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const n=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return n+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:n}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return n!==void 0?e+this.indexSeparator+n:e}getAstNode(e,n){return n.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;const o=s.indexOf(this.indexSeparator);if(o>0){const a=s.substring(0,o),c=parseInt(s.substring(o+1)),u=i[a];return u?.[c]}return i[s]},e)}}var n9=ta();class r9{constructor(e){this._ready=new Ky,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new n9.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var n,r;this.workspaceConfig=(r=(n=e.capabilities.workspace)===null||n===void 0?void 0:n.configuration)!==null&&r!==void 0?r:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const n=this.serviceRegistry.all;e.register({section:n.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const n=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(n);n.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(n=>{const r=e.settings[n];this.updateSectionConfiguration(n,r),this.onConfigurationSectionUpdateEmitter.fire({section:n,configuration:r})})}updateSectionConfiguration(e,n){this.settings[e]=n}async getConfiguration(e,n){await this.ready;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][n]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var Us;(function(t){function e(n){return{dispose:async()=>await n()}}t.create=e})(Us||(Us={}));class i9{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Mr,this.documentPhaseListeners=new Mr,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Ve.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,n={},r=lt.CancellationToken.None){var i,s;for(const o of e){const a=o.uri.toString();if(o.state===Ve.Validated){if(typeof n.validation=="boolean"&&n.validation)o.state=Ve.IndexedReferences,o.diagnostics=void 0,this.buildState.delete(a);else if(typeof n.validation=="object"){const c=this.buildState.get(a),u=(i=c?.result)===null||i===void 0?void 0:i.validationChecks;if(u){const d=((s=n.validation.categories)!==null&&s!==void 0?s:rh.all).filter(f=>!u.includes(f));d.length>0&&(this.buildState.set(a,{completed:!1,options:{validation:Object.assign(Object.assign({},n.validation),{categories:d})},result:c.result}),o.state=Ve.IndexedReferences)}}}else this.buildState.delete(a)}this.currentState=Ve.Changed,await this.emitUpdate(e.map(o=>o.uri),[]),await this.buildDocuments(e,n,r)}async update(e,n,r=lt.CancellationToken.None){this.currentState=Ve.Changed;for(const o of n)this.langiumDocuments.deleteDocument(o),this.buildState.delete(o.toString()),this.indexManager.remove(o);for(const o of e){if(!this.langiumDocuments.invalidateDocument(o)){const c=this.langiumDocumentFactory.fromModel({$type:"INVALID"},o);c.state=Ve.Changed,this.langiumDocuments.addDocument(c)}this.buildState.delete(o.toString())}const i=et(e).concat(n).map(o=>o.toString()).toSet();this.langiumDocuments.all.filter(o=>!i.has(o.uri.toString())&&this.shouldRelink(o,i)).forEach(o=>{this.serviceRegistry.getServices(o.uri).references.Linker.unlink(o),o.state=Math.min(o.state,Ve.ComputedScopes),o.diagnostics=void 0}),await this.emitUpdate(e,n),await zt(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(o=>{var a;return o.state<Ve.Linked||!(!((a=this.buildState.get(o.uri.toString()))===null||a===void 0)&&a.completed)}).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}async emitUpdate(e,n){await Promise.all(this.updateListeners.map(r=>r(e,n)))}sortDocuments(e){let n=0,r=e.length-1;for(;n<r;){for(;n<e.length&&this.hasTextDocument(e[n]);)n++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;n<r&&([e[n],e[r]]=[e[r],e[n]])}return e}hasTextDocument(e){var n;return!!(!((n=this.textDocuments)===null||n===void 0)&&n.get(e.uri))}shouldRelink(e,n){return e.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(e,n)}onUpdate(e){return this.updateListeners.push(e),Us.create(()=>{const n=this.updateListeners.indexOf(e);n>=0&&this.updateListeners.splice(n,1)})}async buildDocuments(e,n,r){this.prepareBuild(e,n),await this.runCancelable(e,Ve.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,Ve.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,Ve.ComputedScopes,r,async s=>{const o=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await o.computeLocalScopes(s,r)}),await this.runCancelable(e,Ve.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,Ve.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,Ve.Validated,r,s=>this.validate(s,r));for(const s of e){const o=this.buildState.get(s.uri.toString());o&&(o.completed=!0)}}prepareBuild(e,n){for(const r of e){const i=r.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:n,result:s?.result})}}async runCancelable(e,n,r,i){const s=e.filter(a=>a.state<n);for(const a of s)await zt(r),await i(a),a.state=n,await this.notifyDocumentPhase(a,n,r);const o=e.filter(a=>a.state===n);await this.notifyBuildPhase(o,n,r),this.currentState=n}onBuildPhase(e,n){return this.buildPhaseListeners.add(e,n),Us.create(()=>{this.buildPhaseListeners.delete(e,n)})}onDocumentPhase(e,n){return this.documentPhaseListeners.add(e,n),Us.create(()=>{this.documentPhaseListeners.delete(e,n)})}waitUntil(e,n,r){let i;if(n&&"path"in n?i=n:r=n,r??(r=lt.CancellationToken.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(eh):new Promise((s,o)=>{const a=this.onBuildPhase(e,()=>{if(a.dispose(),c.dispose(),i){const u=this.langiumDocuments.getDocument(i);s(u?.uri)}else s(void 0)}),c=r.onCancellationRequested(()=>{a.dispose(),c.dispose(),o(eh)})})}async notifyDocumentPhase(e,n,r){const i=this.documentPhaseListeners.get(n);for(const s of i)try{await s(e,r)}catch(o){if(!th(o))throw o}}async notifyBuildPhase(e,n,r){if(e.length===0)return;const i=this.buildPhaseListeners.get(n);for(const s of i)await zt(r),await s(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,n){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,o=this.getBuildOptions(e).validation,a=typeof o=="object"?o:void 0,c=await s.validateDocument(e,a,n);e.diagnostics?e.diagnostics.push(...c):e.diagnostics=c;const u=this.buildState.get(e.uri.toString());if(u){(r=u.result)!==null&&r!==void 0||(u.result={});const l=(i=a?.categories)!==null&&i!==void 0?i:rh.all;u.result.validationChecks?u.result.validationChecks.push(...l):u.result.validationChecks=[...l]}}getBuildOptions(e){var n,r;return(r=(n=this.buildState.get(e.uri.toString()))===null||n===void 0?void 0:n.options)!==null&&r!==void 0?r:{}}}class s9{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Wj,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,n){const r=sn(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(o=>{Dt.equals(o.targetUri,r)&&o.targetPath===n&&i.push(o)})}),et(i)}allElements(e,n){let r=et(this.symbolIndex.keys());return n&&(r=r.filter(i=>!n||n.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,n){var r;return n?this.symbolByTypeIndex.get(e,n,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(a=>this.astReflection.isSubtype(a.type,n))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}remove(e){const n=e.toString();this.symbolIndex.delete(n),this.symbolByTypeIndex.clear(n),this.referenceIndex.delete(n)}async updateContent(e,n=lt.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,n),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,n=lt.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,n);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,n){const r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&n.has(i.targetUri.toString())):!1}}class ak{constructor(e){this.initialBuildOptions={},this._ready=new Ky,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(e){var n;this.folders=(n=e.workspaceFolders)!==null&&n!==void 0?n:void 0}initialized(e){return this.mutex.write(n=>{var r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],n)})}async initializeWorkspace(e,n=lt.CancellationToken.None){const r=await this.performStartup(e);await zt(n),await this.documentBuilder.build(r,this.initialBuildOptions,n)}async performStartup(e){const n=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,n,i))),this._ready.resolve(),r}loadAdditionalDocuments(e,n){return Promise.resolve()}getRootFolder(e){return Jt.parse(e.uri)}async traverseFolder(e,n,r,i){const s=await this.fileSystemProvider.readDirectory(n);await Promise.all(s.map(async o=>{if(this.includeEntry(e,o,r)){if(o.isDirectory)await this.traverseFolder(e,o.uri,r,i);else if(o.isFile){const a=await this.langiumDocuments.getOrCreateDocument(o.uri);i(a)}}}))}includeEntry(e,n,r){const i=Dt.basename(n.uri);if(i.startsWith("."))return!1;if(n.isDirectory)return i!=="node_modules"&&i!=="out";if(n.isFile){const s=Dt.extname(n.uri);return r.includes(s)}return!1}}const o9={mode:"full"};class a9{constructor(e){this.tokenBuilder=e.parser.TokenBuilder;const n=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(n);const r=uk(n)?Object.values(n):n;this.chevrotainLexer=new Rn(r,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e,n=o9){var r,i,s;const o=this.chevrotainLexer.tokenize(e);return{tokens:o.tokens,errors:o.errors,hidden:(r=o.groups.hidden)!==null&&r!==void 0?r:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(uk(e))return e;const n=ck(e)?Object.values(e.modes).flat():e,r={};return n.forEach(i=>r[i.name]=i),r}}function c9(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function ck(t){return t&&"modes"in t&&"defaultMode"in t}function uk(t){return!c9(t)&&!ck(t)}function u9(t,e,n){let r,i;typeof t=="string"?(i=e,r=n):(i=t.range.start,r=e),i||(i=He.create(0,0));const s=lk(t),o=Qy(r),a=f9({lines:s,position:i,options:o});return y9({index:0,tokens:a,position:i})}function l9(t,e){const n=Qy(e),r=lk(t);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],o=n.start,a=n.end;return!!o?.exec(i)&&!!a?.exec(s)}function lk(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(tT)}const dk=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,d9=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function f9(t){var e,n,r;const i=[];let s=t.position.line,o=t.position.character;for(let a=0;a<t.lines.length;a++){const c=a===0,u=a===t.lines.length-1;let l=t.lines[a],d=0;if(c&&t.options.start){const h=(e=t.options.start)===null||e===void 0?void 0:e.exec(l);h&&(d=h.index+h[0].length)}else{const h=(n=t.options.line)===null||n===void 0?void 0:n.exec(l);h&&(d=h.index+h[0].length)}if(u){const h=(r=t.options.end)===null||r===void 0?void 0:r.exec(l);h&&(l=l.substring(0,h.index))}if(l=l.substring(0,g9(l)),Zy(l,d)>=l.length){if(i.length>0){const h=He.create(s,o);i.push({type:"break",content:"",range:Me.create(h,h)})}}else{dk.lastIndex=d;const h=dk.exec(l);if(h){const p=h[0],m=h[1],y=He.create(s,o+d),g=He.create(s,o+d+p.length);i.push({type:"tag",content:m,range:Me.create(y,g)}),d+=p.length,d=Zy(l,d)}if(d<l.length){const p=l.substring(d),m=Array.from(p.matchAll(d9));i.push(...h9(m,p,s,o+d))}}s++,o=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function h9(t,e,n,r){const i=[];if(t.length===0){const s=He.create(n,r),o=He.create(n,r+e.length);i.push({type:"text",content:e,range:Me.create(s,o)})}else{let s=0;for(const a of t){const c=a.index,u=e.substring(s,c);u.length>0&&i.push({type:"text",content:e.substring(s,c),range:Me.create(He.create(n,s+r),He.create(n,c+r))});let l=u.length+1;const d=a[1];if(i.push({type:"inline-tag",content:d,range:Me.create(He.create(n,s+l+r),He.create(n,s+l+d.length+r))}),l+=d.length,a.length===4){l+=a[2].length;const f=a[3];i.push({type:"text",content:f,range:Me.create(He.create(n,s+l+r),He.create(n,s+l+f.length+r))})}else i.push({type:"text",content:"",range:Me.create(He.create(n,s+l+r),He.create(n,s+l+r))});s=c+a[0].length}const o=e.substring(s);o.length>0&&i.push({type:"text",content:o,range:Me.create(He.create(n,s+r),He.create(n,s+r+o.length))})}return i}const p9=/\S/,m9=/\s*$/;function Zy(t,e){const n=t.substring(e).match(p9);return n?e+n.index:t.length}function g9(t){const e=t.match(m9);if(e&&typeof e.index=="number")return e.index}function y9(t){var e,n,r,i;const s=He.create(t.position.line,t.position.character);if(t.tokens.length===0)return new mk([],Me.create(s,s));const o=[];for(;t.index<t.tokens.length;){const u=v9(t,o[o.length-1]);u&&o.push(u)}const a=(n=(e=o[0])===null||e===void 0?void 0:e.range.start)!==null&&n!==void 0?n:s,c=(i=(r=o[o.length-1])===null||r===void 0?void 0:r.range.end)!==null&&i!==void 0?i:s;return new mk(o,Me.create(a,c))}function v9(t,e){const n=t.tokens[t.index];if(n.type==="tag")return hk(t,!1);if(n.type==="text"||n.type==="inline-tag")return fk(t);w9(n,e),t.index++}function w9(t,e){if(e){const n=new gk("",t.range);"inlines"in e?e.inlines.push(n):e.content.inlines.push(n)}}function fk(t){let e=t.tokens[t.index];const n=e;let r=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(b9(t)),r=e,e=t.tokens[t.index];return new nv(i,Me.create(n.range.start,r.range.end))}function b9(t){return t.tokens[t.index].type==="inline-tag"?hk(t,!0):pk(t)}function hk(t,e){const n=t.tokens[t.index++],r=n.content.substring(1),i=t.tokens[t.index];if(i?.type==="text")if(e){const s=pk(t);return new tv(r,new nv([s],s.range),e,Me.create(n.range.start,s.range.end))}else{const s=fk(t);return new tv(r,s,e,Me.create(n.range.start,s.range.end))}else{const s=n.range;return new tv(r,new nv([],s),e,s)}}function pk(t){const e=t.tokens[t.index++];return new gk(e.content,e.range)}function Qy(t){if(!t)return Qy({start:"/**",end:"*/",line:"*"});const{start:e,end:n,line:r}=t;return{start:ev(e,!0),end:ev(n,!1),line:ev(r,!0)}}function ev(t,e){if(typeof t=="string"||typeof t=="object"){const n=typeof t=="string"?nf(t):t.source;return e?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}else return t}class mk{constructor(e,n){this.elements=e,this.range=n}getTag(e){return this.getAllTags().find(n=>n.name===e)}getTags(e){return this.getAllTags().filter(n=>n.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const n of this.elements)if(e.length===0)e=n.toString();else{const r=n.toString();e+=yk(e)+r}return e.trim()}toMarkdown(e){let n="";for(const r of this.elements)if(n.length===0)n=r.toMarkdown(e);else{const i=r.toMarkdown(e);n+=yk(n)+i}return n.trim()}}class tv{constructor(e,n,r,i){this.name=e,this.content=n,this.inline=r,this.range=i}toString(){let e=`@${this.name}`;const n=this.content.toString();return this.content.inlines.length===1?e=`${e} ${n}`:this.content.inlines.length>1&&(e=`${e}
118
+ ${n}`),this.inline?`{${e}}`:e}toMarkdown(e){var n,r;return(r=(n=e?.renderTag)===null||n===void 0?void 0:n.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const n=this.content.toMarkdown(e);if(this.inline){const s=E9(this.name,n,e??{});if(typeof s=="string")return s}let r="";e?.tag==="italic"||e?.tag===void 0?r="*":e?.tag==="bold"?r="**":e?.tag==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} \u2014 ${n}`:this.content.inlines.length>1&&(i=`${i}
119
+ ${n}`),this.inline?`{${i}}`:i}}function E9(t,e,n){var r,i;if(t==="linkplain"||t==="linkcode"||t==="link"){const s=e.indexOf(" ");let o=e;if(s>0){const c=Zy(e,s);o=e.substring(c),e=e.substring(0,s)}return(t==="linkcode"||t==="link"&&n.link==="code")&&(o=`\`${o}\``),(i=(r=n.renderLink)===null||r===void 0?void 0:r.call(n,e,o))!==null&&i!==void 0?i:D9(e,o)}}function D9(t,e){try{return Jt.parse(t,!0),`[${e}](${t})`}catch{return t}}class nv{constructor(e,n){this.inlines=e,this.range=n}toString(){let e="";for(let n=0;n<this.inlines.length;n++){const r=this.inlines[n],i=this.inlines[n+1];e+=r.toString(),i&&i.range.start.line>r.range.start.line&&(e+=`
120
+ `)}return e}toMarkdown(e){let n="";for(let r=0;r<this.inlines.length;r++){const i=this.inlines[r],s=this.inlines[r+1];n+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(n+=`
121
+ `)}return n}}class gk{constructor(e,n){this.text=e,this.range=n}toString(){return this.text}toMarkdown(){return this.text}}function yk(t){return t.endsWith(`
122
+ `)?`
123
+ `:`
124
+
125
+ `}class T9{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const n=this.commentProvider.getComment(e);if(n&&l9(n))return u9(n).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,n,r){var i;const s=(i=this.findNameInPrecomputedScopes(e,n))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,n);if(s&&s.nameSegment){const o=s.nameSegment.range.start.line+1,a=s.nameSegment.range.start.character+1,c=s.documentUri.with({fragment:`L${o},${a}`});return`[${r}](${c.toString()})`}else return}documentationTagRenderer(e,n){}findNameInPrecomputedScopes(e,n){const i=sn(e).precomputedScopes;if(!i)return;let s=e;do{const a=i.get(s).find(c=>c.name===n);if(a)return a;s=s.$container}while(s)}findNameInGlobalScope(e,n){return this.indexManager.allElements().find(i=>i.name===n)}}class R9{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var n;return Hj(e)?e.$comment:(n=Md(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||n===void 0?void 0:n.text}}class S9{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,n){return Promise.resolve(this.syncParser.parse(e))}}class k9{constructor(){this.previousTokenSource=new lt.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const n=new lt.CancellationTokenSource;return this.previousTokenSource=n,this.enqueue(this.writeQueue,e,n.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,n,r=lt.CancellationToken.None){const i=new Ky,s={action:n,deferred:i,cancellationToken:r};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:n,deferred:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>n(i));r.resolve(s)}catch(s){th(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class $9{constructor(e){this.grammarElementIdMap=new QS,this.tokenTypeIdMap=new QS,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(n=>Object.assign(Object.assign({},n),{message:n.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const n=new Map,r=new Map;for(const i of oi(e))n.set(i,{});if(e.$cstNode)for(const i of Wa(e.$cstNode))r.set(i,{});return{astNodes:n,cstNodes:r}}dehydrateAstNode(e,n){const r=n.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,n));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const o=[];r[i]=o;for(const a of s)vt(a)?o.push(this.dehydrateAstNode(a,n)):Wn(a)?o.push(this.dehydrateReference(a,n)):o.push(a)}else vt(s)?r[i]=this.dehydrateAstNode(s,n):Wn(s)?r[i]=this.dehydrateReference(s,n):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,n){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=n.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,n){const r=n.cstNodes.get(e);return OD(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=n.astNodes.get(e.astNode),ri(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,n)):Cs(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const n=e.value,r=this.createHydrationContext(n);return"$cstNode"in n&&this.hydrateCstNode(n.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(n,r)}}createHydrationContext(e){const n=new Map,r=new Map;for(const s of oi(e))n.set(s,{});let i;if(e.$cstNode)for(const s of Wa(e.$cstNode)){let o;"fullText"in s?(o=new OS(s.fullText),i=o):"content"in s?o=new Gy:"tokenType"in s&&(o=this.hydrateCstLeafNode(s)),o&&(r.set(s,o),o.root=i)}return{astNodes:n,cstNodes:r}}hydrateAstNode(e,n){const r=n.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=n.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const o=[];r[i]=o;for(const a of s)vt(a)?o.push(this.setParent(this.hydrateAstNode(a,n),r)):Wn(a)?o.push(this.hydrateReference(a,r,i,n)):o.push(a)}else vt(s)?r[i]=this.setParent(this.hydrateAstNode(s,n),r):Wn(s)?r[i]=this.hydrateReference(s,r,i,n):s!==void 0&&(r[i]=s);return r}setParent(e,n){return e.$container=n,e}hydrateReference(e,n,r,i){return this.linker.buildReference(n,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,n,r=0){const i=n.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=n.astNodes.get(e.astNode),ri(i))for(const s of e.content){const o=this.hydrateCstNode(s,n,r++);i.content.push(o)}return i}hydrateCstLeafNode(e){const n=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,o=e.startColumn,a=e.endLine,c=e.endColumn,u=e.hidden;return new Uy(r,i,{start:{line:s,character:o},end:{line:a,character:c}},n,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();const n=this.grammarElementIdMap.getKey(e);if(n)return n;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(const n of oi(this.grammar))dg(n)&&this.grammarElementIdMap.set(n,e++)}}function vk(t){return{documentation:{CommentProvider:e=>new R9(e),DocumentationProvider:e=>new T9(e)},parser:{AsyncParser:e=>new S9(e),GrammarConfig:e=>jM(e),LangiumParser:e=>Ij(e),CompletionParser:e=>xj(e),ValueConverter:()=>new Oj,TokenBuilder:()=>new Nj,Lexer:e=>new a9(e),ParserErrorMessageProvider:()=>new zS},workspace:{AstNodeLocator:()=>new t9,AstNodeDescriptionProvider:e=>new Qj(e),ReferenceDescriptionProvider:e=>new e9(e)},references:{Linker:e=>new qj(e),NameProvider:()=>new jj,ScopeProvider:e=>new sk(e),ScopeComputation:e=>new ek(e),References:e=>new Uj(e)},serializer:{Hydrator:e=>new $9(e),JsonSerializer:e=>new Vj(e)},validation:{DocumentValidator:e=>new Xj(e),ValidationRegistry:e=>new Yj(e)},shared:()=>t.shared}}function wk(t){return{ServiceRegistry:e=>new Kj(e),workspace:{LangiumDocuments:e=>new Bj(e),LangiumDocumentFactory:e=>new zj(e),DocumentBuilder:e=>new i9(e),IndexManager:e=>new s9(e),WorkspaceManager:e=>new ak(e),FileSystemProvider:e=>t.fileSystemProvider(e),WorkspaceLock:()=>new k9,ConfigurationProvider:e=>new r9(e)}}}var ih;(function(t){t.merge=(e,n)=>oh(oh({},e),n)})(ih||(ih={}));function sh(t,e,n,r,i,s,o,a,c){const u=[t,e,n,r,i,s,o,a,c].reduce(oh,{});return Ek(u)}const bk=Symbol("isProxy");function rv(t){if(t&&t[bk])for(const e of Object.values(t))rv(e);return t}function Ek(t,e){const n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===bk?!0:Tk(r,i,t,e||n),getOwnPropertyDescriptor:(r,i)=>(Tk(r,i,t,e||n),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in t,ownKeys:()=>[...Object.getOwnPropertyNames(t)]});return n}const Dk=Symbol();function Tk(t,e,n,r){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===Dk)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in n){const i=n[e];t[e]=Dk;try{t[e]=typeof i=="function"?i(r):Ek(i,r)}catch(s){throw t[e]=s instanceof Error?s:void 0,s}return t[e]}else return}function oh(t,e){if(e){for(const[n,r]of Object.entries(e))if(r!==void 0){const i=t[n];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?t[n]=oh(i,r):t[n]=r}}return t}class C9{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const Rk={fileSystemProvider:()=>new C9},_9={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},A9={AstReflection:()=>new XD};function x9(){const t=sh(wk(Rk),A9),e=sh(vk({shared:t}),_9);return t.ServiceRegistry.register(e),e}function I9(t){var e;const n=x9(),r=n.serializer.JsonSerializer.deserialize(t);return n.shared.workspace.LangiumDocumentFactory.fromModel(r,Jt.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}function P9(t,e,n){let r=i=>t(i,...e);return n===void 0?r:Object.assign(r,{lazy:n,lazyArgs:e})}function Ke(t,e,n){let r=t.length-e.length;if(r===0)return t(...e);if(r===1)return P9(t,e,n);throw new Error("Wrong number of arguments")}var N9={done:!0,hasNext:!1},na={done:!1,hasNext:!1},Sk=()=>N9,O9=t=>({hasNext:!0,next:t,done:!1});function Ye(t,...e){let n=t,r=e.map(s=>"lazy"in s?F9(s):void 0),i=0;for(;i<e.length;){if(r[i]===void 0||!L9(n)){let c=e[i];n=c(n),i+=1;continue}let s=[];for(let c=i;c<e.length;c++){let u=r[c];if(u===void 0||(s.push(u),u.isSingle))break}let o=[];for(let c of n)if(kk(c,o,s))break;let{isSingle:a}=s.at(-1);n=a?o[0]:o,i+=s.length}return n}function kk(t,e,n){if(n.length===0)return e.push(t),!1;let r=t,i=na,s=!1;for(let[o,a]of n.entries()){let{index:c,items:u}=a;if(u.push(r),i=a(r,c,u),a.index+=1,i.hasNext){if(i.hasMany??!1){for(let l of i.next)if(kk(l,e,n.slice(o+1)))return!0;return s}r=i.next}if(!i.hasNext)break;i.done&&(s=!0)}return i.hasNext&&e.push(r),s}function F9(t){let{lazy:e,lazyArgs:n}=t,r=e(...n);return Object.assign(r,{isSingle:e.single??!1,index:0,items:[]})}function L9(t){return typeof t=="string"||typeof t=="object"&&t!==null&&Symbol.iterator in t}function iv(t,e){let n=e.length-t.length;if(n===1){let[r,...i]=e;return Ye(r,{lazy:t,lazyArgs:i})}if(n===0){let r={lazy:t,lazyArgs:e};return Object.assign(i=>Ye(i,r),r)}throw new Error("Wrong number of arguments")}function zr(...t){return iv(M9,t)}function M9(){let t=new Set;return e=>t.has(e)?na:(t.add(e),{done:!1,hasNext:!0,next:e})}function ah(...t){return Ke(Object.values,t)}function z9(...t){return Ke(B9,t,q9)}var B9=(t,e)=>e<0?[]:t.slice(0,e);function q9(t){if(t<=0)return Sk;let e=t;return n=>(e-=1,{done:e<=0,hasNext:!0,next:n})}function Br(...t){return Ke(j9,t)}var j9=(t,e)=>t.length>=e,$k={asc:(t,e)=>t>e,desc:(t,e)=>t<e};function U9(t,e){let[n,...r]=e;if(!G9(n)){let s=sv(...r);return t(n,s)}let i=sv(n,...r);return s=>t(s,i)}function sv(t,e,...n){let r=typeof t=="function"?t:t[0],i=typeof t=="function"?"asc":t[1],{[i]:s}=$k,o=e===void 0?void 0:sv(e,...n);return(a,c)=>{let u=r(a),l=r(c);return s(u,l)?1:s(l,u)?-1:o?.(a,c)??0}}function G9(t){if(Ck(t))return!0;if(typeof t!="object"||!Array.isArray(t))return!1;let[e,n,...r]=t;return Ck(e)&&typeof n=="string"&&n in $k&&r.length===0}var Ck=t=>typeof t=="function"&&t.length===1;function W9(...t){return Ke(H9,t)}function H9(t,e){return e(t),t}function ra(...t){return Ke(V9,t)}function V9(t,e){let n=[...t];return n.sort(e),n}function K9(...t){return U9(Y9,t)}var Y9=(t,e)=>[...t].sort(e);function _k(...t){return Ke(X9,t)}var X9=(t,e,n)=>t.reduce(e,n);function ch(...t){return Ke(J9,t)}function J9(t){return[...t].reverse()}function ov(...t){return Ke(Z9,t)}function Z9(t,e){let n={};for(let r of e)r in t&&(n[r]=t[r]);return n}function av(...t){return e=>Ye(e,...t)}function yi(...t){return Ke(Q9,t)}var Q9=(t,e)=>t[e];function Ak(...t){return Ke(eU,t)}function eU(t,e){if(!Br(e,1))return{...t};if(!Br(e,2)){let{[e[0]]:r,...i}=t;return i}let n={...t};for(let r of e)delete n[r];return n}function xk(...t){return Ke(tU,t)}function tU(t,e){let n={...t};for(let[r,i]of Object.entries(n))e(i,r,t)&&delete n[r];return n}function kn(...t){return Ke(nU,t)}var nU=t=>t.length===1?t[0]:void 0;function ia(...t){return Ke(rU,t)}var rU=t=>t.at(-1);function Et(...t){return Ke(iU,t,sU)}var iU=(t,e)=>t.map(e),sU=t=>(e,n,r)=>({done:!1,hasNext:!0,next:t(e,n,r)});function vi(...t){return Ke(oU,t)}function oU(t,e){let n={};for(let[r,i]of t.entries()){let[s,o]=e(i,r,t);n[s]=o}return n}function Hi(...t){return Ke(aU,t)}function aU(t,e){let n={};for(let[r,i]of Object.entries(t)){let s=e(i,r,t);n[r]=s}return n}function Vi(t){return typeof t=="string"}function ae(t){return!!t}function cU(t){return t!==null}function qr(t){return t!=null}function uU(t){return e=>!t(e)}function at(t){return t==null}function uh(t){return typeof t=="number"&&!Number.isNaN(t)}function Ik(t){return Array.isArray(t)}function Ft(t){return t!==void 0}function Ki(t){return t===void 0?!0:typeof t=="string"||Array.isArray(t)?t.length===0:Object.keys(t).length===0}function cv(t){return t instanceof Error}function uv(...t){return Ke(lU,t)}function lU(t,e){let n={};for(let[r,i]of t.entries()){let s=e(i,r,t);n[s]=i}return n}function dU(...t){return iv(fU,t)}function fU(t){if(t.length===0)return Sk;let e=new Map;for(let n of t)e.set(n,(e.get(n)??0)+1);return n=>{let r=e.get(n);return r===void 0||r===0?na:(r===1?e.delete(n):e.set(n,r-1),{hasNext:!0,next:n,done:e.size===0})}}function wi(...t){return Ke(hU,t,pU)}var hU=(t,e)=>t.flatMap(e),pU=t=>(e,n,r)=>{let i=t(e,n,r);return Array.isArray(i)?{done:!1,hasNext:!0,hasMany:!0,next:i}:{done:!1,hasNext:!0,next:i}};function mU(...t){return Ke(gU,t,yU)}function gU(t,e){return t.forEach(e),t}var yU=t=>(e,n,r)=>(t(e,n,r),{done:!1,hasNext:!0,next:e});function lh(...t){return Ke(vU,t)}var vU=(t,e)=>{let n={};for(let[r,i]of t.entries()){let s=e(i,r,t);if(s!==void 0){let{[s]:o}=n;o===void 0&&(o=[],n[s]=o),o.push(i)}}return n};function nt(...t){return Ke(wU,t,bU)}var wU=(t,e)=>t.filter(e),bU=t=>(e,n,r)=>t(e,n,r)?{done:!1,hasNext:!0,next:e}:na,Pk=t=>Object.assign(t,{single:!0});function Nk(...t){return Ke(EU,t,Pk(DU))}var EU=(t,e)=>t.find(e),DU=t=>(e,n,r)=>t(e,n,r)?{done:!0,hasNext:!0,next:e}:na;function TU(...t){return Ke(RU,t)}var RU=(t,e)=>{for(let n=t.length-1;n>=0;n--){let r=t[n];if(e(r,n,t))return r}};function sa(...t){return Ke(SU,t,Pk(kU))}var SU=([t])=>t,kU=()=>$U,$U=t=>({hasNext:!0,next:t,done:!0});function oa(...t){return Ke(Object.entries,t)}function CU(...t){return Ke(_U,t)}var _U=(t,e)=>[...t,...e];function AU(t,{waitMs:e,timing:n="trailing",maxWaitMs:r}){if(r!==void 0&&e!==void 0&&r<e)throw new Error(`debounce: maxWaitMs (${r.toString()}) cannot be less than waitMs (${e.toString()})`);let i,s,o,a,c=()=>{if(s!==void 0){let f=s;s=void 0,clearTimeout(f)}if(o===void 0)throw new Error("REMEDA[debounce]: latestCallArgs was unexpectedly undefined.");let d=o;o=void 0,a=t(...d)},u=()=>{if(i===void 0)return;let d=i;i=void 0,clearTimeout(d),o!==void 0&&c()},l=d=>{o=d,r!==void 0&&s===void 0&&(s=setTimeout(c,r))};return{call:(...d)=>{if(i===void 0)n==="trailing"?l(d):a=t(...d);else{n!=="leading"&&l(d);let f=i;i=void 0,clearTimeout(f)}return i=setTimeout(u,e??r??0),a},cancel:()=>{if(i!==void 0){let d=i;i=void 0,clearTimeout(d)}if(s!==void 0){let d=s;s=void 0,clearTimeout(d)}o=void 0},flush:()=>(u(),a),get isPending(){return i!==void 0},get cachedValue(){return a}}}function Ok(...t){return iv(xU,t)}function xU(t){if(t.length===0)return O9;let e=new Map;for(let n of t)e.set(n,(e.get(n)??0)+1);return n=>{let r=e.get(n);return r===void 0||r===0?{done:!1,hasNext:!0,next:n}:(e.set(n,r-1),na)}}function Fk(...t){return Ke(IU,t)}var IU=(t,e)=>e.every(n=>n(t));function lv(...t){return Ke(PU,t)}var PU=(t,e)=>e.some(n=>n(t));function NU(...t){return Ke(OU,t)}function OU(t,e){if(e<1)throw new RangeError(`chunk: A chunk size of '${e.toString()}' would result in an infinite array`);if(t.length===0)return[];if(e>=t.length)return[[...t]];let n=Math.ceil(t.length/e),r=new Array(n);if(e===1)for(let[i,s]of t.entries())r[i]=[s];else for(let i=0;i<n;i+=1){let s=i*e;r[i]=t.slice(s,s+e)}return r}function Lk(...t){return Ke(FU,t)}var FU=(t,{min:e,max:n})=>e!==void 0&&t<e?e:n!==void 0&&t>n?n:t,LU={reset:[0,0],bold:[1,22,"\x1B[22m\x1B[1m"],dim:[2,22,"\x1B[22m\x1B[2m"],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]},MU=Object.entries(LU);function dv(t){return String(t)}dv.open="",dv.close="";function zU(t=!1){let e=typeof process<"u"?process:void 0,n=e?.env||{},r=e?.argv||[];return!("NO_COLOR"in n||r.includes("--no-color"))&&("FORCE_COLOR"in n||r.includes("--color")||e?.platform==="win32"||t&&n.TERM!=="dumb"||"CI"in n)||typeof window<"u"&&!!window.chrome}function BU(t=!1){let e=zU(t),n=(o,a,c,u)=>{let l="",d=0;do l+=o.substring(d,u)+c,d=u+a.length,u=o.indexOf(a,d);while(~u);return l+o.substring(d)},r=(o,a,c=o)=>{let u=l=>{let d=String(l),f=d.indexOf(a,o.length);return~f?o+n(d,a,c,f)+a:o+d+a};return u.open=o,u.close=a,u},i={isColorSupported:e},s=o=>`\x1B[${o}m`;for(let[o,a]of MU)i[o]=e?r(s(a[0]),s(a[1]),a[2]):dv;return i}var dt=BU(D2(1)),Gs={};const qU=ui(T2);var Tt={},Mk;function fv(){if(Mk)return Tt;Mk=1,Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.thenable=Tt.typedArray=Tt.stringArray=Tt.array=Tt.func=Tt.error=Tt.number=Tt.string=Tt.boolean=void 0;function t(u){return u===!0||u===!1}Tt.boolean=t;function e(u){return typeof u=="string"||u instanceof String}Tt.string=e;function n(u){return typeof u=="number"||u instanceof Number}Tt.number=n;function r(u){return u instanceof Error}Tt.error=r;function i(u){return typeof u=="function"}Tt.func=i;function s(u){return Array.isArray(u)}Tt.array=s;function o(u){return s(u)&&u.every(l=>e(l))}Tt.stringArray=o;function a(u,l){return Array.isArray(u)&&u.every(l)}Tt.typedArray=a;function c(u){return u&&i(u.then)}return Tt.thenable=c,Tt}var qe={},Ws={},Hs={},dh={};const jU=ui(U2);var hv={},pe={},zk;function Bk(){if(zk)return pe;zk=1,Object.defineProperty(pe,"__esModule",{value:!0}),pe.Message=pe.NotificationType9=pe.NotificationType8=pe.NotificationType7=pe.NotificationType6=pe.NotificationType5=pe.NotificationType4=pe.NotificationType3=pe.NotificationType2=pe.NotificationType1=pe.NotificationType0=pe.NotificationType=pe.RequestType9=pe.RequestType8=pe.RequestType7=pe.RequestType6=pe.RequestType5=pe.RequestType4=pe.RequestType3=pe.RequestType2=pe.RequestType1=pe.RequestType=pe.RequestType0=pe.AbstractMessageSignature=pe.ParameterStructures=pe.ResponseError=pe.ErrorCodes=void 0;const t=Zc();var e;(function(D){D.ParseError=-32700,D.InvalidRequest=-32600,D.MethodNotFound=-32601,D.InvalidParams=-32602,D.InternalError=-32603,D.jsonrpcReservedErrorRangeStart=-32099,D.serverErrorStart=-32099,D.MessageWriteError=-32099,D.MessageReadError=-32098,D.PendingResponseRejected=-32097,D.ConnectionInactive=-32096,D.ServerNotInitialized=-32002,D.UnknownErrorCode=-32001,D.jsonrpcReservedErrorRangeEnd=-32e3,D.serverErrorEnd=-32e3})(e||(pe.ErrorCodes=e={}));class n extends Error{constructor(R,L,W){super(L),this.code=t.number(R)?R:e.UnknownErrorCode,this.data=W,Object.setPrototypeOf(this,n.prototype)}toJson(){const R={code:this.code,message:this.message};return this.data!==void 0&&(R.data=this.data),R}}pe.ResponseError=n;class r{constructor(R){this.kind=R}static is(R){return R===r.auto||R===r.byName||R===r.byPosition}toString(){return this.kind}}pe.ParameterStructures=r,r.auto=new r("auto"),r.byPosition=new r("byPosition"),r.byName=new r("byName");class i{constructor(R,L){this.method=R,this.numberOfParams=L}get parameterStructures(){return r.auto}}pe.AbstractMessageSignature=i;class s extends i{constructor(R){super(R,0)}}pe.RequestType0=s;class o extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.RequestType=o;class a extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.RequestType1=a;class c extends i{constructor(R){super(R,2)}}pe.RequestType2=c;class u extends i{constructor(R){super(R,3)}}pe.RequestType3=u;class l extends i{constructor(R){super(R,4)}}pe.RequestType4=l;class d extends i{constructor(R){super(R,5)}}pe.RequestType5=d;class f extends i{constructor(R){super(R,6)}}pe.RequestType6=f;class h extends i{constructor(R){super(R,7)}}pe.RequestType7=h;class p extends i{constructor(R){super(R,8)}}pe.RequestType8=p;class m extends i{constructor(R){super(R,9)}}pe.RequestType9=m;class y extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.NotificationType=y;class g extends i{constructor(R){super(R,0)}}pe.NotificationType0=g;class w extends i{constructor(R,L=r.auto){super(R,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}pe.NotificationType1=w;class E extends i{constructor(R){super(R,2)}}pe.NotificationType2=E;class k extends i{constructor(R){super(R,3)}}pe.NotificationType3=k;class A extends i{constructor(R){super(R,4)}}pe.NotificationType4=A;class I extends i{constructor(R){super(R,5)}}pe.NotificationType5=I;class x extends i{constructor(R){super(R,6)}}pe.NotificationType6=x;class _ extends i{constructor(R){super(R,7)}}pe.NotificationType7=_;class P extends i{constructor(R){super(R,8)}}pe.NotificationType8=P;class O extends i{constructor(R){super(R,9)}}pe.NotificationType9=O;var C;return function(D){function R(V){const Z=V;return Z&&t.string(Z.method)&&(t.string(Z.id)||t.number(Z.id))}D.isRequest=R;function L(V){const Z=V;return Z&&t.string(Z.method)&&V.id===void 0}D.isNotification=L;function W(V){const Z=V;return Z&&(Z.result!==void 0||!!Z.error)&&(t.string(Z.id)||t.number(Z.id)||Z.id===null)}D.isResponse=W}(C||(pe.Message=C={})),pe}var bi={},qk;function jk(){if(qk)return bi;qk=1;var t;Object.defineProperty(bi,"__esModule",{value:!0}),bi.LRUCache=bi.LinkedMap=bi.Touch=void 0;var e;(function(i){i.None=0,i.First=1,i.AsOld=i.First,i.Last=2,i.AsNew=i.Last})(e||(bi.Touch=e={}));class n{constructor(){this[t]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(s){return this._map.has(s)}get(s,o=e.None){const a=this._map.get(s);if(a)return o!==e.None&&this.touch(a,o),a.value}set(s,o,a=e.None){let c=this._map.get(s);if(c)c.value=o,a!==e.None&&this.touch(c,a);else{switch(c={key:s,value:o,next:void 0,previous:void 0},a){case e.None:this.addItemLast(c);break;case e.First:this.addItemFirst(c);break;case e.Last:this.addItemLast(c);break;default:this.addItemLast(c);break}this._map.set(s,c),this._size++}return this}delete(s){return!!this.remove(s)}remove(s){const o=this._map.get(s);if(o)return this._map.delete(s),this.removeItem(o),this._size--,o.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const s=this._head;return this._map.delete(s.key),this.removeItem(s),this._size--,s.value}forEach(s,o){const a=this._state;let c=this._head;for(;c;){if(o?s.bind(o)(c.value,c.key,this):s(c.value,c.key,this),this._state!==a)throw new Error("LinkedMap got modified during iteration.");c=c.next}}keys(){const s=this._state;let o=this._head;const a={[Symbol.iterator]:()=>a,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const c={value:o.key,done:!1};return o=o.next,c}else return{value:void 0,done:!0}}};return a}values(){const s=this._state;let o=this._head;const a={[Symbol.iterator]:()=>a,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const c={value:o.value,done:!1};return o=o.next,c}else return{value:void 0,done:!0}}};return a}entries(){const s=this._state;let o=this._head;const a={[Symbol.iterator]:()=>a,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const c={value:[o.key,o.value],done:!1};return o=o.next,c}else return{value:void 0,done:!0}}};return a}[(t=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(s){if(s>=this.size)return;if(s===0){this.clear();return}let o=this._head,a=this.size;for(;o&&a>s;)this._map.delete(o.key),o=o.next,a--;this._head=o,this._size=a,o&&(o.previous=void 0),this._state++}addItemFirst(s){if(!this._head&&!this._tail)this._tail=s;else if(this._head)s.next=this._head,this._head.previous=s;else throw new Error("Invalid list");this._head=s,this._state++}addItemLast(s){if(!this._head&&!this._tail)this._head=s;else if(this._tail)s.previous=this._tail,this._tail.next=s;else throw new Error("Invalid list");this._tail=s,this._state++}removeItem(s){if(s===this._head&&s===this._tail)this._head=void 0,this._tail=void 0;else if(s===this._head){if(!s.next)throw new Error("Invalid list");s.next.previous=void 0,this._head=s.next}else if(s===this._tail){if(!s.previous)throw new Error("Invalid list");s.previous.next=void 0,this._tail=s.previous}else{const o=s.next,a=s.previous;if(!o||!a)throw new Error("Invalid list");o.previous=a,a.next=o}s.next=void 0,s.previous=void 0,this._state++}touch(s,o){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(o!==e.First&&o!==e.Last)){if(o===e.First){if(s===this._head)return;const a=s.next,c=s.previous;s===this._tail?(c.next=void 0,this._tail=c):(a.previous=c,c.next=a),s.previous=void 0,s.next=this._head,this._head.previous=s,this._head=s,this._state++}else if(o===e.Last){if(s===this._tail)return;const a=s.next,c=s.previous;s===this._head?(a.previous=void 0,this._head=a):(a.previous=c,c.next=a),s.next=void 0,s.previous=this._tail,this._tail.next=s,this._tail=s,this._state++}}}toJSON(){const s=[];return this.forEach((o,a)=>{s.push([a,o])}),s}fromJSON(s){this.clear();for(const[o,a]of s)this.set(o,a)}}bi.LinkedMap=n;class r extends n{constructor(s,o=1){super(),this._limit=s,this._ratio=Math.min(Math.max(0,o),1)}get limit(){return this._limit}set limit(s){this._limit=s,this.checkTrim()}get ratio(){return this._ratio}set ratio(s){this._ratio=Math.min(Math.max(0,s),1),this.checkTrim()}get(s,o=e.AsNew){return super.get(s,o)}peek(s){return super.get(s,e.None)}set(s,o){return super.set(s,o,e.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}return bi.LRUCache=r,bi}var nu={},Uk;function UU(){if(Uk)return nu;Uk=1,Object.defineProperty(nu,"__esModule",{value:!0}),nu.Disposable=void 0;var t;return function(e){function n(r){return{dispose:r}}e.create=n}(t||(nu.Disposable=t={})),nu}var Vs={},Gk;function GU(){if(Gk)return Vs;Gk=1,Object.defineProperty(Vs,"__esModule",{value:!0}),Vs.SharedArrayReceiverStrategy=Vs.SharedArraySenderStrategy=void 0;const t=Qf();var e;(function(o){o.Continue=0,o.Cancelled=1})(e||(e={}));class n{constructor(){this.buffers=new Map}enableCancellation(a){if(a.id===null)return;const c=new SharedArrayBuffer(4),u=new Int32Array(c,0,1);u[0]=e.Continue,this.buffers.set(a.id,c),a.$cancellationData=c}async sendCancellation(a,c){const u=this.buffers.get(c);if(u===void 0)return;const l=new Int32Array(u,0,1);Atomics.store(l,0,e.Cancelled)}cleanup(a){this.buffers.delete(a)}dispose(){this.buffers.clear()}}Vs.SharedArraySenderStrategy=n;class r{constructor(a){this.data=new Int32Array(a,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===e.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class i{constructor(a){this.token=new r(a)}cancel(){}dispose(){}}class s{constructor(){this.kind="request"}createCancellationTokenSource(a){const c=a.$cancellationData;return c===void 0?new t.CancellationTokenSource:new i(c)}}return Vs.SharedArrayReceiverStrategy=s,Vs}var Ei={},ru={},Wk;function Hk(){if(Wk)return ru;Wk=1,Object.defineProperty(ru,"__esModule",{value:!0}),ru.Semaphore=void 0;const t=qs();class e{constructor(r=1){if(r<=0)throw new Error("Capacity must be greater than 0");this._capacity=r,this._active=0,this._waiting=[]}lock(r){return new Promise((i,s)=>{this._waiting.push({thunk:r,resolve:i,reject:s}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,t.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;const r=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{const i=r.thunk();i instanceof Promise?i.then(s=>{this._active--,r.resolve(s),this.runNext()},s=>{this._active--,r.reject(s),this.runNext()}):(this._active--,r.resolve(i),this.runNext())}catch(i){this._active--,r.reject(i),this.runNext()}}}return ru.Semaphore=e,ru}var Vk;function WU(){if(Vk)return Ei;Vk=1,Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.ReadableStreamMessageReader=Ei.AbstractMessageReader=Ei.MessageReader=void 0;const t=qs(),e=Zc(),n=ta(),r=Hk();var i;(function(c){function u(l){let d=l;return d&&e.func(d.listen)&&e.func(d.dispose)&&e.func(d.onError)&&e.func(d.onClose)&&e.func(d.onPartialMessage)}c.is=u})(i||(Ei.MessageReader=i={}));class s{constructor(){this.errorEmitter=new n.Emitter,this.closeEmitter=new n.Emitter,this.partialMessageEmitter=new n.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(u){this.errorEmitter.fire(this.asError(u))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(u){this.partialMessageEmitter.fire(u)}asError(u){return u instanceof Error?u:new Error(`Reader received error. Reason: ${e.string(u.message)?u.message:"unknown"}`)}}Ei.AbstractMessageReader=s;var o;(function(c){function u(l){let d,f;const h=new Map;let p;const m=new Map;if(l===void 0||typeof l=="string")d=l??"utf-8";else{if(d=l.charset??"utf-8",l.contentDecoder!==void 0&&(f=l.contentDecoder,h.set(f.name,f)),l.contentDecoders!==void 0)for(const y of l.contentDecoders)h.set(y.name,y);if(l.contentTypeDecoder!==void 0&&(p=l.contentTypeDecoder,m.set(p.name,p)),l.contentTypeDecoders!==void 0)for(const y of l.contentTypeDecoders)m.set(y.name,y)}return p===void 0&&(p=(0,t.default)().applicationJson.decoder,m.set(p.name,p)),{charset:d,contentDecoder:f,contentDecoders:h,contentTypeDecoder:p,contentTypeDecoders:m}}c.fromOptions=u})(o||(o={}));class a extends s{constructor(u,l){super(),this.readable=u,this.options=o.fromOptions(l),this.buffer=(0,t.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new r.Semaphore(1)}set partialMessageTimeout(u){this._partialMessageTimeout=u}get partialMessageTimeout(){return this._partialMessageTimeout}listen(u){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=u;const l=this.readable.onData(d=>{this.onData(d)});return this.readable.onError(d=>this.fireError(d)),this.readable.onClose(()=>this.fireClose()),l}onData(u){try{for(this.buffer.append(u);;){if(this.nextMessageLength===-1){const d=this.buffer.tryReadHeaders(!0);if(!d)return;const f=d.get("content-length");if(!f){this.fireError(new Error(`Header must provide a Content-Length property.
126
+ ${JSON.stringify(Object.fromEntries(d))}`));return}const h=parseInt(f);if(isNaN(h)){this.fireError(new Error(`Content-Length value must be a number. Got ${f}`));return}this.nextMessageLength=h}const l=this.buffer.tryReadBody(this.nextMessageLength);if(l===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{const d=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(l):l,f=await this.options.contentTypeDecoder.decode(d,this.options);this.callback(f)}).catch(d=>{this.fireError(d)})}}catch(l){this.fireError(l)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,t.default)().timer.setTimeout((u,l)=>{this.partialMessageTimer=void 0,u===this.messageToken&&(this.firePartialMessage({messageToken:u,waitingTime:l}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}return Ei.ReadableStreamMessageReader=a,Ei}var Di={},Kk;function HU(){if(Kk)return Di;Kk=1,Object.defineProperty(Di,"__esModule",{value:!0}),Di.WriteableStreamMessageWriter=Di.AbstractMessageWriter=Di.MessageWriter=void 0;const t=qs(),e=Zc(),n=Hk(),r=ta(),i="Content-Length: ",s=`\r
127
+ `;var o;(function(l){function d(f){let h=f;return h&&e.func(h.dispose)&&e.func(h.onClose)&&e.func(h.onError)&&e.func(h.write)}l.is=d})(o||(Di.MessageWriter=o={}));class a{constructor(){this.errorEmitter=new r.Emitter,this.closeEmitter=new r.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(d,f,h){this.errorEmitter.fire([this.asError(d),f,h])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(d){return d instanceof Error?d:new Error(`Writer received error. Reason: ${e.string(d.message)?d.message:"unknown"}`)}}Di.AbstractMessageWriter=a;var c;(function(l){function d(f){return f===void 0||typeof f=="string"?{charset:f??"utf-8",contentTypeEncoder:(0,t.default)().applicationJson.encoder}:{charset:f.charset??"utf-8",contentEncoder:f.contentEncoder,contentTypeEncoder:f.contentTypeEncoder??(0,t.default)().applicationJson.encoder}}l.fromOptions=d})(c||(c={}));class u extends a{constructor(d,f){super(),this.writable=d,this.options=c.fromOptions(f),this.errorCount=0,this.writeSemaphore=new n.Semaphore(1),this.writable.onError(h=>this.fireError(h)),this.writable.onClose(()=>this.fireClose())}async write(d){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(d,this.options).then(h=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(h):h).then(h=>{const p=[];return p.push(i,h.byteLength.toString(),s),p.push(s),this.doWrite(d,p,h)},h=>{throw this.fireError(h),h}))}async doWrite(d,f,h){try{return await this.writable.write(f.join(""),"ascii"),this.writable.write(h)}catch(p){return this.handleError(p,d),Promise.reject(p)}}handleError(d,f){this.errorCount++,this.fireError(d,f,this.errorCount)}end(){this.writable.end()}}return Di.WriteableStreamMessageWriter=u,Di}var iu={},Yk;function VU(){if(Yk)return iu;Yk=1,Object.defineProperty(iu,"__esModule",{value:!0}),iu.AbstractMessageBuffer=void 0;const t=13,e=10,n=`\r
128
+ `;class r{constructor(s="utf-8"){this._encoding=s,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(s){const o=typeof s=="string"?this.fromString(s,this._encoding):s;this._chunks.push(o),this._totalLength+=o.byteLength}tryReadHeaders(s=!1){if(this._chunks.length===0)return;let o=0,a=0,c=0,u=0;e:for(;a<this._chunks.length;){const h=this._chunks[a];for(c=0;c<h.length;){switch(h[c]){case t:switch(o){case 0:o=1;break;case 2:o=3;break;default:o=0}break;case e:switch(o){case 1:o=2;break;case 3:o=4,c++;break e;default:o=0}break;default:o=0}c++}u+=h.byteLength,a++}if(o!==4)return;const l=this._read(u+c),d=new Map,f=this.toString(l,"ascii").split(n);if(f.length<2)return d;for(let h=0;h<f.length-2;h++){const p=f[h],m=p.indexOf(":");if(m===-1)throw new Error(`Message header must separate key and value using ':'
129
+ ${p}`);const y=p.substr(0,m),g=p.substr(m+1).trim();d.set(s?y.toLowerCase():y,g)}return d}tryReadBody(s){if(!(this._totalLength<s))return this._read(s)}get numberOfBytes(){return this._totalLength}_read(s){if(s===0)return this.emptyBuffer();if(s>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===s){const u=this._chunks[0];return this._chunks.shift(),this._totalLength-=s,this.asNative(u)}if(this._chunks[0].byteLength>s){const u=this._chunks[0],l=this.asNative(u,s);return this._chunks[0]=u.slice(s),this._totalLength-=s,l}const o=this.allocNative(s);let a=0,c=0;for(;s>0;){const u=this._chunks[c];if(u.byteLength>s){const l=u.slice(0,s);o.set(l,a),a+=s,this._chunks[c]=u.slice(s),this._totalLength-=s,s-=s}else o.set(u,a),a+=u.byteLength,this._chunks.shift(),this._totalLength-=u.byteLength,s-=u.byteLength}return o}}return iu.AbstractMessageBuffer=r,iu}var pv={},Xk;function KU(){return Xk||(Xk=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.ConnectionOptions=t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.RequestCancellationReceiverStrategy=t.IdCancellationReceiverStrategy=t.ConnectionStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=t.NullLogger=t.ProgressType=t.ProgressToken=void 0;const e=qs(),n=Zc(),r=Bk(),i=jk(),s=ta(),o=Qf();var a;(function(R){R.type=new r.NotificationType("$/cancelRequest")})(a||(a={}));var c;(function(R){function L(W){return typeof W=="string"||typeof W=="number"}R.is=L})(c||(t.ProgressToken=c={}));var u;(function(R){R.type=new r.NotificationType("$/progress")})(u||(u={}));class l{constructor(){}}t.ProgressType=l;var d;(function(R){function L(W){return n.func(W)}R.is=L})(d||(d={})),t.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var f;(function(R){R[R.Off=0]="Off",R[R.Messages=1]="Messages",R[R.Compact=2]="Compact",R[R.Verbose=3]="Verbose"})(f||(t.Trace=f={}));var h;(function(R){R.Off="off",R.Messages="messages",R.Compact="compact",R.Verbose="verbose"})(h||(t.TraceValues=h={})),function(R){function L(V){if(!n.string(V))return R.Off;switch(V=V.toLowerCase(),V){case"off":return R.Off;case"messages":return R.Messages;case"compact":return R.Compact;case"verbose":return R.Verbose;default:return R.Off}}R.fromString=L;function W(V){switch(V){case R.Off:return"off";case R.Messages:return"messages";case R.Compact:return"compact";case R.Verbose:return"verbose";default:return"off"}}R.toString=W}(f||(t.Trace=f={}));var p;(function(R){R.Text="text",R.JSON="json"})(p||(t.TraceFormat=p={})),function(R){function L(W){return n.string(W)?(W=W.toLowerCase(),W==="json"?R.JSON:R.Text):R.Text}R.fromString=L}(p||(t.TraceFormat=p={}));var m;(function(R){R.type=new r.NotificationType("$/setTrace")})(m||(t.SetTraceNotification=m={}));var y;(function(R){R.type=new r.NotificationType("$/logTrace")})(y||(t.LogTraceNotification=y={}));var g;(function(R){R[R.Closed=1]="Closed",R[R.Disposed=2]="Disposed",R[R.AlreadyListening=3]="AlreadyListening"})(g||(t.ConnectionErrors=g={}));class w extends Error{constructor(L,W){super(W),this.code=L,Object.setPrototypeOf(this,w.prototype)}}t.ConnectionError=w;var E;(function(R){function L(W){const V=W;return V&&n.func(V.cancelUndispatched)}R.is=L})(E||(t.ConnectionStrategy=E={}));var k;(function(R){function L(W){const V=W;return V&&(V.kind===void 0||V.kind==="id")&&n.func(V.createCancellationTokenSource)&&(V.dispose===void 0||n.func(V.dispose))}R.is=L})(k||(t.IdCancellationReceiverStrategy=k={}));var A;(function(R){function L(W){const V=W;return V&&V.kind==="request"&&n.func(V.createCancellationTokenSource)&&(V.dispose===void 0||n.func(V.dispose))}R.is=L})(A||(t.RequestCancellationReceiverStrategy=A={}));var I;(function(R){R.Message=Object.freeze({createCancellationTokenSource(W){return new o.CancellationTokenSource}});function L(W){return k.is(W)||A.is(W)}R.is=L})(I||(t.CancellationReceiverStrategy=I={}));var x;(function(R){R.Message=Object.freeze({sendCancellation(W,V){return W.sendNotification(a.type,{id:V})},cleanup(W){}});function L(W){const V=W;return V&&n.func(V.sendCancellation)&&n.func(V.cleanup)}R.is=L})(x||(t.CancellationSenderStrategy=x={}));var _;(function(R){R.Message=Object.freeze({receiver:I.Message,sender:x.Message});function L(W){const V=W;return V&&I.is(V.receiver)&&x.is(V.sender)}R.is=L})(_||(t.CancellationStrategy=_={}));var P;(function(R){function L(W){const V=W;return V&&n.func(V.handleMessage)}R.is=L})(P||(t.MessageStrategy=P={}));var O;(function(R){function L(W){const V=W;return V&&(_.is(V.cancellationStrategy)||E.is(V.connectionStrategy)||P.is(V.messageStrategy))}R.is=L})(O||(t.ConnectionOptions=O={}));var C;(function(R){R[R.New=1]="New",R[R.Listening=2]="Listening",R[R.Closed=3]="Closed",R[R.Disposed=4]="Disposed"})(C||(C={}));function D(R,L,W,V){const Z=W!==void 0?W:t.NullLogger;let Fe=0,se=0,K=0;const Te="2.0";let ut;const H=new Map;let Y;const ee=new Map,ne=new Map;let fe,Ee=new i.LinkedMap,ge=new Map,ce=new Set,M=new Map,U=f.Off,oe=p.Text,G,Le=C.New;const yt=new s.Emitter,mn=new s.Emitter,tr=new s.Emitter,nr=new s.Emitter,rr=new s.Emitter,qt=V&&V.cancellationStrategy?V.cancellationStrategy:_.Message;function _n(S){if(S===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+S.toString()}function Yr(S){return S===null?"res-unknown-"+(++K).toString():"res-"+S.toString()}function zn(){return"not-"+(++se).toString()}function gn(S,j){r.Message.isRequest(j)?S.set(_n(j.id),j):r.Message.isResponse(j)?S.set(Yr(j.id),j):S.set(zn(),j)}function Bn(S){}function tn(){return Le===C.Listening}function X(){return Le===C.Closed}function J(){return Le===C.Disposed}function le(){(Le===C.New||Le===C.Listening)&&(Le=C.Closed,mn.fire(void 0))}function jt(S){yt.fire([S,void 0,void 0])}function Lt(S){yt.fire(S)}R.onClose(le),R.onError(jt),L.onClose(le),L.onError(Lt);function Rr(){fe||Ee.size===0||(fe=(0,e.default)().timer.setImmediate(()=>{fe=void 0,fs()}))}function Ai(S){r.Message.isRequest(S)?ps(S):r.Message.isNotification(S)?xi(S):r.Message.isResponse(S)?ms(S):Ii(S)}function fs(){if(Ee.size===0)return;const S=Ee.shift();try{const j=V?.messageStrategy;P.is(j)?j.handleMessage(S,Ai):Ai(S)}finally{Rr()}}const hs=S=>{try{if(r.Message.isNotification(S)&&S.method===a.type.method){const j=S.params.id,te=_n(j),ie=Ee.get(te);if(r.Message.isRequest(ie)){const _e=V?.connectionStrategy,je=_e&&_e.cancelUndispatched?_e.cancelUndispatched(ie,Bn):void 0;if(je&&(je.error!==void 0||je.result!==void 0)){Ee.delete(te),M.delete(j),je.id=ie.id,Sr(je,S.method,Date.now()),L.write(je).catch(()=>Z.error("Sending response for canceled message failed."));return}}const xe=M.get(j);if(xe!==void 0){xe.cancel(),Xr(S);return}else ce.add(j)}gn(Ee,S)}finally{Rr()}};function ps(S){if(J())return;function j($e,Ze,Ue){const It={jsonrpc:Te,id:S.id};$e instanceof r.ResponseError?It.error=$e.toJson():It.result=$e===void 0?null:$e,Sr(It,Ze,Ue),L.write(It).catch(()=>Z.error("Sending response failed."))}function te($e,Ze,Ue){const It={jsonrpc:Te,id:S.id,error:$e.toJson()};Sr(It,Ze,Ue),L.write(It).catch(()=>Z.error("Sending response failed."))}function ie($e,Ze,Ue){$e===void 0&&($e=null);const It={jsonrpc:Te,id:S.id,result:$e};Sr(It,Ze,Ue),L.write(It).catch(()=>Z.error("Sending response failed."))}vs(S);const xe=H.get(S.method);let _e,je;xe&&(_e=xe.type,je=xe.handler);const he=Date.now();if(je||ut){const $e=S.id??String(Date.now()),Ze=k.is(qt.receiver)?qt.receiver.createCancellationTokenSource($e):qt.receiver.createCancellationTokenSource(S);S.id!==null&&ce.has(S.id)&&Ze.cancel(),S.id!==null&&M.set($e,Ze);try{let Ue;if(je)if(S.params===void 0){if(_e!==void 0&&_e.numberOfParams!==0){te(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${S.method} defines ${_e.numberOfParams} params but received none.`),S.method,he);return}Ue=je(Ze.token)}else if(Array.isArray(S.params)){if(_e!==void 0&&_e.parameterStructures===r.ParameterStructures.byName){te(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by name but received parameters by position`),S.method,he);return}Ue=je(...S.params,Ze.token)}else{if(_e!==void 0&&_e.parameterStructures===r.ParameterStructures.byPosition){te(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${S.method} defines parameters by position but received parameters by name`),S.method,he);return}Ue=je(S.params,Ze.token)}else ut&&(Ue=ut(S.method,S.params,Ze.token));const It=Ue;Ue?It.then?It.then(nn=>{M.delete($e),j(nn,S.method,he)},nn=>{M.delete($e),nn instanceof r.ResponseError?te(nn,S.method,he):nn&&n.string(nn.message)?te(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${nn.message}`),S.method,he):te(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,he)}):(M.delete($e),j(Ue,S.method,he)):(M.delete($e),ie(Ue,S.method,he))}catch(Ue){M.delete($e),Ue instanceof r.ResponseError?j(Ue,S.method,he):Ue&&n.string(Ue.message)?te(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed with message: ${Ue.message}`),S.method,he):te(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${S.method} failed unexpectedly without providing any details.`),S.method,he)}}else te(new r.ResponseError(r.ErrorCodes.MethodNotFound,`Unhandled method ${S.method}`),S.method,he)}function ms(S){if(!J())if(S.id===null)S.error?Z.error(`Received response message without id: Error is:
130
+ ${JSON.stringify(S.error,void 0,4)}`):Z.error("Received response message without id. No further error information provided.");else{const j=S.id,te=ge.get(j);if(ws(S,te),te!==void 0){ge.delete(j);try{if(S.error){const ie=S.error;te.reject(new r.ResponseError(ie.code,ie.message,ie.data))}else if(S.result!==void 0)te.resolve(S.result);else throw new Error("Should never happen.")}catch(ie){ie.message?Z.error(`Response handler '${te.method}' failed with message: ${ie.message}`):Z.error(`Response handler '${te.method}' failed unexpectedly.`)}}}}function xi(S){if(J())return;let j,te;if(S.method===a.type.method){const ie=S.params.id;ce.delete(ie),Xr(S);return}else{const ie=ee.get(S.method);ie&&(te=ie.handler,j=ie.type)}if(te||Y)try{if(Xr(S),te)if(S.params===void 0)j!==void 0&&j.numberOfParams!==0&&j.parameterStructures!==r.ParameterStructures.byName&&Z.error(`Notification ${S.method} defines ${j.numberOfParams} params but received none.`),te();else if(Array.isArray(S.params)){const ie=S.params;S.method===u.type.method&&ie.length===2&&c.is(ie[0])?te({token:ie[0],value:ie[1]}):(j!==void 0&&(j.parameterStructures===r.ParameterStructures.byName&&Z.error(`Notification ${S.method} defines parameters by name but received parameters by position`),j.numberOfParams!==S.params.length&&Z.error(`Notification ${S.method} defines ${j.numberOfParams} params but received ${ie.length} arguments`)),te(...ie))}else j!==void 0&&j.parameterStructures===r.ParameterStructures.byPosition&&Z.error(`Notification ${S.method} defines parameters by position but received parameters by name`),te(S.params);else Y&&Y(S.method,S.params)}catch(ie){ie.message?Z.error(`Notification handler '${S.method}' failed with message: ${ie.message}`):Z.error(`Notification handler '${S.method}' failed unexpectedly.`)}else tr.fire(S)}function Ii(S){if(!S){Z.error("Received empty message.");return}Z.error(`Received message which is neither a response nor a notification message:
131
+ ${JSON.stringify(S,null,4)}`);const j=S;if(n.string(j.id)||n.number(j.id)){const te=j.id,ie=ge.get(te);ie&&ie.reject(new Error("The received response has neither a result nor an error property."))}}function yn(S){if(S!=null)switch(U){case f.Verbose:return JSON.stringify(S,null,4);case f.Compact:return JSON.stringify(S);default:return}}function gs(S){if(!(U===f.Off||!G))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&S.params&&(j=`Params: ${yn(S.params)}
132
+
133
+ `),G.log(`Sending request '${S.method} - (${S.id})'.`,j)}else qn("send-request",S)}function ys(S){if(!(U===f.Off||!G))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&(S.params?j=`Params: ${yn(S.params)}
134
+
135
+ `:j=`No parameters provided.
136
+
137
+ `),G.log(`Sending notification '${S.method}'.`,j)}else qn("send-notification",S)}function Sr(S,j,te){if(!(U===f.Off||!G))if(oe===p.Text){let ie;(U===f.Verbose||U===f.Compact)&&(S.error&&S.error.data?ie=`Error data: ${yn(S.error.data)}
138
+
139
+ `:S.result?ie=`Result: ${yn(S.result)}
140
+
141
+ `:S.error===void 0&&(ie=`No result returned.
142
+
143
+ `)),G.log(`Sending response '${j} - (${S.id})'. Processing request took ${Date.now()-te}ms`,ie)}else qn("send-response",S)}function vs(S){if(!(U===f.Off||!G))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&S.params&&(j=`Params: ${yn(S.params)}
144
+
145
+ `),G.log(`Received request '${S.method} - (${S.id})'.`,j)}else qn("receive-request",S)}function Xr(S){if(!(U===f.Off||!G||S.method===y.type.method))if(oe===p.Text){let j;(U===f.Verbose||U===f.Compact)&&(S.params?j=`Params: ${yn(S.params)}
146
+
147
+ `:j=`No parameters provided.
148
+
149
+ `),G.log(`Received notification '${S.method}'.`,j)}else qn("receive-notification",S)}function ws(S,j){if(!(U===f.Off||!G))if(oe===p.Text){let te;if((U===f.Verbose||U===f.Compact)&&(S.error&&S.error.data?te=`Error data: ${yn(S.error.data)}
150
+
151
+ `:S.result?te=`Result: ${yn(S.result)}
152
+
153
+ `:S.error===void 0&&(te=`No result returned.
154
+
155
+ `)),j){const ie=S.error?` Request failed: ${S.error.message} (${S.error.code}).`:"";G.log(`Received response '${j.method} - (${S.id})' in ${Date.now()-j.timerStart}ms.${ie}`,te)}else G.log(`Received response ${S.id} without active response promise.`,te)}else qn("receive-response",S)}function qn(S,j){if(!G||U===f.Off)return;const te={isLSPMessage:!0,type:S,message:j,timestamp:Date.now()};G.log(te)}function ir(){if(X())throw new w(g.Closed,"Connection is closed.");if(J())throw new w(g.Disposed,"Connection is disposed.")}function Eo(){if(tn())throw new w(g.AlreadyListening,"Connection is already listening")}function z(){if(!tn())throw new Error("Call listen() first.")}function T(S){return S===void 0?null:S}function N(S){if(S!==null)return S}function v(S){return S!=null&&!Array.isArray(S)&&typeof S=="object"}function $(S,j){switch(S){case r.ParameterStructures.auto:return v(j)?N(j):[T(j)];case r.ParameterStructures.byName:if(!v(j))throw new Error("Received parameters by name but param is not an object literal.");return N(j);case r.ParameterStructures.byPosition:return[T(j)];default:throw new Error(`Unknown parameter structure ${S.toString()}`)}}function b(S,j){let te;const ie=S.numberOfParams;switch(ie){case 0:te=void 0;break;case 1:te=$(S.parameterStructures,j[0]);break;default:te=[];for(let xe=0;xe<j.length&&xe<ie;xe++)te.push(T(j[xe]));if(j.length<ie)for(let xe=j.length;xe<ie;xe++)te.push(null);break}return te}const F={sendNotification:(S,...j)=>{ir();let te,ie;if(n.string(S)){te=S;const _e=j[0];let je=0,he=r.ParameterStructures.auto;r.ParameterStructures.is(_e)&&(je=1,he=_e);let $e=j.length;const Ze=$e-je;switch(Ze){case 0:ie=void 0;break;case 1:ie=$(he,j[je]);break;default:if(he===r.ParameterStructures.byName)throw new Error(`Received ${Ze} parameters for 'by Name' notification parameter structure.`);ie=j.slice(je,$e).map(Ue=>T(Ue));break}}else{const _e=j;te=S.method,ie=b(S,_e)}const xe={jsonrpc:Te,method:te,params:ie};return ys(xe),L.write(xe).catch(_e=>{throw Z.error("Sending notification failed."),_e})},onNotification:(S,j)=>{ir();let te;return n.func(S)?Y=S:j&&(n.string(S)?(te=S,ee.set(S,{type:void 0,handler:j})):(te=S.method,ee.set(S.method,{type:S,handler:j}))),{dispose:()=>{te!==void 0?ee.delete(te):Y=void 0}}},onProgress:(S,j,te)=>{if(ne.has(j))throw new Error(`Progress handler for token ${j} already registered`);return ne.set(j,te),{dispose:()=>{ne.delete(j)}}},sendProgress:(S,j,te)=>F.sendNotification(u.type,{token:j,value:te}),onUnhandledProgress:nr.event,sendRequest:(S,...j)=>{ir(),z();let te,ie,xe;if(n.string(S)){te=S;const $e=j[0],Ze=j[j.length-1];let Ue=0,It=r.ParameterStructures.auto;r.ParameterStructures.is($e)&&(Ue=1,It=$e);let nn=j.length;o.CancellationToken.is(Ze)&&(nn=nn-1,xe=Ze);const kr=nn-Ue;switch(kr){case 0:ie=void 0;break;case 1:ie=$(It,j[Ue]);break;default:if(It===r.ParameterStructures.byName)throw new Error(`Received ${kr} parameters for 'by Name' request parameter structure.`);ie=j.slice(Ue,nn).map(p2=>T(p2));break}}else{const $e=j;te=S.method,ie=b(S,$e);const Ze=S.numberOfParams;xe=o.CancellationToken.is($e[Ze])?$e[Ze]:void 0}const _e=Fe++;let je;xe&&(je=xe.onCancellationRequested(()=>{const $e=qt.sender.sendCancellation(F,_e);return $e===void 0?(Z.log(`Received no promise from cancellation strategy when cancelling id ${_e}`),Promise.resolve()):$e.catch(()=>{Z.log(`Sending cancellation messages for id ${_e} failed`)})}));const he={jsonrpc:Te,id:_e,method:te,params:ie};return gs(he),typeof qt.sender.enableCancellation=="function"&&qt.sender.enableCancellation(he),new Promise(async($e,Ze)=>{const Ue=kr=>{$e(kr),qt.sender.cleanup(_e),je?.dispose()},It=kr=>{Ze(kr),qt.sender.cleanup(_e),je?.dispose()},nn={method:te,timerStart:Date.now(),resolve:Ue,reject:It};try{await L.write(he),ge.set(_e,nn)}catch(kr){throw Z.error("Sending request failed."),nn.reject(new r.ResponseError(r.ErrorCodes.MessageWriteError,kr.message?kr.message:"Unknown reason")),kr}})},onRequest:(S,j)=>{ir();let te=null;return d.is(S)?(te=void 0,ut=S):n.string(S)?(te=null,j!==void 0&&(te=S,H.set(S,{handler:j,type:void 0}))):j!==void 0&&(te=S.method,H.set(S.method,{type:S,handler:j})),{dispose:()=>{te!==null&&(te!==void 0?H.delete(te):ut=void 0)}}},hasPendingResponse:()=>ge.size>0,trace:async(S,j,te)=>{let ie=!1,xe=p.Text;te!==void 0&&(n.boolean(te)?ie=te:(ie=te.sendNotification||!1,xe=te.traceFormat||p.Text)),U=S,oe=xe,U===f.Off?G=void 0:G=j,ie&&!X()&&!J()&&await F.sendNotification(m.type,{value:f.toString(S)})},onError:yt.event,onClose:mn.event,onUnhandledNotification:tr.event,onDispose:rr.event,end:()=>{L.end()},dispose:()=>{if(J())return;Le=C.Disposed,rr.fire(void 0);const S=new r.ResponseError(r.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(const j of ge.values())j.reject(S);ge=new Map,M=new Map,ce=new Set,Ee=new i.LinkedMap,n.func(L.dispose)&&L.dispose(),n.func(R.dispose)&&R.dispose()},listen:()=>{ir(),Eo(),Le=C.Listening,R.listen(hs)},inspect:()=>{(0,e.default)().console.log("inspect")}};return F.onNotification(y.type,S=>{if(U===f.Off||!G)return;const j=U===f.Verbose||U===f.Compact;G.log(S.message,j?S.verbose:void 0)}),F.onNotification(u.type,S=>{const j=ne.get(S.token);j?j(S.value):nr.fire(S)}),F}t.createMessageConnection=D}(pv)),pv}var Jk;function mv(){return Jk||(Jk=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressType=t.ProgressToken=t.createMessageConnection=t.NullLogger=t.ConnectionOptions=t.ConnectionStrategy=t.AbstractMessageBuffer=t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=t.CancellationToken=t.CancellationTokenSource=t.Emitter=t.Event=t.Disposable=t.LRUCache=t.Touch=t.LinkedMap=t.ParameterStructures=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.ErrorCodes=t.ResponseError=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType0=t.RequestType=t.Message=t.RAL=void 0,t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=void 0;const e=Bk();Object.defineProperty(t,"Message",{enumerable:!0,get:function(){return e.Message}}),Object.defineProperty(t,"RequestType",{enumerable:!0,get:function(){return e.RequestType}}),Object.defineProperty(t,"RequestType0",{enumerable:!0,get:function(){return e.RequestType0}}),Object.defineProperty(t,"RequestType1",{enumerable:!0,get:function(){return e.RequestType1}}),Object.defineProperty(t,"RequestType2",{enumerable:!0,get:function(){return e.RequestType2}}),Object.defineProperty(t,"RequestType3",{enumerable:!0,get:function(){return e.RequestType3}}),Object.defineProperty(t,"RequestType4",{enumerable:!0,get:function(){return e.RequestType4}}),Object.defineProperty(t,"RequestType5",{enumerable:!0,get:function(){return e.RequestType5}}),Object.defineProperty(t,"RequestType6",{enumerable:!0,get:function(){return e.RequestType6}}),Object.defineProperty(t,"RequestType7",{enumerable:!0,get:function(){return e.RequestType7}}),Object.defineProperty(t,"RequestType8",{enumerable:!0,get:function(){return e.RequestType8}}),Object.defineProperty(t,"RequestType9",{enumerable:!0,get:function(){return e.RequestType9}}),Object.defineProperty(t,"ResponseError",{enumerable:!0,get:function(){return e.ResponseError}}),Object.defineProperty(t,"ErrorCodes",{enumerable:!0,get:function(){return e.ErrorCodes}}),Object.defineProperty(t,"NotificationType",{enumerable:!0,get:function(){return e.NotificationType}}),Object.defineProperty(t,"NotificationType0",{enumerable:!0,get:function(){return e.NotificationType0}}),Object.defineProperty(t,"NotificationType1",{enumerable:!0,get:function(){return e.NotificationType1}}),Object.defineProperty(t,"NotificationType2",{enumerable:!0,get:function(){return e.NotificationType2}}),Object.defineProperty(t,"NotificationType3",{enumerable:!0,get:function(){return e.NotificationType3}}),Object.defineProperty(t,"NotificationType4",{enumerable:!0,get:function(){return e.NotificationType4}}),Object.defineProperty(t,"NotificationType5",{enumerable:!0,get:function(){return e.NotificationType5}}),Object.defineProperty(t,"NotificationType6",{enumerable:!0,get:function(){return e.NotificationType6}}),Object.defineProperty(t,"NotificationType7",{enumerable:!0,get:function(){return e.NotificationType7}}),Object.defineProperty(t,"NotificationType8",{enumerable:!0,get:function(){return e.NotificationType8}}),Object.defineProperty(t,"NotificationType9",{enumerable:!0,get:function(){return e.NotificationType9}}),Object.defineProperty(t,"ParameterStructures",{enumerable:!0,get:function(){return e.ParameterStructures}});const n=jk();Object.defineProperty(t,"LinkedMap",{enumerable:!0,get:function(){return n.LinkedMap}}),Object.defineProperty(t,"LRUCache",{enumerable:!0,get:function(){return n.LRUCache}}),Object.defineProperty(t,"Touch",{enumerable:!0,get:function(){return n.Touch}});const r=UU();Object.defineProperty(t,"Disposable",{enumerable:!0,get:function(){return r.Disposable}});const i=ta();Object.defineProperty(t,"Event",{enumerable:!0,get:function(){return i.Event}}),Object.defineProperty(t,"Emitter",{enumerable:!0,get:function(){return i.Emitter}});const s=Qf();Object.defineProperty(t,"CancellationTokenSource",{enumerable:!0,get:function(){return s.CancellationTokenSource}}),Object.defineProperty(t,"CancellationToken",{enumerable:!0,get:function(){return s.CancellationToken}});const o=GU();Object.defineProperty(t,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return o.SharedArraySenderStrategy}}),Object.defineProperty(t,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return o.SharedArrayReceiverStrategy}});const a=WU();Object.defineProperty(t,"MessageReader",{enumerable:!0,get:function(){return a.MessageReader}}),Object.defineProperty(t,"AbstractMessageReader",{enumerable:!0,get:function(){return a.AbstractMessageReader}}),Object.defineProperty(t,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return a.ReadableStreamMessageReader}});const c=HU();Object.defineProperty(t,"MessageWriter",{enumerable:!0,get:function(){return c.MessageWriter}}),Object.defineProperty(t,"AbstractMessageWriter",{enumerable:!0,get:function(){return c.AbstractMessageWriter}}),Object.defineProperty(t,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return c.WriteableStreamMessageWriter}});const u=VU();Object.defineProperty(t,"AbstractMessageBuffer",{enumerable:!0,get:function(){return u.AbstractMessageBuffer}});const l=KU();Object.defineProperty(t,"ConnectionStrategy",{enumerable:!0,get:function(){return l.ConnectionStrategy}}),Object.defineProperty(t,"ConnectionOptions",{enumerable:!0,get:function(){return l.ConnectionOptions}}),Object.defineProperty(t,"NullLogger",{enumerable:!0,get:function(){return l.NullLogger}}),Object.defineProperty(t,"createMessageConnection",{enumerable:!0,get:function(){return l.createMessageConnection}}),Object.defineProperty(t,"ProgressToken",{enumerable:!0,get:function(){return l.ProgressToken}}),Object.defineProperty(t,"ProgressType",{enumerable:!0,get:function(){return l.ProgressType}}),Object.defineProperty(t,"Trace",{enumerable:!0,get:function(){return l.Trace}}),Object.defineProperty(t,"TraceValues",{enumerable:!0,get:function(){return l.TraceValues}}),Object.defineProperty(t,"TraceFormat",{enumerable:!0,get:function(){return l.TraceFormat}}),Object.defineProperty(t,"SetTraceNotification",{enumerable:!0,get:function(){return l.SetTraceNotification}}),Object.defineProperty(t,"LogTraceNotification",{enumerable:!0,get:function(){return l.LogTraceNotification}}),Object.defineProperty(t,"ConnectionErrors",{enumerable:!0,get:function(){return l.ConnectionErrors}}),Object.defineProperty(t,"ConnectionError",{enumerable:!0,get:function(){return l.ConnectionError}}),Object.defineProperty(t,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return l.CancellationReceiverStrategy}}),Object.defineProperty(t,"CancellationSenderStrategy",{enumerable:!0,get:function(){return l.CancellationSenderStrategy}}),Object.defineProperty(t,"CancellationStrategy",{enumerable:!0,get:function(){return l.CancellationStrategy}}),Object.defineProperty(t,"MessageStrategy",{enumerable:!0,get:function(){return l.MessageStrategy}});const d=qs();t.RAL=d.default}(hv)),hv}var Zk;function YU(){if(Zk)return dh;Zk=1,Object.defineProperty(dh,"__esModule",{value:!0});const t=jU,e=mv();class n extends e.AbstractMessageBuffer{constructor(c="utf-8"){super(c)}emptyBuffer(){return n.emptyBuffer}fromString(c,u){return Buffer.from(c,u)}toString(c,u){return c instanceof Buffer?c.toString(u):new t.TextDecoder(u).decode(c)}asNative(c,u){return u===void 0?c instanceof Buffer?c:Buffer.from(c):c instanceof Buffer?c.slice(0,u):Buffer.from(c,0,u)}allocNative(c){return Buffer.allocUnsafe(c)}}n.emptyBuffer=Buffer.allocUnsafe(0);class r{constructor(c){this.stream=c}onClose(c){return this.stream.on("close",c),e.Disposable.create(()=>this.stream.off("close",c))}onError(c){return this.stream.on("error",c),e.Disposable.create(()=>this.stream.off("error",c))}onEnd(c){return this.stream.on("end",c),e.Disposable.create(()=>this.stream.off("end",c))}onData(c){return this.stream.on("data",c),e.Disposable.create(()=>this.stream.off("data",c))}}class i{constructor(c){this.stream=c}onClose(c){return this.stream.on("close",c),e.Disposable.create(()=>this.stream.off("close",c))}onError(c){return this.stream.on("error",c),e.Disposable.create(()=>this.stream.off("error",c))}onEnd(c){return this.stream.on("end",c),e.Disposable.create(()=>this.stream.off("end",c))}write(c,u){return new Promise((l,d)=>{const f=h=>{h==null?l():d(h)};typeof c=="string"?this.stream.write(c,u,f):this.stream.write(c,f)})}end(){this.stream.end()}}const s=Object.freeze({messageBuffer:Object.freeze({create:a=>new n(a)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(a,c)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(a,void 0,0),c.charset))}catch(u){return Promise.reject(u)}}}),decoder:Object.freeze({name:"application/json",decode:(a,c)=>{try{return a instanceof Buffer?Promise.resolve(JSON.parse(a.toString(c.charset))):Promise.resolve(JSON.parse(new t.TextDecoder(c.charset).decode(a)))}catch(u){return Promise.reject(u)}}})}),stream:Object.freeze({asReadableStream:a=>new r(a),asWritableStream:a=>new i(a)}),console,timer:Object.freeze({setTimeout(a,c,...u){const l=setTimeout(a,c,...u);return{dispose:()=>clearTimeout(l)}},setImmediate(a,...c){const u=setImmediate(a,...c);return{dispose:()=>clearImmediate(u)}},setInterval(a,c,...u){const l=setInterval(a,c,...u);return{dispose:()=>clearInterval(l)}}})});function o(){return s}return function(a){function c(){e.RAL.install(s)}a.install=c}(o||(o={})),dh.default=o,dh}const su=ui(O2),XU=ui(G2),Qk=ui(W2),JU=ui(H2);var e$;function Ks(){return e$||(e$=1,function(t){var e=Hs&&Hs.__createBinding||(Object.create?function(C,D,R,L){L===void 0&&(L=R);var W=Object.getOwnPropertyDescriptor(D,R);(!W||("get"in W?!D.__esModule:W.writable||W.configurable))&&(W={enumerable:!0,get:function(){return D[R]}}),Object.defineProperty(C,L,W)}:function(C,D,R,L){L===void 0&&(L=R),C[L]=D[R]}),n=Hs&&Hs.__exportStar||function(C,D){for(var R in C)R!=="default"&&!Object.prototype.hasOwnProperty.call(D,R)&&e(D,C,R)};Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.createServerSocketTransport=t.createClientSocketTransport=t.createServerPipeTransport=t.createClientPipeTransport=t.generateRandomPipeName=t.StreamMessageWriter=t.StreamMessageReader=t.SocketMessageWriter=t.SocketMessageReader=t.PortMessageWriter=t.PortMessageReader=t.IPCMessageWriter=t.IPCMessageReader=void 0;const r=YU();r.default.install();const i=su,s=XU,o=Qk,a=JU,c=mv();n(mv(),t);class u extends c.AbstractMessageReader{constructor(D){super(),this.process=D;let R=this.process;R.on("error",L=>this.fireError(L)),R.on("close",()=>this.fireClose())}listen(D){return this.process.on("message",D),c.Disposable.create(()=>this.process.off("message",D))}}t.IPCMessageReader=u;class l extends c.AbstractMessageWriter{constructor(D){super(),this.process=D,this.errorCount=0;const R=this.process;R.on("error",L=>this.fireError(L)),R.on("close",()=>this.fireClose)}write(D){try{return typeof this.process.send=="function"&&this.process.send(D,void 0,void 0,R=>{R?(this.errorCount++,this.handleError(R,D)):this.errorCount=0}),Promise.resolve()}catch(R){return this.handleError(R,D),Promise.reject(R)}}handleError(D,R){this.errorCount++,this.fireError(D,R,this.errorCount)}end(){}}t.IPCMessageWriter=l;class d extends c.AbstractMessageReader{constructor(D){super(),this.onData=new c.Emitter,D.on("close",()=>this.fireClose),D.on("error",R=>this.fireError(R)),D.on("message",R=>{this.onData.fire(R)})}listen(D){return this.onData.event(D)}}t.PortMessageReader=d;class f extends c.AbstractMessageWriter{constructor(D){super(),this.port=D,this.errorCount=0,D.on("close",()=>this.fireClose()),D.on("error",R=>this.fireError(R))}write(D){try{return this.port.postMessage(D),Promise.resolve()}catch(R){return this.handleError(R,D),Promise.reject(R)}}handleError(D,R){this.errorCount++,this.fireError(D,R,this.errorCount)}end(){}}t.PortMessageWriter=f;class h extends c.ReadableStreamMessageReader{constructor(D,R="utf-8"){super((0,r.default)().stream.asReadableStream(D),R)}}t.SocketMessageReader=h;class p extends c.WriteableStreamMessageWriter{constructor(D,R){super((0,r.default)().stream.asWritableStream(D),R),this.socket=D}dispose(){super.dispose(),this.socket.destroy()}}t.SocketMessageWriter=p;class m extends c.ReadableStreamMessageReader{constructor(D,R){super((0,r.default)().stream.asReadableStream(D),R)}}t.StreamMessageReader=m;class y extends c.WriteableStreamMessageWriter{constructor(D,R){super((0,r.default)().stream.asWritableStream(D),R)}}t.StreamMessageWriter=y;const g=process.env.XDG_RUNTIME_DIR,w=new Map([["linux",107],["darwin",103]]);function E(){const C=(0,o.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${C}-sock`;let D;g?D=i.join(g,`vscode-ipc-${C}.sock`):D=i.join(s.tmpdir(),`vscode-${C}.sock`);const R=w.get(process.platform);return R!==void 0&&D.length>R&&(0,r.default)().console.warn(`WARNING: IPC handle "${D}" is longer than ${R} characters.`),D}t.generateRandomPipeName=E;function k(C,D="utf-8"){let R;const L=new Promise((W,V)=>{R=W});return new Promise((W,V)=>{let Z=(0,a.createServer)(Fe=>{Z.close(),R([new h(Fe,D),new p(Fe,D)])});Z.on("error",V),Z.listen(C,()=>{Z.removeListener("error",V),W({onConnected:()=>L})})})}t.createClientPipeTransport=k;function A(C,D="utf-8"){const R=(0,a.createConnection)(C);return[new h(R,D),new p(R,D)]}t.createServerPipeTransport=A;function I(C,D="utf-8"){let R;const L=new Promise((W,V)=>{R=W});return new Promise((W,V)=>{const Z=(0,a.createServer)(Fe=>{Z.close(),R([new h(Fe,D),new p(Fe,D)])});Z.on("error",V),Z.listen(C,"127.0.0.1",()=>{Z.removeListener("error",V),W({onConnected:()=>L})})})}t.createClientSocketTransport=I;function x(C,D="utf-8"){const R=(0,a.createConnection)(C,"127.0.0.1");return[new h(R,D),new p(R,D)]}t.createServerSocketTransport=x;function _(C){const D=C;return D.read!==void 0&&D.addListener!==void 0}function P(C){const D=C;return D.write!==void 0&&D.addListener!==void 0}function O(C,D,R,L){R||(R=c.NullLogger);const W=_(C)?new m(C):C,V=P(D)?new y(D):D;return c.ConnectionStrategy.is(L)&&(L={connectionStrategy:L}),(0,c.createMessageConnection)(W,V,R,L)}t.createMessageConnection=O}(Hs)),Hs}var gv,t$;function n$(){return t$||(t$=1,gv=Ks()),gv}var Ys={};function r$(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var fh={exports:{}},i$;function yv(){return i$||(i$=1,function(t,e){(function(n){{var r=n(r$,e);r!==void 0&&(t.exports=r)}})(function(n,r){Object.defineProperty(r,"__esModule",{value:!0}),r.TextDocument=r.EOL=r.WorkspaceFolder=r.InlineCompletionContext=r.SelectedCompletionInfo=r.InlineCompletionTriggerKind=r.InlineCompletionList=r.InlineCompletionItem=r.StringValue=r.InlayHint=r.InlayHintLabelPart=r.InlayHintKind=r.InlineValueContext=r.InlineValueEvaluatableExpression=r.InlineValueVariableLookup=r.InlineValueText=r.SemanticTokens=r.SemanticTokenModifiers=r.SemanticTokenTypes=r.SelectionRange=r.DocumentLink=r.FormattingOptions=r.CodeLens=r.CodeAction=r.CodeActionContext=r.CodeActionTriggerKind=r.CodeActionKind=r.DocumentSymbol=r.WorkspaceSymbol=r.SymbolInformation=r.SymbolTag=r.SymbolKind=r.DocumentHighlight=r.DocumentHighlightKind=r.SignatureInformation=r.ParameterInformation=r.Hover=r.MarkedString=r.CompletionList=r.CompletionItem=r.CompletionItemLabelDetails=r.InsertTextMode=r.InsertReplaceEdit=r.CompletionItemTag=r.InsertTextFormat=r.CompletionItemKind=r.MarkupContent=r.MarkupKind=r.TextDocumentItem=r.OptionalVersionedTextDocumentIdentifier=r.VersionedTextDocumentIdentifier=r.TextDocumentIdentifier=r.WorkspaceChange=r.WorkspaceEdit=r.DeleteFile=r.RenameFile=r.CreateFile=r.TextDocumentEdit=r.AnnotatedTextEdit=r.ChangeAnnotationIdentifier=r.ChangeAnnotation=r.TextEdit=r.Command=r.Diagnostic=r.CodeDescription=r.DiagnosticTag=r.DiagnosticSeverity=r.DiagnosticRelatedInformation=r.FoldingRange=r.FoldingRangeKind=r.ColorPresentation=r.ColorInformation=r.Color=r.LocationLink=r.Location=r.Range=r.Position=r.uinteger=r.integer=r.URI=r.DocumentUri=void 0;var i;(function(T){function N(v){return typeof v=="string"}T.is=N})(i||(r.DocumentUri=i={}));var s;(function(T){function N(v){return typeof v=="string"}T.is=N})(s||(r.URI=s={}));var o;(function(T){T.MIN_VALUE=-2147483648,T.MAX_VALUE=2147483647;function N(v){return typeof v=="number"&&T.MIN_VALUE<=v&&v<=T.MAX_VALUE}T.is=N})(o||(r.integer=o={}));var a;(function(T){T.MIN_VALUE=0,T.MAX_VALUE=2147483647;function N(v){return typeof v=="number"&&T.MIN_VALUE<=v&&v<=T.MAX_VALUE}T.is=N})(a||(r.uinteger=a={}));var c;(function(T){function N($,b){return $===Number.MAX_VALUE&&($=a.MAX_VALUE),b===Number.MAX_VALUE&&(b=a.MAX_VALUE),{line:$,character:b}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&z.uinteger(b.line)&&z.uinteger(b.character)}T.is=v})(c||(r.Position=c={}));var u;(function(T){function N($,b,F,S){if(z.uinteger($)&&z.uinteger(b)&&z.uinteger(F)&&z.uinteger(S))return{start:c.create($,b),end:c.create(F,S)};if(c.is($)&&c.is(b))return{start:$,end:b};throw new Error("Range#create called with invalid arguments[".concat($,", ").concat(b,", ").concat(F,", ").concat(S,"]"))}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&c.is(b.start)&&c.is(b.end)}T.is=v})(u||(r.Range=u={}));var l;(function(T){function N($,b){return{uri:$,range:b}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&u.is(b.range)&&(z.string(b.uri)||z.undefined(b.uri))}T.is=v})(l||(r.Location=l={}));var d;(function(T){function N($,b,F,S){return{targetUri:$,targetRange:b,targetSelectionRange:F,originSelectionRange:S}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&u.is(b.targetRange)&&z.string(b.targetUri)&&u.is(b.targetSelectionRange)&&(u.is(b.originSelectionRange)||z.undefined(b.originSelectionRange))}T.is=v})(d||(r.LocationLink=d={}));var f;(function(T){function N($,b,F,S){return{red:$,green:b,blue:F,alpha:S}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&z.numberRange(b.red,0,1)&&z.numberRange(b.green,0,1)&&z.numberRange(b.blue,0,1)&&z.numberRange(b.alpha,0,1)}T.is=v})(f||(r.Color=f={}));var h;(function(T){function N($,b){return{range:$,color:b}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&u.is(b.range)&&f.is(b.color)}T.is=v})(h||(r.ColorInformation=h={}));var p;(function(T){function N($,b,F){return{label:$,textEdit:b,additionalTextEdits:F}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&z.string(b.label)&&(z.undefined(b.textEdit)||x.is(b))&&(z.undefined(b.additionalTextEdits)||z.typedArray(b.additionalTextEdits,x.is))}T.is=v})(p||(r.ColorPresentation=p={}));var m;(function(T){T.Comment="comment",T.Imports="imports",T.Region="region"})(m||(r.FoldingRangeKind=m={}));var y;(function(T){function N($,b,F,S,j,te){var ie={startLine:$,endLine:b};return z.defined(F)&&(ie.startCharacter=F),z.defined(S)&&(ie.endCharacter=S),z.defined(j)&&(ie.kind=j),z.defined(te)&&(ie.collapsedText=te),ie}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&z.uinteger(b.startLine)&&z.uinteger(b.startLine)&&(z.undefined(b.startCharacter)||z.uinteger(b.startCharacter))&&(z.undefined(b.endCharacter)||z.uinteger(b.endCharacter))&&(z.undefined(b.kind)||z.string(b.kind))}T.is=v})(y||(r.FoldingRange=y={}));var g;(function(T){function N($,b){return{location:$,message:b}}T.create=N;function v($){var b=$;return z.defined(b)&&l.is(b.location)&&z.string(b.message)}T.is=v})(g||(r.DiagnosticRelatedInformation=g={}));var w;(function(T){T.Error=1,T.Warning=2,T.Information=3,T.Hint=4})(w||(r.DiagnosticSeverity=w={}));var E;(function(T){T.Unnecessary=1,T.Deprecated=2})(E||(r.DiagnosticTag=E={}));var k;(function(T){function N(v){var $=v;return z.objectLiteral($)&&z.string($.href)}T.is=N})(k||(r.CodeDescription=k={}));var A;(function(T){function N($,b,F,S,j,te){var ie={range:$,message:b};return z.defined(F)&&(ie.severity=F),z.defined(S)&&(ie.code=S),z.defined(j)&&(ie.source=j),z.defined(te)&&(ie.relatedInformation=te),ie}T.create=N;function v($){var b,F=$;return z.defined(F)&&u.is(F.range)&&z.string(F.message)&&(z.number(F.severity)||z.undefined(F.severity))&&(z.integer(F.code)||z.string(F.code)||z.undefined(F.code))&&(z.undefined(F.codeDescription)||z.string((b=F.codeDescription)===null||b===void 0?void 0:b.href))&&(z.string(F.source)||z.undefined(F.source))&&(z.undefined(F.relatedInformation)||z.typedArray(F.relatedInformation,g.is))}T.is=v})(A||(r.Diagnostic=A={}));var I;(function(T){function N($,b){for(var F=[],S=2;S<arguments.length;S++)F[S-2]=arguments[S];var j={title:$,command:b};return z.defined(F)&&F.length>0&&(j.arguments=F),j}T.create=N;function v($){var b=$;return z.defined(b)&&z.string(b.title)&&z.string(b.command)}T.is=v})(I||(r.Command=I={}));var x;(function(T){function N(F,S){return{range:F,newText:S}}T.replace=N;function v(F,S){return{range:{start:F,end:F},newText:S}}T.insert=v;function $(F){return{range:F,newText:""}}T.del=$;function b(F){var S=F;return z.objectLiteral(S)&&z.string(S.newText)&&u.is(S.range)}T.is=b})(x||(r.TextEdit=x={}));var _;(function(T){function N($,b,F){var S={label:$};return b!==void 0&&(S.needsConfirmation=b),F!==void 0&&(S.description=F),S}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&z.string(b.label)&&(z.boolean(b.needsConfirmation)||b.needsConfirmation===void 0)&&(z.string(b.description)||b.description===void 0)}T.is=v})(_||(r.ChangeAnnotation=_={}));var P;(function(T){function N(v){var $=v;return z.string($)}T.is=N})(P||(r.ChangeAnnotationIdentifier=P={}));var O;(function(T){function N(F,S,j){return{range:F,newText:S,annotationId:j}}T.replace=N;function v(F,S,j){return{range:{start:F,end:F},newText:S,annotationId:j}}T.insert=v;function $(F,S){return{range:F,newText:"",annotationId:S}}T.del=$;function b(F){var S=F;return x.is(S)&&(_.is(S.annotationId)||P.is(S.annotationId))}T.is=b})(O||(r.AnnotatedTextEdit=O={}));var C;(function(T){function N($,b){return{textDocument:$,edits:b}}T.create=N;function v($){var b=$;return z.defined(b)&&Te.is(b.textDocument)&&Array.isArray(b.edits)}T.is=v})(C||(r.TextDocumentEdit=C={}));var D;(function(T){function N($,b,F){var S={kind:"create",uri:$};return b!==void 0&&(b.overwrite!==void 0||b.ignoreIfExists!==void 0)&&(S.options=b),F!==void 0&&(S.annotationId=F),S}T.create=N;function v($){var b=$;return b&&b.kind==="create"&&z.string(b.uri)&&(b.options===void 0||(b.options.overwrite===void 0||z.boolean(b.options.overwrite))&&(b.options.ignoreIfExists===void 0||z.boolean(b.options.ignoreIfExists)))&&(b.annotationId===void 0||P.is(b.annotationId))}T.is=v})(D||(r.CreateFile=D={}));var R;(function(T){function N($,b,F,S){var j={kind:"rename",oldUri:$,newUri:b};return F!==void 0&&(F.overwrite!==void 0||F.ignoreIfExists!==void 0)&&(j.options=F),S!==void 0&&(j.annotationId=S),j}T.create=N;function v($){var b=$;return b&&b.kind==="rename"&&z.string(b.oldUri)&&z.string(b.newUri)&&(b.options===void 0||(b.options.overwrite===void 0||z.boolean(b.options.overwrite))&&(b.options.ignoreIfExists===void 0||z.boolean(b.options.ignoreIfExists)))&&(b.annotationId===void 0||P.is(b.annotationId))}T.is=v})(R||(r.RenameFile=R={}));var L;(function(T){function N($,b,F){var S={kind:"delete",uri:$};return b!==void 0&&(b.recursive!==void 0||b.ignoreIfNotExists!==void 0)&&(S.options=b),F!==void 0&&(S.annotationId=F),S}T.create=N;function v($){var b=$;return b&&b.kind==="delete"&&z.string(b.uri)&&(b.options===void 0||(b.options.recursive===void 0||z.boolean(b.options.recursive))&&(b.options.ignoreIfNotExists===void 0||z.boolean(b.options.ignoreIfNotExists)))&&(b.annotationId===void 0||P.is(b.annotationId))}T.is=v})(L||(r.DeleteFile=L={}));var W;(function(T){function N(v){var $=v;return $&&($.changes!==void 0||$.documentChanges!==void 0)&&($.documentChanges===void 0||$.documentChanges.every(function(b){return z.string(b.kind)?D.is(b)||R.is(b)||L.is(b):C.is(b)}))}T.is=N})(W||(r.WorkspaceEdit=W={}));var V=function(){function T(N,v){this.edits=N,this.changeAnnotations=v}return T.prototype.insert=function(N,v,$){var b,F;if($===void 0?b=x.insert(N,v):P.is($)?(F=$,b=O.insert(N,v,$)):(this.assertChangeAnnotations(this.changeAnnotations),F=this.changeAnnotations.manage($),b=O.insert(N,v,F)),this.edits.push(b),F!==void 0)return F},T.prototype.replace=function(N,v,$){var b,F;if($===void 0?b=x.replace(N,v):P.is($)?(F=$,b=O.replace(N,v,$)):(this.assertChangeAnnotations(this.changeAnnotations),F=this.changeAnnotations.manage($),b=O.replace(N,v,F)),this.edits.push(b),F!==void 0)return F},T.prototype.delete=function(N,v){var $,b;if(v===void 0?$=x.del(N):P.is(v)?(b=v,$=O.del(N,v)):(this.assertChangeAnnotations(this.changeAnnotations),b=this.changeAnnotations.manage(v),$=O.del(N,b)),this.edits.push($),b!==void 0)return b},T.prototype.add=function(N){this.edits.push(N)},T.prototype.all=function(){return this.edits},T.prototype.clear=function(){this.edits.splice(0,this.edits.length)},T.prototype.assertChangeAnnotations=function(N){if(N===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},T}(),Z=function(){function T(N){this._annotations=N===void 0?Object.create(null):N,this._counter=0,this._size=0}return T.prototype.all=function(){return this._annotations},Object.defineProperty(T.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),T.prototype.manage=function(N,v){var $;if(P.is(N)?$=N:($=this.nextId(),v=N),this._annotations[$]!==void 0)throw new Error("Id ".concat($," is already in use."));if(v===void 0)throw new Error("No annotation provided for id ".concat($));return this._annotations[$]=v,this._size++,$},T.prototype.nextId=function(){return this._counter++,this._counter.toString()},T}(),Fe=function(){function T(N){var v=this;this._textEditChanges=Object.create(null),N!==void 0?(this._workspaceEdit=N,N.documentChanges?(this._changeAnnotations=new Z(N.changeAnnotations),N.changeAnnotations=this._changeAnnotations.all(),N.documentChanges.forEach(function($){if(C.is($)){var b=new V($.edits,v._changeAnnotations);v._textEditChanges[$.textDocument.uri]=b}})):N.changes&&Object.keys(N.changes).forEach(function($){var b=new V(N.changes[$]);v._textEditChanges[$]=b})):this._workspaceEdit={}}return Object.defineProperty(T.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),T.prototype.getTextEditChange=function(N){if(Te.is(N)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var v={uri:N.uri,version:N.version},$=this._textEditChanges[v.uri];if(!$){var b=[],F={textDocument:v,edits:b};this._workspaceEdit.documentChanges.push(F),$=new V(b,this._changeAnnotations),this._textEditChanges[v.uri]=$}return $}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var $=this._textEditChanges[N];if(!$){var b=[];this._workspaceEdit.changes[N]=b,$=new V(b),this._textEditChanges[N]=$}return $}},T.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Z,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},T.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},T.prototype.createFile=function(N,v,$){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var b;_.is(v)||P.is(v)?b=v:$=v;var F,S;if(b===void 0?F=D.create(N,$):(S=P.is(b)?b:this._changeAnnotations.manage(b),F=D.create(N,$,S)),this._workspaceEdit.documentChanges.push(F),S!==void 0)return S},T.prototype.renameFile=function(N,v,$,b){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var F;_.is($)||P.is($)?F=$:b=$;var S,j;if(F===void 0?S=R.create(N,v,b):(j=P.is(F)?F:this._changeAnnotations.manage(F),S=R.create(N,v,b,j)),this._workspaceEdit.documentChanges.push(S),j!==void 0)return j},T.prototype.deleteFile=function(N,v,$){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var b;_.is(v)||P.is(v)?b=v:$=v;var F,S;if(b===void 0?F=L.create(N,$):(S=P.is(b)?b:this._changeAnnotations.manage(b),F=L.create(N,$,S)),this._workspaceEdit.documentChanges.push(F),S!==void 0)return S},T}();r.WorkspaceChange=Fe;var se;(function(T){function N($){return{uri:$}}T.create=N;function v($){var b=$;return z.defined(b)&&z.string(b.uri)}T.is=v})(se||(r.TextDocumentIdentifier=se={}));var K;(function(T){function N($,b){return{uri:$,version:b}}T.create=N;function v($){var b=$;return z.defined(b)&&z.string(b.uri)&&z.integer(b.version)}T.is=v})(K||(r.VersionedTextDocumentIdentifier=K={}));var Te;(function(T){function N($,b){return{uri:$,version:b}}T.create=N;function v($){var b=$;return z.defined(b)&&z.string(b.uri)&&(b.version===null||z.integer(b.version))}T.is=v})(Te||(r.OptionalVersionedTextDocumentIdentifier=Te={}));var ut;(function(T){function N($,b,F,S){return{uri:$,languageId:b,version:F,text:S}}T.create=N;function v($){var b=$;return z.defined(b)&&z.string(b.uri)&&z.string(b.languageId)&&z.integer(b.version)&&z.string(b.text)}T.is=v})(ut||(r.TextDocumentItem=ut={}));var H;(function(T){T.PlainText="plaintext",T.Markdown="markdown";function N(v){var $=v;return $===T.PlainText||$===T.Markdown}T.is=N})(H||(r.MarkupKind=H={}));var Y;(function(T){function N(v){var $=v;return z.objectLiteral(v)&&H.is($.kind)&&z.string($.value)}T.is=N})(Y||(r.MarkupContent=Y={}));var ee;(function(T){T.Text=1,T.Method=2,T.Function=3,T.Constructor=4,T.Field=5,T.Variable=6,T.Class=7,T.Interface=8,T.Module=9,T.Property=10,T.Unit=11,T.Value=12,T.Enum=13,T.Keyword=14,T.Snippet=15,T.Color=16,T.File=17,T.Reference=18,T.Folder=19,T.EnumMember=20,T.Constant=21,T.Struct=22,T.Event=23,T.Operator=24,T.TypeParameter=25})(ee||(r.CompletionItemKind=ee={}));var ne;(function(T){T.PlainText=1,T.Snippet=2})(ne||(r.InsertTextFormat=ne={}));var fe;(function(T){T.Deprecated=1})(fe||(r.CompletionItemTag=fe={}));var Ee;(function(T){function N($,b,F){return{newText:$,insert:b,replace:F}}T.create=N;function v($){var b=$;return b&&z.string(b.newText)&&u.is(b.insert)&&u.is(b.replace)}T.is=v})(Ee||(r.InsertReplaceEdit=Ee={}));var ge;(function(T){T.asIs=1,T.adjustIndentation=2})(ge||(r.InsertTextMode=ge={}));var ce;(function(T){function N(v){var $=v;return $&&(z.string($.detail)||$.detail===void 0)&&(z.string($.description)||$.description===void 0)}T.is=N})(ce||(r.CompletionItemLabelDetails=ce={}));var M;(function(T){function N(v){return{label:v}}T.create=N})(M||(r.CompletionItem=M={}));var U;(function(T){function N(v,$){return{items:v||[],isIncomplete:!!$}}T.create=N})(U||(r.CompletionList=U={}));var oe;(function(T){function N($){return $.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}T.fromPlainText=N;function v($){var b=$;return z.string(b)||z.objectLiteral(b)&&z.string(b.language)&&z.string(b.value)}T.is=v})(oe||(r.MarkedString=oe={}));var G;(function(T){function N(v){var $=v;return!!$&&z.objectLiteral($)&&(Y.is($.contents)||oe.is($.contents)||z.typedArray($.contents,oe.is))&&(v.range===void 0||u.is(v.range))}T.is=N})(G||(r.Hover=G={}));var Le;(function(T){function N(v,$){return $?{label:v,documentation:$}:{label:v}}T.create=N})(Le||(r.ParameterInformation=Le={}));var yt;(function(T){function N(v,$){for(var b=[],F=2;F<arguments.length;F++)b[F-2]=arguments[F];var S={label:v};return z.defined($)&&(S.documentation=$),z.defined(b)?S.parameters=b:S.parameters=[],S}T.create=N})(yt||(r.SignatureInformation=yt={}));var mn;(function(T){T.Text=1,T.Read=2,T.Write=3})(mn||(r.DocumentHighlightKind=mn={}));var tr;(function(T){function N(v,$){var b={range:v};return z.number($)&&(b.kind=$),b}T.create=N})(tr||(r.DocumentHighlight=tr={}));var nr;(function(T){T.File=1,T.Module=2,T.Namespace=3,T.Package=4,T.Class=5,T.Method=6,T.Property=7,T.Field=8,T.Constructor=9,T.Enum=10,T.Interface=11,T.Function=12,T.Variable=13,T.Constant=14,T.String=15,T.Number=16,T.Boolean=17,T.Array=18,T.Object=19,T.Key=20,T.Null=21,T.EnumMember=22,T.Struct=23,T.Event=24,T.Operator=25,T.TypeParameter=26})(nr||(r.SymbolKind=nr={}));var rr;(function(T){T.Deprecated=1})(rr||(r.SymbolTag=rr={}));var qt;(function(T){function N(v,$,b,F,S){var j={name:v,kind:$,location:{uri:F,range:b}};return S&&(j.containerName=S),j}T.create=N})(qt||(r.SymbolInformation=qt={}));var _n;(function(T){function N(v,$,b,F){return F!==void 0?{name:v,kind:$,location:{uri:b,range:F}}:{name:v,kind:$,location:{uri:b}}}T.create=N})(_n||(r.WorkspaceSymbol=_n={}));var Yr;(function(T){function N($,b,F,S,j,te){var ie={name:$,detail:b,kind:F,range:S,selectionRange:j};return te!==void 0&&(ie.children=te),ie}T.create=N;function v($){var b=$;return b&&z.string(b.name)&&z.number(b.kind)&&u.is(b.range)&&u.is(b.selectionRange)&&(b.detail===void 0||z.string(b.detail))&&(b.deprecated===void 0||z.boolean(b.deprecated))&&(b.children===void 0||Array.isArray(b.children))&&(b.tags===void 0||Array.isArray(b.tags))}T.is=v})(Yr||(r.DocumentSymbol=Yr={}));var zn;(function(T){T.Empty="",T.QuickFix="quickfix",T.Refactor="refactor",T.RefactorExtract="refactor.extract",T.RefactorInline="refactor.inline",T.RefactorRewrite="refactor.rewrite",T.Source="source",T.SourceOrganizeImports="source.organizeImports",T.SourceFixAll="source.fixAll"})(zn||(r.CodeActionKind=zn={}));var gn;(function(T){T.Invoked=1,T.Automatic=2})(gn||(r.CodeActionTriggerKind=gn={}));var Bn;(function(T){function N($,b,F){var S={diagnostics:$};return b!=null&&(S.only=b),F!=null&&(S.triggerKind=F),S}T.create=N;function v($){var b=$;return z.defined(b)&&z.typedArray(b.diagnostics,A.is)&&(b.only===void 0||z.typedArray(b.only,z.string))&&(b.triggerKind===void 0||b.triggerKind===gn.Invoked||b.triggerKind===gn.Automatic)}T.is=v})(Bn||(r.CodeActionContext=Bn={}));var tn;(function(T){function N($,b,F){var S={title:$},j=!0;return typeof b=="string"?(j=!1,S.kind=b):I.is(b)?S.command=b:S.edit=b,j&&F!==void 0&&(S.kind=F),S}T.create=N;function v($){var b=$;return b&&z.string(b.title)&&(b.diagnostics===void 0||z.typedArray(b.diagnostics,A.is))&&(b.kind===void 0||z.string(b.kind))&&(b.edit!==void 0||b.command!==void 0)&&(b.command===void 0||I.is(b.command))&&(b.isPreferred===void 0||z.boolean(b.isPreferred))&&(b.edit===void 0||W.is(b.edit))}T.is=v})(tn||(r.CodeAction=tn={}));var X;(function(T){function N($,b){var F={range:$};return z.defined(b)&&(F.data=b),F}T.create=N;function v($){var b=$;return z.defined(b)&&u.is(b.range)&&(z.undefined(b.command)||I.is(b.command))}T.is=v})(X||(r.CodeLens=X={}));var J;(function(T){function N($,b){return{tabSize:$,insertSpaces:b}}T.create=N;function v($){var b=$;return z.defined(b)&&z.uinteger(b.tabSize)&&z.boolean(b.insertSpaces)}T.is=v})(J||(r.FormattingOptions=J={}));var le;(function(T){function N($,b,F){return{range:$,target:b,data:F}}T.create=N;function v($){var b=$;return z.defined(b)&&u.is(b.range)&&(z.undefined(b.target)||z.string(b.target))}T.is=v})(le||(r.DocumentLink=le={}));var jt;(function(T){function N($,b){return{range:$,parent:b}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&u.is(b.range)&&(b.parent===void 0||T.is(b.parent))}T.is=v})(jt||(r.SelectionRange=jt={}));var Lt;(function(T){T.namespace="namespace",T.type="type",T.class="class",T.enum="enum",T.interface="interface",T.struct="struct",T.typeParameter="typeParameter",T.parameter="parameter",T.variable="variable",T.property="property",T.enumMember="enumMember",T.event="event",T.function="function",T.method="method",T.macro="macro",T.keyword="keyword",T.modifier="modifier",T.comment="comment",T.string="string",T.number="number",T.regexp="regexp",T.operator="operator",T.decorator="decorator"})(Lt||(r.SemanticTokenTypes=Lt={}));var Rr;(function(T){T.declaration="declaration",T.definition="definition",T.readonly="readonly",T.static="static",T.deprecated="deprecated",T.abstract="abstract",T.async="async",T.modification="modification",T.documentation="documentation",T.defaultLibrary="defaultLibrary"})(Rr||(r.SemanticTokenModifiers=Rr={}));var Ai;(function(T){function N(v){var $=v;return z.objectLiteral($)&&($.resultId===void 0||typeof $.resultId=="string")&&Array.isArray($.data)&&($.data.length===0||typeof $.data[0]=="number")}T.is=N})(Ai||(r.SemanticTokens=Ai={}));var fs;(function(T){function N($,b){return{range:$,text:b}}T.create=N;function v($){var b=$;return b!=null&&u.is(b.range)&&z.string(b.text)}T.is=v})(fs||(r.InlineValueText=fs={}));var hs;(function(T){function N($,b,F){return{range:$,variableName:b,caseSensitiveLookup:F}}T.create=N;function v($){var b=$;return b!=null&&u.is(b.range)&&z.boolean(b.caseSensitiveLookup)&&(z.string(b.variableName)||b.variableName===void 0)}T.is=v})(hs||(r.InlineValueVariableLookup=hs={}));var ps;(function(T){function N($,b){return{range:$,expression:b}}T.create=N;function v($){var b=$;return b!=null&&u.is(b.range)&&(z.string(b.expression)||b.expression===void 0)}T.is=v})(ps||(r.InlineValueEvaluatableExpression=ps={}));var ms;(function(T){function N($,b){return{frameId:$,stoppedLocation:b}}T.create=N;function v($){var b=$;return z.defined(b)&&u.is($.stoppedLocation)}T.is=v})(ms||(r.InlineValueContext=ms={}));var xi;(function(T){T.Type=1,T.Parameter=2;function N(v){return v===1||v===2}T.is=N})(xi||(r.InlayHintKind=xi={}));var Ii;(function(T){function N($){return{value:$}}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&(b.tooltip===void 0||z.string(b.tooltip)||Y.is(b.tooltip))&&(b.location===void 0||l.is(b.location))&&(b.command===void 0||I.is(b.command))}T.is=v})(Ii||(r.InlayHintLabelPart=Ii={}));var yn;(function(T){function N($,b,F){var S={position:$,label:b};return F!==void 0&&(S.kind=F),S}T.create=N;function v($){var b=$;return z.objectLiteral(b)&&c.is(b.position)&&(z.string(b.label)||z.typedArray(b.label,Ii.is))&&(b.kind===void 0||xi.is(b.kind))&&b.textEdits===void 0||z.typedArray(b.textEdits,x.is)&&(b.tooltip===void 0||z.string(b.tooltip)||Y.is(b.tooltip))&&(b.paddingLeft===void 0||z.boolean(b.paddingLeft))&&(b.paddingRight===void 0||z.boolean(b.paddingRight))}T.is=v})(yn||(r.InlayHint=yn={}));var gs;(function(T){function N(v){return{kind:"snippet",value:v}}T.createSnippet=N})(gs||(r.StringValue=gs={}));var ys;(function(T){function N(v,$,b,F){return{insertText:v,filterText:$,range:b,command:F}}T.create=N})(ys||(r.InlineCompletionItem=ys={}));var Sr;(function(T){function N(v){return{items:v}}T.create=N})(Sr||(r.InlineCompletionList=Sr={}));var vs;(function(T){T.Invoked=0,T.Automatic=1})(vs||(r.InlineCompletionTriggerKind=vs={}));var Xr;(function(T){function N(v,$){return{range:v,text:$}}T.create=N})(Xr||(r.SelectedCompletionInfo=Xr={}));var ws;(function(T){function N(v,$){return{triggerKind:v,selectedCompletionInfo:$}}T.create=N})(ws||(r.InlineCompletionContext=ws={}));var qn;(function(T){function N(v){var $=v;return z.objectLiteral($)&&s.is($.uri)&&z.string($.name)}T.is=N})(qn||(r.WorkspaceFolder=qn={})),r.EOL=[`
156
+ `,`\r
157
+ `,"\r"];var ir;(function(T){function N(F,S,j,te){return new Eo(F,S,j,te)}T.create=N;function v(F){var S=F;return!!(z.defined(S)&&z.string(S.uri)&&(z.undefined(S.languageId)||z.string(S.languageId))&&z.uinteger(S.lineCount)&&z.func(S.getText)&&z.func(S.positionAt)&&z.func(S.offsetAt))}T.is=v;function $(F,S){for(var j=F.getText(),te=b(S,function($e,Ze){var Ue=$e.range.start.line-Ze.range.start.line;return Ue===0?$e.range.start.character-Ze.range.start.character:Ue}),ie=j.length,xe=te.length-1;xe>=0;xe--){var _e=te[xe],je=F.offsetAt(_e.range.start),he=F.offsetAt(_e.range.end);if(he<=ie)j=j.substring(0,je)+_e.newText+j.substring(he,j.length);else throw new Error("Overlapping edit");ie=je}return j}T.applyEdits=$;function b(F,S){if(F.length<=1)return F;var j=F.length/2|0,te=F.slice(0,j),ie=F.slice(j);b(te,S),b(ie,S);for(var xe=0,_e=0,je=0;xe<te.length&&_e<ie.length;){var he=S(te[xe],ie[_e]);he<=0?F[je++]=te[xe++]:F[je++]=ie[_e++]}for(;xe<te.length;)F[je++]=te[xe++];for(;_e<ie.length;)F[je++]=ie[_e++];return F}})(ir||(r.TextDocument=ir={}));var Eo=function(){function T(N,v,$,b){this._uri=N,this._languageId=v,this._version=$,this._content=b,this._lineOffsets=void 0}return Object.defineProperty(T.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(T.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(T.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),T.prototype.getText=function(N){if(N){var v=this.offsetAt(N.start),$=this.offsetAt(N.end);return this._content.substring(v,$)}return this._content},T.prototype.update=function(N,v){this._content=N.text,this._version=v,this._lineOffsets=void 0},T.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var N=[],v=this._content,$=!0,b=0;b<v.length;b++){$&&(N.push(b),$=!1);var F=v.charAt(b);$=F==="\r"||F===`
158
+ `,F==="\r"&&b+1<v.length&&v.charAt(b+1)===`
159
+ `&&b++}$&&v.length>0&&N.push(v.length),this._lineOffsets=N}return this._lineOffsets},T.prototype.positionAt=function(N){N=Math.max(Math.min(N,this._content.length),0);var v=this.getLineOffsets(),$=0,b=v.length;if(b===0)return c.create(0,N);for(;$<b;){var F=Math.floor(($+b)/2);v[F]>N?b=F:$=F+1}var S=$-1;return c.create(S,N-v[S])},T.prototype.offsetAt=function(N){var v=this.getLineOffsets();if(N.line>=v.length)return this._content.length;if(N.line<0)return 0;var $=v[N.line],b=N.line+1<v.length?v[N.line+1]:this._content.length;return Math.max(Math.min($+N.character,b),$)},Object.defineProperty(T.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),T}(),z;(function(T){var N=Object.prototype.toString;function v(he){return typeof he<"u"}T.defined=v;function $(he){return typeof he>"u"}T.undefined=$;function b(he){return he===!0||he===!1}T.boolean=b;function F(he){return N.call(he)==="[object String]"}T.string=F;function S(he){return N.call(he)==="[object Number]"}T.number=S;function j(he,$e,Ze){return N.call(he)==="[object Number]"&&$e<=he&&he<=Ze}T.numberRange=j;function te(he){return N.call(he)==="[object Number]"&&-2147483648<=he&&he<=2147483647}T.integer=te;function ie(he){return N.call(he)==="[object Number]"&&0<=he&&he<=2147483647}T.uinteger=ie;function xe(he){return N.call(he)==="[object Function]"}T.func=xe;function _e(he){return he!==null&&typeof he=="object"}T.objectLiteral=_e;function je(he,$e){return Array.isArray(he)&&he.every($e)}T.typedArray=je})(z||(z={}))})}(fh,fh.exports)),fh.exports}var ln={},s$;function mt(){if(s$)return ln;s$=1,Object.defineProperty(ln,"__esModule",{value:!0}),ln.ProtocolNotificationType=ln.ProtocolNotificationType0=ln.ProtocolRequestType=ln.ProtocolRequestType0=ln.RegistrationType=ln.MessageDirection=void 0;const t=Ks();var e;(function(a){a.clientToServer="clientToServer",a.serverToClient="serverToClient",a.both="both"})(e||(ln.MessageDirection=e={}));class n{constructor(c){this.method=c}}ln.RegistrationType=n;class r extends t.RequestType0{constructor(c){super(c)}}ln.ProtocolRequestType0=r;class i extends t.RequestType{constructor(c){super(c,t.ParameterStructures.byName)}}ln.ProtocolRequestType=i;class s extends t.NotificationType0{constructor(c){super(c)}}ln.ProtocolNotificationType0=s;class o extends t.NotificationType{constructor(c){super(c,t.ParameterStructures.byName)}}return ln.ProtocolNotificationType=o,ln}var vv={},Rt={},o$;function wv(){if(o$)return Rt;o$=1,Object.defineProperty(Rt,"__esModule",{value:!0}),Rt.objectLiteral=Rt.typedArray=Rt.stringArray=Rt.array=Rt.func=Rt.error=Rt.number=Rt.string=Rt.boolean=void 0;function t(u){return u===!0||u===!1}Rt.boolean=t;function e(u){return typeof u=="string"||u instanceof String}Rt.string=e;function n(u){return typeof u=="number"||u instanceof Number}Rt.number=n;function r(u){return u instanceof Error}Rt.error=r;function i(u){return typeof u=="function"}Rt.func=i;function s(u){return Array.isArray(u)}Rt.array=s;function o(u){return s(u)&&u.every(l=>e(l))}Rt.stringArray=o;function a(u,l){return Array.isArray(u)&&u.every(l)}Rt.typedArray=a;function c(u){return u!==null&&typeof u=="object"}return Rt.objectLiteral=c,Rt}var ou={},a$;function ZU(){if(a$)return ou;a$=1,Object.defineProperty(ou,"__esModule",{value:!0}),ou.ImplementationRequest=void 0;const t=mt();var e;return function(n){n.method="textDocument/implementation",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(ou.ImplementationRequest=e={})),ou}var au={},c$;function QU(){if(c$)return au;c$=1,Object.defineProperty(au,"__esModule",{value:!0}),au.TypeDefinitionRequest=void 0;const t=mt();var e;return function(n){n.method="textDocument/typeDefinition",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(au.TypeDefinitionRequest=e={})),au}var Xs={},u$;function e7(){if(u$)return Xs;u$=1,Object.defineProperty(Xs,"__esModule",{value:!0}),Xs.DidChangeWorkspaceFoldersNotification=Xs.WorkspaceFoldersRequest=void 0;const t=mt();var e;(function(r){r.method="workspace/workspaceFolders",r.messageDirection=t.MessageDirection.serverToClient,r.type=new t.ProtocolRequestType0(r.method)})(e||(Xs.WorkspaceFoldersRequest=e={}));var n;return function(r){r.method="workspace/didChangeWorkspaceFolders",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolNotificationType(r.method)}(n||(Xs.DidChangeWorkspaceFoldersNotification=n={})),Xs}var cu={},l$;function t7(){if(l$)return cu;l$=1,Object.defineProperty(cu,"__esModule",{value:!0}),cu.ConfigurationRequest=void 0;const t=mt();var e;return function(n){n.method="workspace/configuration",n.messageDirection=t.MessageDirection.serverToClient,n.type=new t.ProtocolRequestType(n.method)}(e||(cu.ConfigurationRequest=e={})),cu}var Js={},d$;function n7(){if(d$)return Js;d$=1,Object.defineProperty(Js,"__esModule",{value:!0}),Js.ColorPresentationRequest=Js.DocumentColorRequest=void 0;const t=mt();var e;(function(r){r.method="textDocument/documentColor",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)})(e||(Js.DocumentColorRequest=e={}));var n;return function(r){r.method="textDocument/colorPresentation",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)}(n||(Js.ColorPresentationRequest=n={})),Js}var Zs={},f$;function r7(){if(f$)return Zs;f$=1,Object.defineProperty(Zs,"__esModule",{value:!0}),Zs.FoldingRangeRefreshRequest=Zs.FoldingRangeRequest=void 0;const t=mt();var e;(function(r){r.method="textDocument/foldingRange",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)})(e||(Zs.FoldingRangeRequest=e={}));var n;return function(r){r.method="workspace/foldingRange/refresh",r.messageDirection=t.MessageDirection.serverToClient,r.type=new t.ProtocolRequestType0(r.method)}(n||(Zs.FoldingRangeRefreshRequest=n={})),Zs}var uu={},h$;function i7(){if(h$)return uu;h$=1,Object.defineProperty(uu,"__esModule",{value:!0}),uu.DeclarationRequest=void 0;const t=mt();var e;return function(n){n.method="textDocument/declaration",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(uu.DeclarationRequest=e={})),uu}var lu={},p$;function s7(){if(p$)return lu;p$=1,Object.defineProperty(lu,"__esModule",{value:!0}),lu.SelectionRangeRequest=void 0;const t=mt();var e;return function(n){n.method="textDocument/selectionRange",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(lu.SelectionRangeRequest=e={})),lu}var Ti={},m$;function o7(){if(m$)return Ti;m$=1,Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.WorkDoneProgressCancelNotification=Ti.WorkDoneProgressCreateRequest=Ti.WorkDoneProgress=void 0;const t=Ks(),e=mt();var n;(function(s){s.type=new t.ProgressType;function o(a){return a===s.type}s.is=o})(n||(Ti.WorkDoneProgress=n={}));var r;(function(s){s.method="window/workDoneProgress/create",s.messageDirection=e.MessageDirection.serverToClient,s.type=new e.ProtocolRequestType(s.method)})(r||(Ti.WorkDoneProgressCreateRequest=r={}));var i;return function(s){s.method="window/workDoneProgress/cancel",s.messageDirection=e.MessageDirection.clientToServer,s.type=new e.ProtocolNotificationType(s.method)}(i||(Ti.WorkDoneProgressCancelNotification=i={})),Ti}var Ri={},g$;function a7(){if(g$)return Ri;g$=1,Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.CallHierarchyOutgoingCallsRequest=Ri.CallHierarchyIncomingCallsRequest=Ri.CallHierarchyPrepareRequest=void 0;const t=mt();var e;(function(i){i.method="textDocument/prepareCallHierarchy",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(e||(Ri.CallHierarchyPrepareRequest=e={}));var n;(function(i){i.method="callHierarchy/incomingCalls",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(n||(Ri.CallHierarchyIncomingCallsRequest=n={}));var r;return function(i){i.method="callHierarchy/outgoingCalls",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)}(r||(Ri.CallHierarchyOutgoingCallsRequest=r={})),Ri}var dn={},y$;function c7(){if(y$)return dn;y$=1,Object.defineProperty(dn,"__esModule",{value:!0}),dn.SemanticTokensRefreshRequest=dn.SemanticTokensRangeRequest=dn.SemanticTokensDeltaRequest=dn.SemanticTokensRequest=dn.SemanticTokensRegistrationType=dn.TokenFormat=void 0;const t=mt();var e;(function(a){a.Relative="relative"})(e||(dn.TokenFormat=e={}));var n;(function(a){a.method="textDocument/semanticTokens",a.type=new t.RegistrationType(a.method)})(n||(dn.SemanticTokensRegistrationType=n={}));var r;(function(a){a.method="textDocument/semanticTokens/full",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method),a.registrationMethod=n.method})(r||(dn.SemanticTokensRequest=r={}));var i;(function(a){a.method="textDocument/semanticTokens/full/delta",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method),a.registrationMethod=n.method})(i||(dn.SemanticTokensDeltaRequest=i={}));var s;(function(a){a.method="textDocument/semanticTokens/range",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method),a.registrationMethod=n.method})(s||(dn.SemanticTokensRangeRequest=s={}));var o;return function(a){a.method="workspace/semanticTokens/refresh",a.messageDirection=t.MessageDirection.serverToClient,a.type=new t.ProtocolRequestType0(a.method)}(o||(dn.SemanticTokensRefreshRequest=o={})),dn}var du={},v$;function u7(){if(v$)return du;v$=1,Object.defineProperty(du,"__esModule",{value:!0}),du.ShowDocumentRequest=void 0;const t=mt();var e;return function(n){n.method="window/showDocument",n.messageDirection=t.MessageDirection.serverToClient,n.type=new t.ProtocolRequestType(n.method)}(e||(du.ShowDocumentRequest=e={})),du}var fu={},w$;function l7(){if(w$)return fu;w$=1,Object.defineProperty(fu,"__esModule",{value:!0}),fu.LinkedEditingRangeRequest=void 0;const t=mt();var e;return function(n){n.method="textDocument/linkedEditingRange",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(fu.LinkedEditingRangeRequest=e={})),fu}var Vt={},b$;function d7(){if(b$)return Vt;b$=1,Object.defineProperty(Vt,"__esModule",{value:!0}),Vt.WillDeleteFilesRequest=Vt.DidDeleteFilesNotification=Vt.DidRenameFilesNotification=Vt.WillRenameFilesRequest=Vt.DidCreateFilesNotification=Vt.WillCreateFilesRequest=Vt.FileOperationPatternKind=void 0;const t=mt();var e;(function(c){c.file="file",c.folder="folder"})(e||(Vt.FileOperationPatternKind=e={}));var n;(function(c){c.method="workspace/willCreateFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolRequestType(c.method)})(n||(Vt.WillCreateFilesRequest=n={}));var r;(function(c){c.method="workspace/didCreateFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolNotificationType(c.method)})(r||(Vt.DidCreateFilesNotification=r={}));var i;(function(c){c.method="workspace/willRenameFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolRequestType(c.method)})(i||(Vt.WillRenameFilesRequest=i={}));var s;(function(c){c.method="workspace/didRenameFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolNotificationType(c.method)})(s||(Vt.DidRenameFilesNotification=s={}));var o;(function(c){c.method="workspace/didDeleteFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolNotificationType(c.method)})(o||(Vt.DidDeleteFilesNotification=o={}));var a;return function(c){c.method="workspace/willDeleteFiles",c.messageDirection=t.MessageDirection.clientToServer,c.type=new t.ProtocolRequestType(c.method)}(a||(Vt.WillDeleteFilesRequest=a={})),Vt}var Si={},E$;function f7(){if(E$)return Si;E$=1,Object.defineProperty(Si,"__esModule",{value:!0}),Si.MonikerRequest=Si.MonikerKind=Si.UniquenessLevel=void 0;const t=mt();var e;(function(i){i.document="document",i.project="project",i.group="group",i.scheme="scheme",i.global="global"})(e||(Si.UniquenessLevel=e={}));var n;(function(i){i.$import="import",i.$export="export",i.local="local"})(n||(Si.MonikerKind=n={}));var r;return function(i){i.method="textDocument/moniker",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)}(r||(Si.MonikerRequest=r={})),Si}var ki={},D$;function h7(){if(D$)return ki;D$=1,Object.defineProperty(ki,"__esModule",{value:!0}),ki.TypeHierarchySubtypesRequest=ki.TypeHierarchySupertypesRequest=ki.TypeHierarchyPrepareRequest=void 0;const t=mt();var e;(function(i){i.method="textDocument/prepareTypeHierarchy",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(e||(ki.TypeHierarchyPrepareRequest=e={}));var n;(function(i){i.method="typeHierarchy/supertypes",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(n||(ki.TypeHierarchySupertypesRequest=n={}));var r;return function(i){i.method="typeHierarchy/subtypes",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)}(r||(ki.TypeHierarchySubtypesRequest=r={})),ki}var Qs={},T$;function p7(){if(T$)return Qs;T$=1,Object.defineProperty(Qs,"__esModule",{value:!0}),Qs.InlineValueRefreshRequest=Qs.InlineValueRequest=void 0;const t=mt();var e;(function(r){r.method="textDocument/inlineValue",r.messageDirection=t.MessageDirection.clientToServer,r.type=new t.ProtocolRequestType(r.method)})(e||(Qs.InlineValueRequest=e={}));var n;return function(r){r.method="workspace/inlineValue/refresh",r.messageDirection=t.MessageDirection.serverToClient,r.type=new t.ProtocolRequestType0(r.method)}(n||(Qs.InlineValueRefreshRequest=n={})),Qs}var $i={},R$;function m7(){if(R$)return $i;R$=1,Object.defineProperty($i,"__esModule",{value:!0}),$i.InlayHintRefreshRequest=$i.InlayHintResolveRequest=$i.InlayHintRequest=void 0;const t=mt();var e;(function(i){i.method="textDocument/inlayHint",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(e||($i.InlayHintRequest=e={}));var n;(function(i){i.method="inlayHint/resolve",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(n||($i.InlayHintResolveRequest=n={}));var r;return function(i){i.method="workspace/inlayHint/refresh",i.messageDirection=t.MessageDirection.serverToClient,i.type=new t.ProtocolRequestType0(i.method)}(r||($i.InlayHintRefreshRequest=r={})),$i}var Fn={},S$;function g7(){if(S$)return Fn;S$=1,Object.defineProperty(Fn,"__esModule",{value:!0}),Fn.DiagnosticRefreshRequest=Fn.WorkspaceDiagnosticRequest=Fn.DocumentDiagnosticRequest=Fn.DocumentDiagnosticReportKind=Fn.DiagnosticServerCancellationData=void 0;const t=Ks(),e=wv(),n=mt();var r;(function(c){function u(l){const d=l;return d&&e.boolean(d.retriggerRequest)}c.is=u})(r||(Fn.DiagnosticServerCancellationData=r={}));var i;(function(c){c.Full="full",c.Unchanged="unchanged"})(i||(Fn.DocumentDiagnosticReportKind=i={}));var s;(function(c){c.method="textDocument/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new t.ProgressType})(s||(Fn.DocumentDiagnosticRequest=s={}));var o;(function(c){c.method="workspace/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new t.ProgressType})(o||(Fn.WorkspaceDiagnosticRequest=o={}));var a;return function(c){c.method="workspace/diagnostic/refresh",c.messageDirection=n.MessageDirection.serverToClient,c.type=new n.ProtocolRequestType0(c.method)}(a||(Fn.DiagnosticRefreshRequest=a={})),Fn}var gt={},k$;function y7(){if(k$)return gt;k$=1,Object.defineProperty(gt,"__esModule",{value:!0}),gt.DidCloseNotebookDocumentNotification=gt.DidSaveNotebookDocumentNotification=gt.DidChangeNotebookDocumentNotification=gt.NotebookCellArrayChange=gt.DidOpenNotebookDocumentNotification=gt.NotebookDocumentSyncRegistrationType=gt.NotebookDocument=gt.NotebookCell=gt.ExecutionSummary=gt.NotebookCellKind=void 0;const t=yv(),e=wv(),n=mt();var r;(function(h){h.Markup=1,h.Code=2;function p(m){return m===1||m===2}h.is=p})(r||(gt.NotebookCellKind=r={}));var i;(function(h){function p(g,w){const E={executionOrder:g};return(w===!0||w===!1)&&(E.success=w),E}h.create=p;function m(g){const w=g;return e.objectLiteral(w)&&t.uinteger.is(w.executionOrder)&&(w.success===void 0||e.boolean(w.success))}h.is=m;function y(g,w){return g===w?!0:g==null||w===null||w===void 0?!1:g.executionOrder===w.executionOrder&&g.success===w.success}h.equals=y})(i||(gt.ExecutionSummary=i={}));var s;(function(h){function p(w,E){return{kind:w,document:E}}h.create=p;function m(w){const E=w;return e.objectLiteral(E)&&r.is(E.kind)&&t.DocumentUri.is(E.document)&&(E.metadata===void 0||e.objectLiteral(E.metadata))}h.is=m;function y(w,E){const k=new Set;return w.document!==E.document&&k.add("document"),w.kind!==E.kind&&k.add("kind"),w.executionSummary!==E.executionSummary&&k.add("executionSummary"),(w.metadata!==void 0||E.metadata!==void 0)&&!g(w.metadata,E.metadata)&&k.add("metadata"),(w.executionSummary!==void 0||E.executionSummary!==void 0)&&!i.equals(w.executionSummary,E.executionSummary)&&k.add("executionSummary"),k}h.diff=y;function g(w,E){if(w===E)return!0;if(w==null||E===null||E===void 0||typeof w!=typeof E||typeof w!="object")return!1;const k=Array.isArray(w),A=Array.isArray(E);if(k!==A)return!1;if(k&&A){if(w.length!==E.length)return!1;for(let I=0;I<w.length;I++)if(!g(w[I],E[I]))return!1}if(e.objectLiteral(w)&&e.objectLiteral(E)){const I=Object.keys(w),x=Object.keys(E);if(I.length!==x.length||(I.sort(),x.sort(),!g(I,x)))return!1;for(let _=0;_<I.length;_++){const P=I[_];if(!g(w[P],E[P]))return!1}}return!0}})(s||(gt.NotebookCell=s={}));var o;(function(h){function p(y,g,w,E){return{uri:y,notebookType:g,version:w,cells:E}}h.create=p;function m(y){const g=y;return e.objectLiteral(g)&&e.string(g.uri)&&t.integer.is(g.version)&&e.typedArray(g.cells,s.is)}h.is=m})(o||(gt.NotebookDocument=o={}));var a;(function(h){h.method="notebookDocument/sync",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.RegistrationType(h.method)})(a||(gt.NotebookDocumentSyncRegistrationType=a={}));var c;(function(h){h.method="notebookDocument/didOpen",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method})(c||(gt.DidOpenNotebookDocumentNotification=c={}));var u;(function(h){function p(y){const g=y;return e.objectLiteral(g)&&t.uinteger.is(g.start)&&t.uinteger.is(g.deleteCount)&&(g.cells===void 0||e.typedArray(g.cells,s.is))}h.is=p;function m(y,g,w){const E={start:y,deleteCount:g};return w!==void 0&&(E.cells=w),E}h.create=m})(u||(gt.NotebookCellArrayChange=u={}));var l;(function(h){h.method="notebookDocument/didChange",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method})(l||(gt.DidChangeNotebookDocumentNotification=l={}));var d;(function(h){h.method="notebookDocument/didSave",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method})(d||(gt.DidSaveNotebookDocumentNotification=d={}));var f;return function(h){h.method="notebookDocument/didClose",h.messageDirection=n.MessageDirection.clientToServer,h.type=new n.ProtocolNotificationType(h.method),h.registrationMethod=a.method}(f||(gt.DidCloseNotebookDocumentNotification=f={})),gt}var hu={},$$;function v7(){if($$)return hu;$$=1,Object.defineProperty(hu,"__esModule",{value:!0}),hu.InlineCompletionRequest=void 0;const t=mt();var e;return function(n){n.method="textDocument/inlineCompletion",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)}(e||(hu.InlineCompletionRequest=e={})),hu}var C$;function w7(){return C$||(C$=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceSymbolRequest=t.CodeActionResolveRequest=t.CodeActionRequest=t.DocumentSymbolRequest=t.DocumentHighlightRequest=t.ReferencesRequest=t.DefinitionRequest=t.SignatureHelpRequest=t.SignatureHelpTriggerKind=t.HoverRequest=t.CompletionResolveRequest=t.CompletionRequest=t.CompletionTriggerKind=t.PublishDiagnosticsNotification=t.WatchKind=t.RelativePattern=t.FileChangeType=t.DidChangeWatchedFilesNotification=t.WillSaveTextDocumentWaitUntilRequest=t.WillSaveTextDocumentNotification=t.TextDocumentSaveReason=t.DidSaveTextDocumentNotification=t.DidCloseTextDocumentNotification=t.DidChangeTextDocumentNotification=t.TextDocumentContentChangeEvent=t.DidOpenTextDocumentNotification=t.TextDocumentSyncKind=t.TelemetryEventNotification=t.LogMessageNotification=t.ShowMessageRequest=t.ShowMessageNotification=t.MessageType=t.DidChangeConfigurationNotification=t.ExitNotification=t.ShutdownRequest=t.InitializedNotification=t.InitializeErrorCodes=t.InitializeRequest=t.WorkDoneProgressOptions=t.TextDocumentRegistrationOptions=t.StaticRegistrationOptions=t.PositionEncodingKind=t.FailureHandlingKind=t.ResourceOperationKind=t.UnregistrationRequest=t.RegistrationRequest=t.DocumentSelector=t.NotebookCellTextDocumentFilter=t.NotebookDocumentFilter=t.TextDocumentFilter=void 0,t.MonikerRequest=t.MonikerKind=t.UniquenessLevel=t.WillDeleteFilesRequest=t.DidDeleteFilesNotification=t.WillRenameFilesRequest=t.DidRenameFilesNotification=t.WillCreateFilesRequest=t.DidCreateFilesNotification=t.FileOperationPatternKind=t.LinkedEditingRangeRequest=t.ShowDocumentRequest=t.SemanticTokensRegistrationType=t.SemanticTokensRefreshRequest=t.SemanticTokensRangeRequest=t.SemanticTokensDeltaRequest=t.SemanticTokensRequest=t.TokenFormat=t.CallHierarchyPrepareRequest=t.CallHierarchyOutgoingCallsRequest=t.CallHierarchyIncomingCallsRequest=t.WorkDoneProgressCancelNotification=t.WorkDoneProgressCreateRequest=t.WorkDoneProgress=t.SelectionRangeRequest=t.DeclarationRequest=t.FoldingRangeRefreshRequest=t.FoldingRangeRequest=t.ColorPresentationRequest=t.DocumentColorRequest=t.ConfigurationRequest=t.DidChangeWorkspaceFoldersNotification=t.WorkspaceFoldersRequest=t.TypeDefinitionRequest=t.ImplementationRequest=t.ApplyWorkspaceEditRequest=t.ExecuteCommandRequest=t.PrepareRenameRequest=t.RenameRequest=t.PrepareSupportDefaultBehavior=t.DocumentOnTypeFormattingRequest=t.DocumentRangesFormattingRequest=t.DocumentRangeFormattingRequest=t.DocumentFormattingRequest=t.DocumentLinkResolveRequest=t.DocumentLinkRequest=t.CodeLensRefreshRequest=t.CodeLensResolveRequest=t.CodeLensRequest=t.WorkspaceSymbolResolveRequest=void 0,t.InlineCompletionRequest=t.DidCloseNotebookDocumentNotification=t.DidSaveNotebookDocumentNotification=t.DidChangeNotebookDocumentNotification=t.NotebookCellArrayChange=t.DidOpenNotebookDocumentNotification=t.NotebookDocumentSyncRegistrationType=t.NotebookDocument=t.NotebookCell=t.ExecutionSummary=t.NotebookCellKind=t.DiagnosticRefreshRequest=t.WorkspaceDiagnosticRequest=t.DocumentDiagnosticRequest=t.DocumentDiagnosticReportKind=t.DiagnosticServerCancellationData=t.InlayHintRefreshRequest=t.InlayHintResolveRequest=t.InlayHintRequest=t.InlineValueRefreshRequest=t.InlineValueRequest=t.TypeHierarchySupertypesRequest=t.TypeHierarchySubtypesRequest=t.TypeHierarchyPrepareRequest=void 0;const e=mt(),n=yv(),r=wv(),i=ZU();Object.defineProperty(t,"ImplementationRequest",{enumerable:!0,get:function(){return i.ImplementationRequest}});const s=QU();Object.defineProperty(t,"TypeDefinitionRequest",{enumerable:!0,get:function(){return s.TypeDefinitionRequest}});const o=e7();Object.defineProperty(t,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return o.WorkspaceFoldersRequest}}),Object.defineProperty(t,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return o.DidChangeWorkspaceFoldersNotification}});const a=t7();Object.defineProperty(t,"ConfigurationRequest",{enumerable:!0,get:function(){return a.ConfigurationRequest}});const c=n7();Object.defineProperty(t,"DocumentColorRequest",{enumerable:!0,get:function(){return c.DocumentColorRequest}}),Object.defineProperty(t,"ColorPresentationRequest",{enumerable:!0,get:function(){return c.ColorPresentationRequest}});const u=r7();Object.defineProperty(t,"FoldingRangeRequest",{enumerable:!0,get:function(){return u.FoldingRangeRequest}}),Object.defineProperty(t,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return u.FoldingRangeRefreshRequest}});const l=i7();Object.defineProperty(t,"DeclarationRequest",{enumerable:!0,get:function(){return l.DeclarationRequest}});const d=s7();Object.defineProperty(t,"SelectionRangeRequest",{enumerable:!0,get:function(){return d.SelectionRangeRequest}});const f=o7();Object.defineProperty(t,"WorkDoneProgress",{enumerable:!0,get:function(){return f.WorkDoneProgress}}),Object.defineProperty(t,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return f.WorkDoneProgressCreateRequest}}),Object.defineProperty(t,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return f.WorkDoneProgressCancelNotification}});const h=a7();Object.defineProperty(t,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return h.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(t,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return h.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(t,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return h.CallHierarchyPrepareRequest}});const p=c7();Object.defineProperty(t,"TokenFormat",{enumerable:!0,get:function(){return p.TokenFormat}}),Object.defineProperty(t,"SemanticTokensRequest",{enumerable:!0,get:function(){return p.SemanticTokensRequest}}),Object.defineProperty(t,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return p.SemanticTokensDeltaRequest}}),Object.defineProperty(t,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return p.SemanticTokensRangeRequest}}),Object.defineProperty(t,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return p.SemanticTokensRefreshRequest}}),Object.defineProperty(t,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return p.SemanticTokensRegistrationType}});const m=u7();Object.defineProperty(t,"ShowDocumentRequest",{enumerable:!0,get:function(){return m.ShowDocumentRequest}});const y=l7();Object.defineProperty(t,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return y.LinkedEditingRangeRequest}});const g=d7();Object.defineProperty(t,"FileOperationPatternKind",{enumerable:!0,get:function(){return g.FileOperationPatternKind}}),Object.defineProperty(t,"DidCreateFilesNotification",{enumerable:!0,get:function(){return g.DidCreateFilesNotification}}),Object.defineProperty(t,"WillCreateFilesRequest",{enumerable:!0,get:function(){return g.WillCreateFilesRequest}}),Object.defineProperty(t,"DidRenameFilesNotification",{enumerable:!0,get:function(){return g.DidRenameFilesNotification}}),Object.defineProperty(t,"WillRenameFilesRequest",{enumerable:!0,get:function(){return g.WillRenameFilesRequest}}),Object.defineProperty(t,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return g.DidDeleteFilesNotification}}),Object.defineProperty(t,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return g.WillDeleteFilesRequest}});const w=f7();Object.defineProperty(t,"UniquenessLevel",{enumerable:!0,get:function(){return w.UniquenessLevel}}),Object.defineProperty(t,"MonikerKind",{enumerable:!0,get:function(){return w.MonikerKind}}),Object.defineProperty(t,"MonikerRequest",{enumerable:!0,get:function(){return w.MonikerRequest}});const E=h7();Object.defineProperty(t,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return E.TypeHierarchyPrepareRequest}}),Object.defineProperty(t,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return E.TypeHierarchySubtypesRequest}}),Object.defineProperty(t,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return E.TypeHierarchySupertypesRequest}});const k=p7();Object.defineProperty(t,"InlineValueRequest",{enumerable:!0,get:function(){return k.InlineValueRequest}}),Object.defineProperty(t,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return k.InlineValueRefreshRequest}});const A=m7();Object.defineProperty(t,"InlayHintRequest",{enumerable:!0,get:function(){return A.InlayHintRequest}}),Object.defineProperty(t,"InlayHintResolveRequest",{enumerable:!0,get:function(){return A.InlayHintResolveRequest}}),Object.defineProperty(t,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return A.InlayHintRefreshRequest}});const I=g7();Object.defineProperty(t,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return I.DiagnosticServerCancellationData}}),Object.defineProperty(t,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return I.DocumentDiagnosticReportKind}}),Object.defineProperty(t,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return I.DocumentDiagnosticRequest}}),Object.defineProperty(t,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return I.WorkspaceDiagnosticRequest}}),Object.defineProperty(t,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return I.DiagnosticRefreshRequest}});const x=y7();Object.defineProperty(t,"NotebookCellKind",{enumerable:!0,get:function(){return x.NotebookCellKind}}),Object.defineProperty(t,"ExecutionSummary",{enumerable:!0,get:function(){return x.ExecutionSummary}}),Object.defineProperty(t,"NotebookCell",{enumerable:!0,get:function(){return x.NotebookCell}}),Object.defineProperty(t,"NotebookDocument",{enumerable:!0,get:function(){return x.NotebookDocument}}),Object.defineProperty(t,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return x.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(t,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidOpenNotebookDocumentNotification}}),Object.defineProperty(t,"NotebookCellArrayChange",{enumerable:!0,get:function(){return x.NotebookCellArrayChange}}),Object.defineProperty(t,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidChangeNotebookDocumentNotification}}),Object.defineProperty(t,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidSaveNotebookDocumentNotification}}),Object.defineProperty(t,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return x.DidCloseNotebookDocumentNotification}});const _=v7();Object.defineProperty(t,"InlineCompletionRequest",{enumerable:!0,get:function(){return _.InlineCompletionRequest}});var P;(function(v){function $(b){const F=b;return r.string(F)||r.string(F.language)||r.string(F.scheme)||r.string(F.pattern)}v.is=$})(P||(t.TextDocumentFilter=P={}));var O;(function(v){function $(b){const F=b;return r.objectLiteral(F)&&(r.string(F.notebookType)||r.string(F.scheme)||r.string(F.pattern))}v.is=$})(O||(t.NotebookDocumentFilter=O={}));var C;(function(v){function $(b){const F=b;return r.objectLiteral(F)&&(r.string(F.notebook)||O.is(F.notebook))&&(F.language===void 0||r.string(F.language))}v.is=$})(C||(t.NotebookCellTextDocumentFilter=C={}));var D;(function(v){function $(b){if(!Array.isArray(b))return!1;for(let F of b)if(!r.string(F)&&!P.is(F)&&!C.is(F))return!1;return!0}v.is=$})(D||(t.DocumentSelector=D={}));var R;(function(v){v.method="client/registerCapability",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolRequestType(v.method)})(R||(t.RegistrationRequest=R={}));var L;(function(v){v.method="client/unregisterCapability",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolRequestType(v.method)})(L||(t.UnregistrationRequest=L={}));var W;(function(v){v.Create="create",v.Rename="rename",v.Delete="delete"})(W||(t.ResourceOperationKind=W={}));var V;(function(v){v.Abort="abort",v.Transactional="transactional",v.TextOnlyTransactional="textOnlyTransactional",v.Undo="undo"})(V||(t.FailureHandlingKind=V={}));var Z;(function(v){v.UTF8="utf-8",v.UTF16="utf-16",v.UTF32="utf-32"})(Z||(t.PositionEncodingKind=Z={}));var Fe;(function(v){function $(b){const F=b;return F&&r.string(F.id)&&F.id.length>0}v.hasId=$})(Fe||(t.StaticRegistrationOptions=Fe={}));var se;(function(v){function $(b){const F=b;return F&&(F.documentSelector===null||D.is(F.documentSelector))}v.is=$})(se||(t.TextDocumentRegistrationOptions=se={}));var K;(function(v){function $(F){const S=F;return r.objectLiteral(S)&&(S.workDoneProgress===void 0||r.boolean(S.workDoneProgress))}v.is=$;function b(F){const S=F;return S&&r.boolean(S.workDoneProgress)}v.hasWorkDoneProgress=b})(K||(t.WorkDoneProgressOptions=K={}));var Te;(function(v){v.method="initialize",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Te||(t.InitializeRequest=Te={}));var ut;(function(v){v.unknownProtocolVersion=1})(ut||(t.InitializeErrorCodes=ut={}));var H;(function(v){v.method="initialized",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(H||(t.InitializedNotification=H={}));var Y;(function(v){v.method="shutdown",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType0(v.method)})(Y||(t.ShutdownRequest=Y={}));var ee;(function(v){v.method="exit",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType0(v.method)})(ee||(t.ExitNotification=ee={}));var ne;(function(v){v.method="workspace/didChangeConfiguration",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(ne||(t.DidChangeConfigurationNotification=ne={}));var fe;(function(v){v.Error=1,v.Warning=2,v.Info=3,v.Log=4,v.Debug=5})(fe||(t.MessageType=fe={}));var Ee;(function(v){v.method="window/showMessage",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolNotificationType(v.method)})(Ee||(t.ShowMessageNotification=Ee={}));var ge;(function(v){v.method="window/showMessageRequest",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolRequestType(v.method)})(ge||(t.ShowMessageRequest=ge={}));var ce;(function(v){v.method="window/logMessage",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolNotificationType(v.method)})(ce||(t.LogMessageNotification=ce={}));var M;(function(v){v.method="telemetry/event",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolNotificationType(v.method)})(M||(t.TelemetryEventNotification=M={}));var U;(function(v){v.None=0,v.Full=1,v.Incremental=2})(U||(t.TextDocumentSyncKind=U={}));var oe;(function(v){v.method="textDocument/didOpen",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(oe||(t.DidOpenTextDocumentNotification=oe={}));var G;(function(v){function $(F){let S=F;return S!=null&&typeof S.text=="string"&&S.range!==void 0&&(S.rangeLength===void 0||typeof S.rangeLength=="number")}v.isIncremental=$;function b(F){let S=F;return S!=null&&typeof S.text=="string"&&S.range===void 0&&S.rangeLength===void 0}v.isFull=b})(G||(t.TextDocumentContentChangeEvent=G={}));var Le;(function(v){v.method="textDocument/didChange",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(Le||(t.DidChangeTextDocumentNotification=Le={}));var yt;(function(v){v.method="textDocument/didClose",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(yt||(t.DidCloseTextDocumentNotification=yt={}));var mn;(function(v){v.method="textDocument/didSave",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(mn||(t.DidSaveTextDocumentNotification=mn={}));var tr;(function(v){v.Manual=1,v.AfterDelay=2,v.FocusOut=3})(tr||(t.TextDocumentSaveReason=tr={}));var nr;(function(v){v.method="textDocument/willSave",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(nr||(t.WillSaveTextDocumentNotification=nr={}));var rr;(function(v){v.method="textDocument/willSaveWaitUntil",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(rr||(t.WillSaveTextDocumentWaitUntilRequest=rr={}));var qt;(function(v){v.method="workspace/didChangeWatchedFiles",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolNotificationType(v.method)})(qt||(t.DidChangeWatchedFilesNotification=qt={}));var _n;(function(v){v.Created=1,v.Changed=2,v.Deleted=3})(_n||(t.FileChangeType=_n={}));var Yr;(function(v){function $(b){const F=b;return r.objectLiteral(F)&&(n.URI.is(F.baseUri)||n.WorkspaceFolder.is(F.baseUri))&&r.string(F.pattern)}v.is=$})(Yr||(t.RelativePattern=Yr={}));var zn;(function(v){v.Create=1,v.Change=2,v.Delete=4})(zn||(t.WatchKind=zn={}));var gn;(function(v){v.method="textDocument/publishDiagnostics",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolNotificationType(v.method)})(gn||(t.PublishDiagnosticsNotification=gn={}));var Bn;(function(v){v.Invoked=1,v.TriggerCharacter=2,v.TriggerForIncompleteCompletions=3})(Bn||(t.CompletionTriggerKind=Bn={}));var tn;(function(v){v.method="textDocument/completion",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(tn||(t.CompletionRequest=tn={}));var X;(function(v){v.method="completionItem/resolve",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(X||(t.CompletionResolveRequest=X={}));var J;(function(v){v.method="textDocument/hover",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(J||(t.HoverRequest=J={}));var le;(function(v){v.Invoked=1,v.TriggerCharacter=2,v.ContentChange=3})(le||(t.SignatureHelpTriggerKind=le={}));var jt;(function(v){v.method="textDocument/signatureHelp",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(jt||(t.SignatureHelpRequest=jt={}));var Lt;(function(v){v.method="textDocument/definition",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Lt||(t.DefinitionRequest=Lt={}));var Rr;(function(v){v.method="textDocument/references",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Rr||(t.ReferencesRequest=Rr={}));var Ai;(function(v){v.method="textDocument/documentHighlight",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Ai||(t.DocumentHighlightRequest=Ai={}));var fs;(function(v){v.method="textDocument/documentSymbol",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(fs||(t.DocumentSymbolRequest=fs={}));var hs;(function(v){v.method="textDocument/codeAction",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(hs||(t.CodeActionRequest=hs={}));var ps;(function(v){v.method="codeAction/resolve",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(ps||(t.CodeActionResolveRequest=ps={}));var ms;(function(v){v.method="workspace/symbol",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(ms||(t.WorkspaceSymbolRequest=ms={}));var xi;(function(v){v.method="workspaceSymbol/resolve",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(xi||(t.WorkspaceSymbolResolveRequest=xi={}));var Ii;(function(v){v.method="textDocument/codeLens",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Ii||(t.CodeLensRequest=Ii={}));var yn;(function(v){v.method="codeLens/resolve",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(yn||(t.CodeLensResolveRequest=yn={}));var gs;(function(v){v.method="workspace/codeLens/refresh",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolRequestType0(v.method)})(gs||(t.CodeLensRefreshRequest=gs={}));var ys;(function(v){v.method="textDocument/documentLink",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(ys||(t.DocumentLinkRequest=ys={}));var Sr;(function(v){v.method="documentLink/resolve",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Sr||(t.DocumentLinkResolveRequest=Sr={}));var vs;(function(v){v.method="textDocument/formatting",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(vs||(t.DocumentFormattingRequest=vs={}));var Xr;(function(v){v.method="textDocument/rangeFormatting",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Xr||(t.DocumentRangeFormattingRequest=Xr={}));var ws;(function(v){v.method="textDocument/rangesFormatting",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(ws||(t.DocumentRangesFormattingRequest=ws={}));var qn;(function(v){v.method="textDocument/onTypeFormatting",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(qn||(t.DocumentOnTypeFormattingRequest=qn={}));var ir;(function(v){v.Identifier=1})(ir||(t.PrepareSupportDefaultBehavior=ir={}));var Eo;(function(v){v.method="textDocument/rename",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(Eo||(t.RenameRequest=Eo={}));var z;(function(v){v.method="textDocument/prepareRename",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(z||(t.PrepareRenameRequest=z={}));var T;(function(v){v.method="workspace/executeCommand",v.messageDirection=e.MessageDirection.clientToServer,v.type=new e.ProtocolRequestType(v.method)})(T||(t.ExecuteCommandRequest=T={}));var N;(function(v){v.method="workspace/applyEdit",v.messageDirection=e.MessageDirection.serverToClient,v.type=new e.ProtocolRequestType("workspace/applyEdit")})(N||(t.ApplyWorkspaceEditRequest=N={}))}(vv)),vv}var pu={},_$;function b7(){if(_$)return pu;_$=1,Object.defineProperty(pu,"__esModule",{value:!0}),pu.createProtocolConnection=void 0;const t=Ks();function e(n,r,i,s){return t.ConnectionStrategy.is(s)&&(s={connectionStrategy:s}),(0,t.createMessageConnection)(n,r,i,s)}return pu.createProtocolConnection=e,pu}var A$;function E7(){return A$||(A$=1,function(t){var e=Ys&&Ys.__createBinding||(Object.create?function(s,o,a,c){c===void 0&&(c=a);var u=Object.getOwnPropertyDescriptor(o,a);(!u||("get"in u?!o.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(s,c,u)}:function(s,o,a,c){c===void 0&&(c=a),s[c]=o[a]}),n=Ys&&Ys.__exportStar||function(s,o){for(var a in s)a!=="default"&&!Object.prototype.hasOwnProperty.call(o,a)&&e(o,s,a)};Object.defineProperty(t,"__esModule",{value:!0}),t.LSPErrorCodes=t.createProtocolConnection=void 0,n(Ks(),t),n(yv(),t),n(mt(),t),n(w7(),t);var r=b7();Object.defineProperty(t,"createProtocolConnection",{enumerable:!0,get:function(){return r.createProtocolConnection}});var i;(function(s){s.lspReservedErrorRangeStart=-32899,s.RequestFailed=-32803,s.ServerCancelled=-32802,s.ContentModified=-32801,s.RequestCancelled=-32800,s.lspReservedErrorRangeEnd=-32800})(i||(t.LSPErrorCodes=i={}))}(Ys)),Ys}var x$;function St(){return x$||(x$=1,function(t){var e=Ws&&Ws.__createBinding||(Object.create?function(s,o,a,c){c===void 0&&(c=a);var u=Object.getOwnPropertyDescriptor(o,a);(!u||("get"in u?!o.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(s,c,u)}:function(s,o,a,c){c===void 0&&(c=a),s[c]=o[a]}),n=Ws&&Ws.__exportStar||function(s,o){for(var a in s)a!=="default"&&!Object.prototype.hasOwnProperty.call(o,a)&&e(o,s,a)};Object.defineProperty(t,"__esModule",{value:!0}),t.createProtocolConnection=void 0;const r=n$();n(n$(),t),n(E7(),t);function i(s,o,a,c){return(0,r.createMessageConnection)(s,o,a,c)}t.createProtocolConnection=i}(Ws)),Ws}var Ln={},I$;function P$(){if(I$)return Ln;I$=1,Object.defineProperty(Ln,"__esModule",{value:!0}),Ln.generateUuid=Ln.parse=Ln.isUUID=Ln.v4=Ln.empty=void 0;class t{constructor(c){this._value=c}asHex(){return this._value}equals(c){return this.asHex()===c.asHex()}}class e extends t{static _oneOf(c){return c[Math.floor(c.length*Math.random())]}static _randomHex(){return e._oneOf(e._chars)}constructor(){super([e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),"-","4",e._randomHex(),e._randomHex(),e._randomHex(),"-",e._oneOf(e._timeHighBits),e._randomHex(),e._randomHex(),e._randomHex(),"-",e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex(),e._randomHex()].join(""))}}e._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"],e._timeHighBits=["8","9","a","b"],Ln.empty=new t("00000000-0000-0000-0000-000000000000");function n(){return new e}Ln.v4=n;const r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function i(a){return r.test(a)}Ln.isUUID=i;function s(a){if(!i(a))throw new Error("invalid uuid");return new t(a)}Ln.parse=s;function o(){return n().asHex()}return Ln.generateUuid=o,Ln}var Ci={},N$;function D7(){if(N$)return Ci;N$=1,Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.attachPartialResult=Ci.ProgressFeature=Ci.attachWorkDone=void 0;const t=St(),e=P$();class n{constructor(f,h){this._connection=f,this._token=h,n.Instances.set(this._token,this)}begin(f,h,p,m){let y={kind:"begin",title:f,percentage:h,message:p,cancellable:m};this._connection.sendProgress(t.WorkDoneProgress.type,this._token,y)}report(f,h){let p={kind:"report"};typeof f=="number"?(p.percentage=f,h!==void 0&&(p.message=h)):p.message=f,this._connection.sendProgress(t.WorkDoneProgress.type,this._token,p)}done(){n.Instances.delete(this._token),this._connection.sendProgress(t.WorkDoneProgress.type,this._token,{kind:"end"})}}n.Instances=new Map;class r extends n{constructor(f,h){super(f,h),this._source=new t.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}}class i{constructor(){}begin(){}report(){}done(){}}class s extends i{constructor(){super(),this._source=new t.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}}function o(d,f){if(f===void 0||f.workDoneToken===void 0)return new i;const h=f.workDoneToken;return delete f.workDoneToken,new n(d,h)}Ci.attachWorkDone=o;const a=d=>class extends d{constructor(){super(),this._progressSupported=!1}initialize(f){super.initialize(f),f?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(t.WorkDoneProgressCancelNotification.type,h=>{let p=n.Instances.get(h.token);(p instanceof r||p instanceof s)&&p.cancel()}))}attachWorkDoneProgress(f){return f===void 0?new i:new n(this.connection,f)}createWorkDoneProgress(){if(this._progressSupported){const f=(0,e.generateUuid)();return this.connection.sendRequest(t.WorkDoneProgressCreateRequest.type,{token:f}).then(()=>new r(this.connection,f))}else return Promise.resolve(new s)}};Ci.ProgressFeature=a;var c;(function(d){d.type=new t.ProgressType})(c||(c={}));class u{constructor(f,h){this._connection=f,this._token=h}report(f){this._connection.sendProgress(c.type,this._token,f)}}function l(d,f){if(f===void 0||f.partialResultToken===void 0)return;const h=f.partialResultToken;return delete f.partialResultToken,new u(d,h)}return Ci.attachPartialResult=l,Ci}var mu={},O$;function T7(){if(O$)return mu;O$=1,Object.defineProperty(mu,"__esModule",{value:!0}),mu.ConfigurationFeature=void 0;const t=St(),e=fv(),n=r=>class extends r{getConfiguration(i){return i?e.string(i)?this._getConfiguration({section:i}):this._getConfiguration(i):this._getConfiguration({})}_getConfiguration(i){let s={items:Array.isArray(i)?i:[i]};return this.connection.sendRequest(t.ConfigurationRequest.type,s).then(o=>Array.isArray(o)?Array.isArray(i)?o:o[0]:Array.isArray(i)?[]:null)}};return mu.ConfigurationFeature=n,mu}var gu={},F$;function R7(){if(F$)return gu;F$=1,Object.defineProperty(gu,"__esModule",{value:!0}),gu.WorkspaceFoldersFeature=void 0;const t=St(),e=n=>class extends n{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(r){super.initialize(r);let i=r.workspace;i&&i.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new t.Emitter,this.connection.onNotification(t.DidChangeWorkspaceFoldersNotification.type,s=>{this._onDidChangeWorkspaceFolders.fire(s.event)}))}fillServerCapabilities(r){super.fillServerCapabilities(r);const i=r.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=i===!0||typeof i=="string"}getWorkspaceFolders(){return this.connection.sendRequest(t.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(t.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};return gu.WorkspaceFoldersFeature=e,gu}var yu={},L$;function S7(){if(L$)return yu;L$=1,Object.defineProperty(yu,"__esModule",{value:!0}),yu.CallHierarchyFeature=void 0;const t=St(),e=n=>class extends n{get callHierarchy(){return{onPrepare:r=>this.connection.onRequest(t.CallHierarchyPrepareRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),void 0)),onIncomingCalls:r=>{const i=t.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))},onOutgoingCalls:r=>{const i=t.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return yu.CallHierarchyFeature=e,yu}var _i={},M$;function z$(){if(M$)return _i;M$=1,Object.defineProperty(_i,"__esModule",{value:!0}),_i.SemanticTokensBuilder=_i.SemanticTokensDiff=_i.SemanticTokensFeature=void 0;const t=St(),e=i=>class extends i{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(t.SemanticTokensRefreshRequest.type),on:s=>{const o=t.SemanticTokensRequest.type;return this.connection.onRequest(o,(a,c)=>s(a,c,this.attachWorkDoneProgress(a),this.attachPartialResultProgress(o,a)))},onDelta:s=>{const o=t.SemanticTokensDeltaRequest.type;return this.connection.onRequest(o,(a,c)=>s(a,c,this.attachWorkDoneProgress(a),this.attachPartialResultProgress(o,a)))},onRange:s=>{const o=t.SemanticTokensRangeRequest.type;return this.connection.onRequest(o,(a,c)=>s(a,c,this.attachWorkDoneProgress(a),this.attachPartialResultProgress(o,a)))}}}};_i.SemanticTokensFeature=e;class n{constructor(s,o){this.originalSequence=s,this.modifiedSequence=o}computeDiff(){const s=this.originalSequence.length,o=this.modifiedSequence.length;let a=0;for(;a<o&&a<s&&this.originalSequence[a]===this.modifiedSequence[a];)a++;if(a<o&&a<s){let c=s-1,u=o-1;for(;c>=a&&u>=a&&this.originalSequence[c]===this.modifiedSequence[u];)c--,u--;(c<a||u<a)&&(c++,u++);const l=c-a+1,d=this.modifiedSequence.slice(a,u+1);return d.length===1&&d[0]===this.originalSequence[c]?[{start:a,deleteCount:l-1}]:[{start:a,deleteCount:l,data:d}]}else return a<o?[{start:a,deleteCount:0,data:this.modifiedSequence.slice(a)}]:a<s?[{start:a,deleteCount:s-a}]:[]}}_i.SemanticTokensDiff=n;class r{constructor(){this._prevData=void 0,this.initialize()}initialize(){this._id=Date.now(),this._prevLine=0,this._prevChar=0,this._data=[],this._dataLen=0}push(s,o,a,c,u){let l=s,d=o;this._dataLen>0&&(l-=this._prevLine,l===0&&(d-=this._prevChar)),this._data[this._dataLen++]=l,this._data[this._dataLen++]=d,this._data[this._dataLen++]=a,this._data[this._dataLen++]=c,this._data[this._dataLen++]=u,this._prevLine=s,this._prevChar=o}get id(){return this._id.toString()}previousResult(s){this.id===s&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new n(this._prevData,this._data).computeDiff()}:this.build()}}return _i.SemanticTokensBuilder=r,_i}var vu={},B$;function k7(){if(B$)return vu;B$=1,Object.defineProperty(vu,"__esModule",{value:!0}),vu.ShowDocumentFeature=void 0;const t=St(),e=n=>class extends n{showDocument(r){return this.connection.sendRequest(t.ShowDocumentRequest.type,r)}};return vu.ShowDocumentFeature=e,vu}var wu={},q$;function $7(){if(q$)return wu;q$=1,Object.defineProperty(wu,"__esModule",{value:!0}),wu.FileOperationsFeature=void 0;const t=St(),e=n=>class extends n{onDidCreateFiles(r){return this.connection.onNotification(t.DidCreateFilesNotification.type,i=>{r(i)})}onDidRenameFiles(r){return this.connection.onNotification(t.DidRenameFilesNotification.type,i=>{r(i)})}onDidDeleteFiles(r){return this.connection.onNotification(t.DidDeleteFilesNotification.type,i=>{r(i)})}onWillCreateFiles(r){return this.connection.onRequest(t.WillCreateFilesRequest.type,(i,s)=>r(i,s))}onWillRenameFiles(r){return this.connection.onRequest(t.WillRenameFilesRequest.type,(i,s)=>r(i,s))}onWillDeleteFiles(r){return this.connection.onRequest(t.WillDeleteFilesRequest.type,(i,s)=>r(i,s))}};return wu.FileOperationsFeature=e,wu}var bu={},j$;function C7(){if(j$)return bu;j$=1,Object.defineProperty(bu,"__esModule",{value:!0}),bu.LinkedEditingRangeFeature=void 0;const t=St(),e=n=>class extends n{onLinkedEditingRange(r){return this.connection.onRequest(t.LinkedEditingRangeRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),void 0))}};return bu.LinkedEditingRangeFeature=e,bu}var Eu={},U$;function _7(){if(U$)return Eu;U$=1,Object.defineProperty(Eu,"__esModule",{value:!0}),Eu.TypeHierarchyFeature=void 0;const t=St(),e=n=>class extends n{get typeHierarchy(){return{onPrepare:r=>this.connection.onRequest(t.TypeHierarchyPrepareRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),void 0)),onSupertypes:r=>{const i=t.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))},onSubtypes:r=>{const i=t.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return Eu.TypeHierarchyFeature=e,Eu}var Du={},G$;function A7(){if(G$)return Du;G$=1,Object.defineProperty(Du,"__esModule",{value:!0}),Du.InlineValueFeature=void 0;const t=St(),e=n=>class extends n{get inlineValue(){return{refresh:()=>this.connection.sendRequest(t.InlineValueRefreshRequest.type),on:r=>this.connection.onRequest(t.InlineValueRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i)))}}};return Du.InlineValueFeature=e,Du}var Tu={},W$;function x7(){if(W$)return Tu;W$=1,Object.defineProperty(Tu,"__esModule",{value:!0}),Tu.FoldingRangeFeature=void 0;const t=St(),e=n=>class extends n{get foldingRange(){return{refresh:()=>this.connection.sendRequest(t.FoldingRangeRefreshRequest.type),on:r=>{const i=t.FoldingRangeRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return Tu.FoldingRangeFeature=e,Tu}var Ru={},H$;function I7(){if(H$)return Ru;H$=1,Object.defineProperty(Ru,"__esModule",{value:!0}),Ru.InlayHintFeature=void 0;const t=St(),e=n=>class extends n{get inlayHint(){return{refresh:()=>this.connection.sendRequest(t.InlayHintRefreshRequest.type),on:r=>this.connection.onRequest(t.InlayHintRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i))),resolve:r=>this.connection.onRequest(t.InlayHintResolveRequest.type,(i,s)=>r(i,s))}}};return Ru.InlayHintFeature=e,Ru}var Su={},V$;function P7(){if(V$)return Su;V$=1,Object.defineProperty(Su,"__esModule",{value:!0}),Su.DiagnosticFeature=void 0;const t=St(),e=n=>class extends n{get diagnostics(){return{refresh:()=>this.connection.sendRequest(t.DiagnosticRefreshRequest.type),on:r=>this.connection.onRequest(t.DocumentDiagnosticRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t.DocumentDiagnosticRequest.partialResult,i))),onWorkspace:r=>this.connection.onRequest(t.WorkspaceDiagnosticRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t.WorkspaceDiagnosticRequest.partialResult,i)))}}};return Su.DiagnosticFeature=e,Su}var eo={},ku={},K$;function Y$(){if(K$)return ku;K$=1,Object.defineProperty(ku,"__esModule",{value:!0}),ku.TextDocuments=void 0;const t=St();class e{constructor(r){this._configuration=r,this._syncedDocuments=new Map,this._onDidChangeContent=new t.Emitter,this._onDidOpen=new t.Emitter,this._onDidClose=new t.Emitter,this._onDidSave=new t.Emitter,this._onWillSave=new t.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(r){this._willSaveWaitUntil=r}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(r){return this._syncedDocuments.get(r)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(r){r.__textDocumentSync=t.TextDocumentSyncKind.Incremental;const i=[];return i.push(r.onDidOpenTextDocument(s=>{const o=s.textDocument,a=this._configuration.create(o.uri,o.languageId,o.version,o.text);this._syncedDocuments.set(o.uri,a);const c=Object.freeze({document:a});this._onDidOpen.fire(c),this._onDidChangeContent.fire(c)})),i.push(r.onDidChangeTextDocument(s=>{const o=s.textDocument,a=s.contentChanges;if(a.length===0)return;const{version:c}=o;if(c==null)throw new Error(`Received document change event for ${o.uri} without valid version identifier`);let u=this._syncedDocuments.get(o.uri);u!==void 0&&(u=this._configuration.update(u,a,c),this._syncedDocuments.set(o.uri,u),this._onDidChangeContent.fire(Object.freeze({document:u})))})),i.push(r.onDidCloseTextDocument(s=>{let o=this._syncedDocuments.get(s.textDocument.uri);o!==void 0&&(this._syncedDocuments.delete(s.textDocument.uri),this._onDidClose.fire(Object.freeze({document:o})))})),i.push(r.onWillSaveTextDocument(s=>{let o=this._syncedDocuments.get(s.textDocument.uri);o!==void 0&&this._onWillSave.fire(Object.freeze({document:o,reason:s.reason}))})),i.push(r.onWillSaveTextDocumentWaitUntil((s,o)=>{let a=this._syncedDocuments.get(s.textDocument.uri);return a!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:a,reason:s.reason}),o):[]})),i.push(r.onDidSaveTextDocument(s=>{let o=this._syncedDocuments.get(s.textDocument.uri);o!==void 0&&this._onDidSave.fire(Object.freeze({document:o}))})),t.Disposable.create(()=>{i.forEach(s=>s.dispose())})}}return ku.TextDocuments=e,ku}var X$;function J$(){if(X$)return eo;X$=1,Object.defineProperty(eo,"__esModule",{value:!0}),eo.NotebookDocuments=eo.NotebookSyncFeature=void 0;const t=St(),e=Y$(),n=s=>class extends s{get synchronization(){return{onDidOpenNotebookDocument:o=>this.connection.onNotification(t.DidOpenNotebookDocumentNotification.type,a=>{o(a)}),onDidChangeNotebookDocument:o=>this.connection.onNotification(t.DidChangeNotebookDocumentNotification.type,a=>{o(a)}),onDidSaveNotebookDocument:o=>this.connection.onNotification(t.DidSaveNotebookDocumentNotification.type,a=>{o(a)}),onDidCloseNotebookDocument:o=>this.connection.onNotification(t.DidCloseNotebookDocumentNotification.type,a=>{o(a)})}}};eo.NotebookSyncFeature=n;class r{onDidOpenTextDocument(o){return this.openHandler=o,t.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(o){this.openHandler&&this.openHandler(o)}onDidChangeTextDocument(o){return this.changeHandler=o,t.Disposable.create(()=>{this.changeHandler=o})}changeTextDocument(o){this.changeHandler&&this.changeHandler(o)}onDidCloseTextDocument(o){return this.closeHandler=o,t.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(o){this.closeHandler&&this.closeHandler(o)}onWillSaveTextDocument(){return r.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return r.NULL_DISPOSE}onDidSaveTextDocument(){return r.NULL_DISPOSE}}r.NULL_DISPOSE=Object.freeze({dispose:()=>{}});class i{constructor(o){o instanceof e.TextDocuments?this._cellTextDocuments=o:this._cellTextDocuments=new e.TextDocuments(o),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new t.Emitter,this._onDidChange=new t.Emitter,this._onDidSave=new t.Emitter,this._onDidClose=new t.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(o){return this._cellTextDocuments.get(o.document)}getNotebookDocument(o){return this.notebookDocuments.get(o)}getNotebookCell(o){const a=this.notebookCellMap.get(o);return a&&a[0]}findNotebookDocumentForCell(o){const a=typeof o=="string"?o:o.document,c=this.notebookCellMap.get(a);return c&&c[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(o){const a=new r,c=[];return c.push(this.cellTextDocuments.listen(a)),c.push(o.notebooks.synchronization.onDidOpenNotebookDocument(u=>{this.notebookDocuments.set(u.notebookDocument.uri,u.notebookDocument);for(const l of u.cellTextDocuments)a.openTextDocument({textDocument:l});this.updateCellMap(u.notebookDocument),this._onDidOpen.fire(u.notebookDocument)})),c.push(o.notebooks.synchronization.onDidChangeNotebookDocument(u=>{const l=this.notebookDocuments.get(u.notebookDocument.uri);if(l===void 0)return;l.version=u.notebookDocument.version;const d=l.metadata;let f=!1;const h=u.change;h.metadata!==void 0&&(f=!0,l.metadata=h.metadata);const p=[],m=[],y=[],g=[];if(h.cells!==void 0){const I=h.cells;if(I.structure!==void 0){const x=I.structure.array;if(l.cells.splice(x.start,x.deleteCount,...x.cells!==void 0?x.cells:[]),I.structure.didOpen!==void 0)for(const _ of I.structure.didOpen)a.openTextDocument({textDocument:_}),p.push(_.uri);if(I.structure.didClose)for(const _ of I.structure.didClose)a.closeTextDocument({textDocument:_}),m.push(_.uri)}if(I.data!==void 0){const x=new Map(I.data.map(_=>[_.document,_]));for(let _=0;_<=l.cells.length;_++){const P=x.get(l.cells[_].document);if(P!==void 0){const O=l.cells.splice(_,1,P);if(y.push({old:O[0],new:P}),x.delete(P.document),x.size===0)break}}}if(I.textContent!==void 0)for(const x of I.textContent)a.changeTextDocument({textDocument:x.document,contentChanges:x.changes}),g.push(x.document.uri)}this.updateCellMap(l);const w={notebookDocument:l};f&&(w.metadata={old:d,new:l.metadata});const E=[];for(const I of p)E.push(this.getNotebookCell(I));const k=[];for(const I of m)k.push(this.getNotebookCell(I));const A=[];for(const I of g)A.push(this.getNotebookCell(I));(E.length>0||k.length>0||y.length>0||A.length>0)&&(w.cells={added:E,removed:k,changed:{data:y,textContent:A}}),(w.metadata!==void 0||w.cells!==void 0)&&this._onDidChange.fire(w)})),c.push(o.notebooks.synchronization.onDidSaveNotebookDocument(u=>{const l=this.notebookDocuments.get(u.notebookDocument.uri);l!==void 0&&this._onDidSave.fire(l)})),c.push(o.notebooks.synchronization.onDidCloseNotebookDocument(u=>{const l=this.notebookDocuments.get(u.notebookDocument.uri);if(l!==void 0){this._onDidClose.fire(l);for(const d of u.cellTextDocuments)a.closeTextDocument({textDocument:d});this.notebookDocuments.delete(u.notebookDocument.uri);for(const d of l.cells)this.notebookCellMap.delete(d.document)}})),t.Disposable.create(()=>{c.forEach(u=>u.dispose())})}updateCellMap(o){for(const a of o.cells)this.notebookCellMap.set(a.document,[a,o])}}return eo.NotebookDocuments=i,eo}var $u={},Z$;function N7(){if(Z$)return $u;Z$=1,Object.defineProperty($u,"__esModule",{value:!0}),$u.MonikerFeature=void 0;const t=St(),e=n=>class extends n{get moniker(){return{on:r=>{const i=t.MonikerRequest.type;return this.connection.onRequest(i,(s,o)=>r(s,o,this.attachWorkDoneProgress(s),this.attachPartialResultProgress(i,s)))}}}};return $u.MonikerFeature=e,$u}var Q$;function eC(){if(Q$)return qe;Q$=1,Object.defineProperty(qe,"__esModule",{value:!0}),qe.createConnection=qe.combineFeatures=qe.combineNotebooksFeatures=qe.combineLanguagesFeatures=qe.combineWorkspaceFeatures=qe.combineWindowFeatures=qe.combineClientFeatures=qe.combineTracerFeatures=qe.combineTelemetryFeatures=qe.combineConsoleFeatures=qe._NotebooksImpl=qe._LanguagesImpl=qe.BulkUnregistration=qe.BulkRegistration=qe.ErrorMessageTracker=void 0;const t=St(),e=fv(),n=P$(),r=D7(),i=T7(),s=R7(),o=S7(),a=z$(),c=k7(),u=$7(),l=C7(),d=_7(),f=A7(),h=x7(),p=I7(),m=P7(),y=J$(),g=N7();function w(ce){if(ce!==null)return ce}class E{constructor(){this._messages=Object.create(null)}add(M){let U=this._messages[M];U||(U=0),U++,this._messages[M]=U}sendErrors(M){Object.keys(this._messages).forEach(U=>{M.window.showErrorMessage(U)})}}qe.ErrorMessageTracker=E;class k{constructor(){}rawAttach(M){this._rawConnection=M}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(M){}initialize(M){}error(M){this.send(t.MessageType.Error,M)}warn(M){this.send(t.MessageType.Warning,M)}info(M){this.send(t.MessageType.Info,M)}log(M){this.send(t.MessageType.Log,M)}debug(M){this.send(t.MessageType.Debug,M)}send(M,U){this._rawConnection&&this._rawConnection.sendNotification(t.LogMessageNotification.type,{type:M,message:U}).catch(()=>{(0,t.RAL)().console.error("Sending log message failed")})}}class A{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}showErrorMessage(M,...U){let oe={type:t.MessageType.Error,message:M,actions:U};return this.connection.sendRequest(t.ShowMessageRequest.type,oe).then(w)}showWarningMessage(M,...U){let oe={type:t.MessageType.Warning,message:M,actions:U};return this.connection.sendRequest(t.ShowMessageRequest.type,oe).then(w)}showInformationMessage(M,...U){let oe={type:t.MessageType.Info,message:M,actions:U};return this.connection.sendRequest(t.ShowMessageRequest.type,oe).then(w)}}const I=(0,c.ShowDocumentFeature)((0,r.ProgressFeature)(A));var x;(function(ce){function M(){return new _}ce.create=M})(x||(qe.BulkRegistration=x={}));class _{constructor(){this._registrations=[],this._registered=new Set}add(M,U){const oe=e.string(M)?M:M.method;if(this._registered.has(oe))throw new Error(`${oe} is already added to this registration`);const G=n.generateUuid();this._registrations.push({id:G,method:oe,registerOptions:U||{}}),this._registered.add(oe)}asRegistrationParams(){return{registrations:this._registrations}}}var P;(function(ce){function M(){return new O(void 0,[])}ce.create=M})(P||(qe.BulkUnregistration=P={}));class O{constructor(M,U){this._connection=M,this._unregistrations=new Map,U.forEach(oe=>{this._unregistrations.set(oe.method,oe)})}get isAttached(){return!!this._connection}attach(M){this._connection=M}add(M){this._unregistrations.set(M.method,M)}dispose(){let M=[];for(let oe of this._unregistrations.values())M.push(oe);let U={unregisterations:M};this._connection.sendRequest(t.UnregistrationRequest.type,U).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(M){const U=e.string(M)?M:M.method,oe=this._unregistrations.get(U);if(!oe)return!1;let G={unregisterations:[oe]};return this._connection.sendRequest(t.UnregistrationRequest.type,G).then(()=>{this._unregistrations.delete(U)},Le=>{this._connection.console.info(`Un-registering request handler for ${oe.id} failed.`)}),!0}}class C{attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}register(M,U,oe){return M instanceof _?this.registerMany(M):M instanceof O?this.registerSingle1(M,U,oe):this.registerSingle2(M,U)}registerSingle1(M,U,oe){const G=e.string(U)?U:U.method,Le=n.generateUuid();let yt={registrations:[{id:Le,method:G,registerOptions:oe||{}}]};return M.isAttached||M.attach(this.connection),this.connection.sendRequest(t.RegistrationRequest.type,yt).then(mn=>(M.add({id:Le,method:G}),M),mn=>(this.connection.console.info(`Registering request handler for ${G} failed.`),Promise.reject(mn)))}registerSingle2(M,U){const oe=e.string(M)?M:M.method,G=n.generateUuid();let Le={registrations:[{id:G,method:oe,registerOptions:U||{}}]};return this.connection.sendRequest(t.RegistrationRequest.type,Le).then(yt=>t.Disposable.create(()=>{this.unregisterSingle(G,oe).catch(()=>{this.connection.console.info(`Un-registering capability with id ${G} failed.`)})}),yt=>(this.connection.console.info(`Registering request handler for ${oe} failed.`),Promise.reject(yt)))}unregisterSingle(M,U){let oe={unregisterations:[{id:M,method:U}]};return this.connection.sendRequest(t.UnregistrationRequest.type,oe).catch(()=>{this.connection.console.info(`Un-registering request handler for ${M} failed.`)})}registerMany(M){let U=M.asRegistrationParams();return this.connection.sendRequest(t.RegistrationRequest.type,U).then(()=>new O(this._connection,U.registrations.map(oe=>({id:oe.id,method:oe.method}))),oe=>(this.connection.console.info("Bulk registration failed."),Promise.reject(oe)))}}class D{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}applyEdit(M){function U(G){return G&&!!G.edit}let oe=U(M)?M:{edit:M};return this.connection.sendRequest(t.ApplyWorkspaceEditRequest.type,oe)}}const R=(0,u.FileOperationsFeature)((0,s.WorkspaceFoldersFeature)((0,i.ConfigurationFeature)(D)));class L{constructor(){this._trace=t.Trace.Off}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}set trace(M){this._trace=M}log(M,U){this._trace!==t.Trace.Off&&this.connection.sendNotification(t.LogTraceNotification.type,{message:M,verbose:this._trace===t.Trace.Verbose?U:void 0}).catch(()=>{})}}class W{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}logEvent(M){this.connection.sendNotification(t.TelemetryEventNotification.type,M).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}}class V{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}attachWorkDoneProgress(M){return(0,r.attachWorkDone)(this.connection,M)}attachPartialResultProgress(M,U){return(0,r.attachPartialResult)(this.connection,U)}}qe._LanguagesImpl=V;const Z=(0,h.FoldingRangeFeature)((0,g.MonikerFeature)((0,m.DiagnosticFeature)((0,p.InlayHintFeature)((0,f.InlineValueFeature)((0,d.TypeHierarchyFeature)((0,l.LinkedEditingRangeFeature)((0,a.SemanticTokensFeature)((0,o.CallHierarchyFeature)(V)))))))));class Fe{constructor(){}attach(M){this._connection=M}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(M){}fillServerCapabilities(M){}attachWorkDoneProgress(M){return(0,r.attachWorkDone)(this.connection,M)}attachPartialResultProgress(M,U){return(0,r.attachPartialResult)(this.connection,U)}}qe._NotebooksImpl=Fe;const se=(0,y.NotebookSyncFeature)(Fe);function K(ce,M){return function(U){return M(ce(U))}}qe.combineConsoleFeatures=K;function Te(ce,M){return function(U){return M(ce(U))}}qe.combineTelemetryFeatures=Te;function ut(ce,M){return function(U){return M(ce(U))}}qe.combineTracerFeatures=ut;function H(ce,M){return function(U){return M(ce(U))}}qe.combineClientFeatures=H;function Y(ce,M){return function(U){return M(ce(U))}}qe.combineWindowFeatures=Y;function ee(ce,M){return function(U){return M(ce(U))}}qe.combineWorkspaceFeatures=ee;function ne(ce,M){return function(U){return M(ce(U))}}qe.combineLanguagesFeatures=ne;function fe(ce,M){return function(U){return M(ce(U))}}qe.combineNotebooksFeatures=fe;function Ee(ce,M){function U(G,Le,yt){return G&&Le?yt(G,Le):G||Le}return{__brand:"features",console:U(ce.console,M.console,K),tracer:U(ce.tracer,M.tracer,ut),telemetry:U(ce.telemetry,M.telemetry,Te),client:U(ce.client,M.client,H),window:U(ce.window,M.window,Y),workspace:U(ce.workspace,M.workspace,ee),languages:U(ce.languages,M.languages,ne),notebooks:U(ce.notebooks,M.notebooks,fe)}}qe.combineFeatures=Ee;function ge(ce,M,U){const oe=U&&U.console?new(U.console(k)):new k,G=ce(oe);oe.rawAttach(G);const Le=U&&U.tracer?new(U.tracer(L)):new L,yt=U&&U.telemetry?new(U.telemetry(W)):new W,mn=U&&U.client?new(U.client(C)):new C,tr=U&&U.window?new(U.window(I)):new I,nr=U&&U.workspace?new(U.workspace(R)):new R,rr=U&&U.languages?new(U.languages(Z)):new Z,qt=U&&U.notebooks?new(U.notebooks(se)):new se,_n=[oe,Le,yt,mn,tr,nr,rr,qt];function Yr(X){return X instanceof Promise?X:e.thenable(X)?new Promise((J,le)=>{X.then(jt=>J(jt),jt=>le(jt))}):Promise.resolve(X)}let zn,gn,Bn,tn={listen:()=>G.listen(),sendRequest:(X,...J)=>G.sendRequest(e.string(X)?X:X.method,...J),onRequest:(X,J)=>G.onRequest(X,J),sendNotification:(X,J)=>{const le=e.string(X)?X:X.method;return G.sendNotification(le,J)},onNotification:(X,J)=>G.onNotification(X,J),onProgress:G.onProgress,sendProgress:G.sendProgress,onInitialize:X=>(gn=X,{dispose:()=>{gn=void 0}}),onInitialized:X=>G.onNotification(t.InitializedNotification.type,X),onShutdown:X=>(zn=X,{dispose:()=>{zn=void 0}}),onExit:X=>(Bn=X,{dispose:()=>{Bn=void 0}}),get console(){return oe},get telemetry(){return yt},get tracer(){return Le},get client(){return mn},get window(){return tr},get workspace(){return nr},get languages(){return rr},get notebooks(){return qt},onDidChangeConfiguration:X=>G.onNotification(t.DidChangeConfigurationNotification.type,X),onDidChangeWatchedFiles:X=>G.onNotification(t.DidChangeWatchedFilesNotification.type,X),__textDocumentSync:void 0,onDidOpenTextDocument:X=>G.onNotification(t.DidOpenTextDocumentNotification.type,X),onDidChangeTextDocument:X=>G.onNotification(t.DidChangeTextDocumentNotification.type,X),onDidCloseTextDocument:X=>G.onNotification(t.DidCloseTextDocumentNotification.type,X),onWillSaveTextDocument:X=>G.onNotification(t.WillSaveTextDocumentNotification.type,X),onWillSaveTextDocumentWaitUntil:X=>G.onRequest(t.WillSaveTextDocumentWaitUntilRequest.type,X),onDidSaveTextDocument:X=>G.onNotification(t.DidSaveTextDocumentNotification.type,X),sendDiagnostics:X=>G.sendNotification(t.PublishDiagnosticsNotification.type,X),onHover:X=>G.onRequest(t.HoverRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),void 0)),onCompletion:X=>G.onRequest(t.CompletionRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onCompletionResolve:X=>G.onRequest(t.CompletionResolveRequest.type,X),onSignatureHelp:X=>G.onRequest(t.SignatureHelpRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),void 0)),onDeclaration:X=>G.onRequest(t.DeclarationRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onDefinition:X=>G.onRequest(t.DefinitionRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onTypeDefinition:X=>G.onRequest(t.TypeDefinitionRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onImplementation:X=>G.onRequest(t.ImplementationRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onReferences:X=>G.onRequest(t.ReferencesRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onDocumentHighlight:X=>G.onRequest(t.DocumentHighlightRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onDocumentSymbol:X=>G.onRequest(t.DocumentSymbolRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onWorkspaceSymbol:X=>G.onRequest(t.WorkspaceSymbolRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onWorkspaceSymbolResolve:X=>G.onRequest(t.WorkspaceSymbolResolveRequest.type,X),onCodeAction:X=>G.onRequest(t.CodeActionRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onCodeActionResolve:X=>G.onRequest(t.CodeActionResolveRequest.type,(J,le)=>X(J,le)),onCodeLens:X=>G.onRequest(t.CodeLensRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onCodeLensResolve:X=>G.onRequest(t.CodeLensResolveRequest.type,(J,le)=>X(J,le)),onDocumentFormatting:X=>G.onRequest(t.DocumentFormattingRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),void 0)),onDocumentRangeFormatting:X=>G.onRequest(t.DocumentRangeFormattingRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),void 0)),onDocumentOnTypeFormatting:X=>G.onRequest(t.DocumentOnTypeFormattingRequest.type,(J,le)=>X(J,le)),onRenameRequest:X=>G.onRequest(t.RenameRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),void 0)),onPrepareRename:X=>G.onRequest(t.PrepareRenameRequest.type,(J,le)=>X(J,le)),onDocumentLinks:X=>G.onRequest(t.DocumentLinkRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onDocumentLinkResolve:X=>G.onRequest(t.DocumentLinkResolveRequest.type,(J,le)=>X(J,le)),onDocumentColor:X=>G.onRequest(t.DocumentColorRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onColorPresentation:X=>G.onRequest(t.ColorPresentationRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onFoldingRanges:X=>G.onRequest(t.FoldingRangeRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onSelectionRanges:X=>G.onRequest(t.SelectionRangeRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),(0,r.attachPartialResult)(G,J))),onExecuteCommand:X=>G.onRequest(t.ExecuteCommandRequest.type,(J,le)=>X(J,le,(0,r.attachWorkDone)(G,J),void 0)),dispose:()=>G.dispose()};for(let X of _n)X.attach(tn);return G.onRequest(t.InitializeRequest.type,X=>{M.initialize(X),e.string(X.trace)&&(Le.trace=t.Trace.fromString(X.trace));for(let J of _n)J.initialize(X.capabilities);if(gn){let J=gn(X,new t.CancellationTokenSource().token,(0,r.attachWorkDone)(G,X),void 0);return Yr(J).then(le=>{if(le instanceof t.ResponseError)return le;let jt=le;jt||(jt={capabilities:{}});let Lt=jt.capabilities;Lt||(Lt={},jt.capabilities=Lt),Lt.textDocumentSync===void 0||Lt.textDocumentSync===null?Lt.textDocumentSync=e.number(tn.__textDocumentSync)?tn.__textDocumentSync:t.TextDocumentSyncKind.None:!e.number(Lt.textDocumentSync)&&!e.number(Lt.textDocumentSync.change)&&(Lt.textDocumentSync.change=e.number(tn.__textDocumentSync)?tn.__textDocumentSync:t.TextDocumentSyncKind.None);for(let Rr of _n)Rr.fillServerCapabilities(Lt);return jt})}else{let J={capabilities:{textDocumentSync:t.TextDocumentSyncKind.None}};for(let le of _n)le.fillServerCapabilities(J.capabilities);return J}}),G.onRequest(t.ShutdownRequest.type,()=>{if(M.shutdownReceived=!0,zn)return zn(new t.CancellationTokenSource().token)}),G.onNotification(t.ExitNotification.type,()=>{try{Bn&&Bn()}finally{M.shutdownReceived?M.exit(0):M.exit(1)}}),G.onNotification(t.SetTraceNotification.type,X=>{Le.trace=t.Trace.fromString(X.value)}),tn}return qe.createConnection=ge,qe}var fn={};const O7=ui(V2),hh=ui(F2),tC=ui(N2);var nC;function F7(){if(nC)return fn;nC=1,Object.defineProperty(fn,"__esModule",{value:!0}),fn.resolveModulePath=fn.FileSystem=fn.resolveGlobalYarnPath=fn.resolveGlobalNodePath=fn.resolve=fn.uriToFilePath=void 0;const t=O7,e=su,n=hh,r=tC;function i(d){let f=t.parse(d);if(f.protocol!=="file:"||!f.path)return;let h=f.path.split("/");for(var p=0,m=h.length;p<m;p++)h[p]=decodeURIComponent(h[p]);if(process.platform==="win32"&&h.length>1){let y=h[0],g=h[1];y.length===0&&g.length>1&&g[1]===":"&&h.shift()}return e.normalize(h.join("/"))}fn.uriToFilePath=i;function s(){return process.platform==="win32"}function o(d,f,h,p){const m="NODE_PATH",y=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((g,w)=>{let E=process.env,k=Object.create(null);Object.keys(E).forEach(A=>k[A]=E[A]),f&&n.existsSync(f)&&(k[m]?k[m]=f+e.delimiter+k[m]:k[m]=f,p&&p(`NODE_PATH value is: ${k[m]}`)),k.ELECTRON_RUN_AS_NODE="1";try{let A=(0,r.fork)("",[],{cwd:h,env:k,execArgv:["-e",y]});if(A.pid===void 0){w(new Error(`Starting process to resolve node module ${d} failed`));return}A.on("error",x=>{w(x)}),A.on("message",x=>{x.c==="r"&&(A.send({c:"e"}),x.s?g(x.r):w(new Error(`Failed to resolve module: ${d}`)))});let I={c:"rs",a:d};A.send(I)}catch(A){w(A)}})}fn.resolve=o;function a(d){let f="npm";const h=Object.create(null);Object.keys(process.env).forEach(y=>h[y]=process.env[y]),h.NO_UPDATE_NOTIFIER="true";const p={encoding:"utf8",env:h};s()&&(f="npm.cmd",p.shell=!0);let m=()=>{};try{process.on("SIGPIPE",m);let y=(0,r.spawnSync)(f,["config","get","prefix"],p).stdout;if(!y){d&&d("'npm config get prefix' didn't return a value.");return}let g=y.trim();return d&&d(`'npm config get prefix' value is: ${g}`),g.length>0?s()?e.join(g,"node_modules"):e.join(g,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",m)}}fn.resolveGlobalNodePath=a;function c(d){let f="yarn",h={encoding:"utf8"};s()&&(f="yarn.cmd",h.shell=!0);let p=()=>{};try{process.on("SIGPIPE",p);let m=(0,r.spawnSync)(f,["global","dir","--json"],h),y=m.stdout;if(!y){d&&(d("'yarn global dir' didn't return a value."),m.stderr&&d(m.stderr));return}let g=y.trim().split(/\r?\n/);for(let w of g)try{let E=JSON.parse(w);if(E.type==="log")return e.join(E.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",p)}}fn.resolveGlobalYarnPath=c;var u;(function(d){let f;function h(){return f!==void 0||(process.platform==="win32"?f=!1:f=!n.existsSync(__filename.toUpperCase())||!n.existsSync(__filename.toLowerCase())),f}d.isCaseSensitive=h;function p(m,y){return h()?e.normalize(y).indexOf(e.normalize(m))===0:e.normalize(y).toLowerCase().indexOf(e.normalize(m).toLowerCase())===0}d.isParent=p})(u||(fn.FileSystem=u={}));function l(d,f,h,p){return h?(e.isAbsolute(h)||(h=e.join(d,h)),o(f,h,h,p).then(m=>u.isParent(h,m)?m:Promise.reject(new Error(`Failed to load ${f} from node path location.`))).then(void 0,m=>o(f,a(p),d,p))):o(f,a(p),d,p)}return fn.resolveModulePath=l,fn}var bv,rC;function iC(){return rC||(rC=1,bv=St()),bv}var to={},Cu={},sC;function L7(){if(sC)return Cu;sC=1,Object.defineProperty(Cu,"__esModule",{value:!0}),Cu.InlineCompletionFeature=void 0;const t=St(),e=n=>class extends n{get inlineCompletion(){return{on:r=>this.connection.onRequest(t.InlineCompletionRequest.type,(i,s)=>r(i,s,this.attachWorkDoneProgress(i)))}}};return Cu.InlineCompletionFeature=e,Cu}var oC;function M7(){return oC||(oC=1,function(t){var e=to&&to.__createBinding||(Object.create?function(c,u,l,d){d===void 0&&(d=l);var f=Object.getOwnPropertyDescriptor(u,l);(!f||("get"in f?!u.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return u[l]}}),Object.defineProperty(c,d,f)}:function(c,u,l,d){d===void 0&&(d=l),c[d]=u[l]}),n=to&&to.__exportStar||function(c,u){for(var l in c)l!=="default"&&!Object.prototype.hasOwnProperty.call(u,l)&&e(u,c,l)};Object.defineProperty(t,"__esModule",{value:!0}),t.ProposedFeatures=t.NotebookDocuments=t.TextDocuments=t.SemanticTokensBuilder=void 0;const r=z$();Object.defineProperty(t,"SemanticTokensBuilder",{enumerable:!0,get:function(){return r.SemanticTokensBuilder}});const i=L7();n(St(),t);const s=Y$();Object.defineProperty(t,"TextDocuments",{enumerable:!0,get:function(){return s.TextDocuments}});const o=J$();Object.defineProperty(t,"NotebookDocuments",{enumerable:!0,get:function(){return o.NotebookDocuments}}),n(eC(),t);var a;(function(c){c.all={__brand:"features",languages:i.InlineCompletionFeature}})(a||(t.ProposedFeatures=a={}))}(to)),to}var aC;function z7(){return aC||(aC=1,function(t){var e=Gs&&Gs.__createBinding||(Object.create?function(g,w,E,k){k===void 0&&(k=E);var A=Object.getOwnPropertyDescriptor(w,E);(!A||("get"in A?!w.__esModule:A.writable||A.configurable))&&(A={enumerable:!0,get:function(){return w[E]}}),Object.defineProperty(g,k,A)}:function(g,w,E,k){k===void 0&&(k=E),g[k]=w[E]}),n=Gs&&Gs.__exportStar||function(g,w){for(var E in g)E!=="default"&&!Object.prototype.hasOwnProperty.call(w,E)&&e(w,g,E)};Object.defineProperty(t,"__esModule",{value:!0}),t.createConnection=t.Files=void 0;const r=qU,i=fv(),s=eC(),o=F7(),a=iC();n(iC(),t),n(M7(),t);var c;(function(g){g.uriToFilePath=o.uriToFilePath,g.resolveGlobalNodePath=o.resolveGlobalNodePath,g.resolveGlobalYarnPath=o.resolveGlobalYarnPath,g.resolve=o.resolve,g.resolveModulePath=o.resolveModulePath})(c||(t.Files=c={}));function u(){}let l=!1,d;function f(){const g="--clientProcessId";function w(E){try{let k=parseInt(E);isNaN(k)||(d=setInterval(()=>{try{process.kill(k,0)}catch{process.exit(l?0:1)}},3e3))}catch{}}for(let E=2;E<process.argv.length;E++){let k=process.argv[E];if(k===g&&E+1<process.argv.length){w(process.argv[E+1]);return}else{let A=k.split("=");A[0]===g&&w(A[1])}}}f();const h={initialize:g=>{const w=g.processId;i.number(w)&&d===void 0&&setInterval(()=>{try{process.kill(w,0)}catch{process.exit(l?0:1)}},3e3)},get shutdownReceived(){return l},set shutdownReceived(g){l=g},exit:g=>{process.exit(g)}};function p(g,w,E,k){let A,I,x,_;return g!==void 0&&g.__brand==="features"&&(A=g,g=w,w=E,E=k),a.ConnectionStrategy.is(g)||a.ConnectionOptions.is(g)?_=g:(I=g,x=w,_=E),m(I,x,_,A)}t.createConnection=p;function m(g,w,E,k){let A=!1;if(!g&&!w&&process.argv.length>2){let P,O,C=process.argv.slice(2);for(let D=0;D<C.length;D++){let R=C[D];if(R==="--node-ipc"){g=new a.IPCMessageReader(process),w=new a.IPCMessageWriter(process);break}else if(R==="--stdio"){A=!0,g=process.stdin,w=process.stdout;break}else if(R==="--socket"){P=parseInt(C[D+1]);break}else if(R==="--pipe"){O=C[D+1];break}else{var I=R.split("=");if(I[0]==="--socket"){P=parseInt(I[1]);break}else if(I[0]==="--pipe"){O=I[1];break}}}if(P){let D=(0,a.createServerSocketTransport)(P);g=D[0],w=D[1]}else if(O){let D=(0,a.createServerPipeTransport)(O);g=D[0],w=D[1]}}var x="Use arguments of createConnection or set command line parameters: '--node-ipc', '--stdio' or '--socket={number}'";if(!g)throw new Error("Connection input stream is not set. "+x);if(!w)throw new Error("Connection output stream is not set. "+x);if(i.func(g.read)&&i.func(g.on)){let P=g;P.on("end",()=>{process.exit(l?0:1)}),P.on("close",()=>{process.exit(l?0:1)})}const _=P=>{const O=(0,a.createProtocolConnection)(g,w,P,E);return A&&y(P),O};return(0,s.createConnection)(_,h,k)}function y(g){function w(k){return k.map(A=>typeof A=="string"?A:(0,r.inspect)(A)).join(" ")}const E=new Map;console.assert=function(A,...I){if(!A)if(I.length===0)g.error("Assertion failed");else{const[x,..._]=I;g.error(`Assertion failed: ${x} ${w(_)}`)}},console.count=function(A="default"){const I=String(A);let x=E.get(I)??0;x+=1,E.set(I,x),g.log(`${I}: ${I}`)},console.countReset=function(A){A===void 0?E.clear():E.delete(String(A))},console.debug=function(...A){g.log(w(A))},console.dir=function(A,I){g.log((0,r.inspect)(A,I))},console.log=function(...A){g.log(w(A))},console.error=function(...A){g.error(w(A))},console.trace=function(...A){const I=new Error().stack.replace(/(.+\n){2}/,"");let x="Trace";A.length!==0&&(x+=`: ${w(A)}`),g.log(`${x}
160
+ ${I}`)},console.warn=function(...A){g.warn(w(A))}}}(Gs)),Gs}var me=z7();function cC(t,e){const n={stacks:t,tokens:e};return B7(n),n.stacks.flat().forEach(i=>{i.property=void 0}),lC(n.stacks).map(i=>i[i.length-1])}function Ev(t){const{next:e,cardinalities:n,visited:r,plus:i}=t,s=[],o=e.feature;if(r.has(o))return[];r.add(o);let a,c=o;for(;c.$container;)if(Mi(c.$container)){a=c.$container;break}else if(dg(c.$container))c=c.$container;else break;if(cT(c.cardinality)){const u=aa({next:{feature:c,type:e.type},cardinalities:n,visited:r,plus:i});for(const l of u)i.add(l.feature);s.push(...u)}if(a){const u=a.elements.indexOf(c);u!==void 0&&u<a.elements.length-1&&s.push(...uC({feature:a,type:e.type},u+1,n,r,i)),s.every(l=>qo(l.feature.cardinality,l.feature)||qo(n.get(l.feature))||i.has(l.feature))&&s.push(...Ev({next:{feature:a,type:e.type},cardinalities:n,visited:r,plus:i}))}return s}function Dv(t){return vt(t)&&(t={feature:t}),aa({next:t,cardinalities:new Map,visited:new Set,plus:new Set})}function aa(t){var e,n,r;const{next:i,cardinalities:s,visited:o,plus:a}=t;if(i===void 0)return[];const{feature:c,type:u}=i;if(Mi(c)){if(o.has(c))return[];o.add(c)}if(Mi(c))return uC(i,0,s,o,a).map(l=>ph(l,c.cardinality,s));if(gg(c)||yg(c))return c.elements.flatMap(l=>aa({next:{feature:l,type:u,property:i.property},cardinalities:s,visited:o,plus:a})).map(l=>ph(l,c.cardinality,s));if(Ar(c)){const l={feature:c.terminal,type:u,property:(e=i.property)!==null&&e!==void 0?e:c.feature};return aa({next:l,cardinalities:s,visited:o,plus:a}).map(d=>ph(d,c.cardinality,s))}else{if(_s(c))return Ev({next:{feature:c,type:_c(c),property:(n=i.property)!==null&&n!==void 0?n:c.feature},cardinalities:s,visited:o,plus:a});if(si(c)&&Xt(c.rule.ref)){const l=c.rule.ref,d={feature:l.definition,type:l.fragment||l.dataType?void 0:(r=As(l))!==null&&r!==void 0?r:l.name,property:i.property};return aa({next:d,cardinalities:s,visited:o,plus:a}).map(f=>ph(f,c.cardinality,s))}else return[i]}}function ph(t,e,n){return n.set(t.feature,e),t}function uC(t,e,n,r,i){var s;const o=[];let a;for(;e<t.feature.elements.length&&(a={feature:t.feature.elements[e++],type:t.type},o.push(...aa({next:a,cardinalities:n,visited:r,plus:i})),!!qo((s=a.feature.cardinality)!==null&&s!==void 0?s:n.get(a.feature),a.feature)););return o}function B7(t){for(const e of t.tokens){const n=lC(t.stacks,e);t.stacks=n}}function lC(t,e){const n=[];for(const r of t)n.push(...q7(r,e));return n}function q7(t,e){const n=new Map,r=new Set(t.map(s=>s.feature).filter(j7)),i=[];for(;t.length>0;){const s=t.pop(),o=Ev({next:s,cardinalities:n,plus:r,visited:new Set}).filter(a=>e?Tv(a.feature,e):!0);for(const a of o)i.push([...t,a]);if(!o.every(a=>qo(a.feature.cardinality,a.feature)||qo(n.get(a.feature))))break}return i}function j7(t){if(t.cardinality==="+")return!0;const e=wn(t,Ar);return!!(e&&e.cardinality==="+")}function Tv(t,e){if(xr(t))return t.value===e.image;if(si(t))return U7(t.rule.ref,e);if(fc(t)){const n=kg(t);if(n)return Tv(n,e)}return!1}function U7(t,e){return Xt(t)?Dv(t.definition).some(r=>Tv(r.feature,e)):ii(t)?Ac(t).test(e.image):!1}function G7(t){const e=Array.from(new Set(t.flatMap(r=>{var i;return(i=r?.triggerCharacters)!==null&&i!==void 0?i:[]}))),n=Array.from(new Set(t.flatMap(r=>{var i;return(i=r?.allCommitCharacters)!==null&&i!==void 0?i:[]})));return{triggerCharacters:e.length>0?e:void 0,allCommitCharacters:n.length>0?n:void 0}}class dC{constructor(e){this.scopeProvider=e.references.ScopeProvider,this.grammar=e.Grammar,this.completionParser=e.parser.CompletionParser,this.nameProvider=e.references.NameProvider,this.lexer=e.parser.Lexer,this.nodeKindProvider=e.shared.lsp.NodeKindProvider,this.fuzzyMatcher=e.shared.lsp.FuzzyMatcher,this.grammarConfig=e.parser.GrammarConfig,this.astReflection=e.shared.AstReflection,this.documentationProvider=e.documentation.DocumentationProvider}async getCompletion(e,n,r){const i=[],s=this.buildContexts(e,n.position),o=(u,l)=>{const d=this.fillCompletionItem(u,l);d&&i.push(d)},a=u=>xr(u.feature)?u.feature.value:u.feature,c=[];for(const u of s)if(await Promise.all(et(u.features).distinct(a).exclude(c).map(l=>this.completionFor(u,l,o))),c.push(...u.features),!this.continueCompletion(i))break;return me.CompletionList.create(this.deduplicateItems(i),!0)}deduplicateItems(e){return et(e).distinct(n=>`${n.kind}_${n.label}_${n.detail}`).toArray()}findFeaturesAt(e,n){const r=e.getText({start:me.Position.create(0,0),end:e.positionAt(n)}),i=this.completionParser.parse(r),s=i.tokens;if(i.tokenIndex===0){const c=rf(this.grammar),u=Dv({feature:c.definition,type:As(c)});return s.length>0?(s.shift(),cC(u.map(l=>[l]),s)):u}const o=[...s].splice(i.tokenIndex);return cC([i.elementStack.map(c=>({feature:c}))],o)}*buildContexts(e,n){var r,i;const s=e.parseResult.value.$cstNode;if(!s)return;const o=e.textDocument,a=o.getText(),c=o.offsetAt(n),u={document:e,textDocument:o,offset:c,position:n},l=this.findDataTypeRuleStart(s,c);if(l){const[w,E]=l,k=(r=zd(s,w))===null||r===void 0?void 0:r.astNode;yield Object.assign(Object.assign({},u),{node:k,tokenOffset:w,tokenEndOffset:E,features:this.findFeaturesAt(o,w)})}const{nextTokenStart:d,nextTokenEnd:f,previousTokenStart:h,previousTokenEnd:p}=this.backtrackToAnyToken(a,c);let m=d;c<=d&&h!==void 0&&(m=h);const y=(i=zd(s,m))===null||i===void 0?void 0:i.astNode;let g=!0;if(h!==void 0&&p!==void 0&&p===c&&(yield Object.assign(Object.assign({},u),{node:y,tokenOffset:h,tokenEndOffset:p,features:this.findFeaturesAt(o,h)}),g=this.performNextTokenCompletion(e,a.substring(h,p),h,p),g&&(yield Object.assign(Object.assign({},u),{node:y,tokenOffset:p,tokenEndOffset:p,features:this.findFeaturesAt(o,p)}))),y)g&&(yield Object.assign(Object.assign({},u),{node:y,tokenOffset:d,tokenEndOffset:f,features:this.findFeaturesAt(o,d)}));else{const w=rf(this.grammar);if(!w)throw new Error("Missing entry parser rule");yield Object.assign(Object.assign({},u),{tokenOffset:d,tokenEndOffset:f,features:Dv(w.definition)})}}performNextTokenCompletion(e,n,r,i){return new RegExp("\\P{L}$","u").test(n)}findDataTypeRuleStart(e,n){var r,i;let s=Li(e,n,this.grammarConfig.nameRegexp),o=!!(!((r=wn(s?.grammarSource,Xt))===null||r===void 0)&&r.dataType);if(o){for(;o;)s=s?.container,o=!!(!((i=wn(s?.grammarSource,Xt))===null||i===void 0)&&i.dataType);if(s)return[s.offset,s.end]}}continueCompletion(e){return e.length===0}backtrackToAnyToken(e,n){const r=this.lexer.tokenize(e).tokens;if(r.length===0)return{nextTokenStart:n,nextTokenEnd:n};let i;for(const s of r){if(s.startOffset>=n)return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0};if(s.endOffset>=n)return{nextTokenStart:s.startOffset,nextTokenEnd:s.endOffset+1,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0};i=s}return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:i?i.startOffset:void 0,previousTokenEnd:i?i.endOffset+1:void 0}}completionFor(e,n,r){if(xr(n.feature))return this.completionForKeyword(e,n.feature,r);if(fc(n.feature)&&e.node)return this.completionForCrossReference(e,n,r)}completionForCrossReference(e,n,r){const i=wn(n.feature,Ar);let s=e.node;if(i&&s){n.type&&(s={$type:n.type,$container:s,$containerProperty:n.property},bg(this.astReflection,s));const o={reference:{$refText:""},container:s,property:i.feature};try{for(const a of this.getReferenceCandidates(o,e))r(e,this.createReferenceCompletionItem(a))}catch(a){console.error(a)}}}getReferenceCandidates(e,n){return this.scopeProvider.getScope(e).getAllElements()}createReferenceCompletionItem(e){const n=this.nodeKindProvider.getCompletionItemKind(e),r=this.getReferenceDocumentation(e);return{nodeDescription:e,kind:n,documentation:r,detail:e.type,sortText:"0"}}getReferenceDocumentation(e){if(!e.node)return;const n=this.documentationProvider.getDocumentation(e.node);if(n)return{kind:"markdown",value:n}}completionForKeyword(e,n,r){this.filterKeyword(e,n)&&r(e,{label:n.value,kind:this.getKeywordCompletionItemKind(n),detail:"Keyword",sortText:"1"})}getKeywordCompletionItemKind(e){return me.CompletionItemKind.Keyword}filterKeyword(e,n){return new RegExp("\\p{L}","u").test(n.value)}fillCompletionItem(e,n){var r,i;let s;if(typeof n.label=="string")s=n.label;else if("node"in n){const u=this.nameProvider.getName(n.node);if(!u)return;s=u}else if("nodeDescription"in n)s=n.nodeDescription.name;else return;let o;typeof((r=n.textEdit)===null||r===void 0?void 0:r.newText)=="string"?o=n.textEdit.newText:typeof n.insertText=="string"?o=n.insertText:o=s;const a=(i=n.textEdit)!==null&&i!==void 0?i:this.buildCompletionTextEdit(e,s,o);return a?{additionalTextEdits:n.additionalTextEdits,command:n.command,commitCharacters:n.commitCharacters,data:n.data,detail:n.detail,documentation:n.documentation,filterText:n.filterText,insertText:n.insertText,insertTextFormat:n.insertTextFormat,insertTextMode:n.insertTextMode,kind:n.kind,labelDetails:n.labelDetails,preselect:n.preselect,sortText:n.sortText,tags:n.tags,textEditText:n.textEditText,textEdit:a,label:s}:void 0}buildCompletionTextEdit(e,n,r){const s=e.textDocument.getText().substring(e.tokenOffset,e.offset);if(this.fuzzyMatcher.match(s,n)){const o=e.textDocument.positionAt(e.tokenOffset),a=e.position;return{newText:r,range:{start:o,end:a}}}else return}}class W7{constructor(e){this.nameProvider=e.references.NameProvider,this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}getDefinition(e,n,r){const i=e.parseResult.value;if(i.$cstNode){const s=i.$cstNode,o=Li(s,e.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(o)return this.collectLocationLinks(o,n)}}collectLocationLinks(e,n){var r;const i=this.findLink(e);if(i)return[me.LocationLink.create(i.targetDocument.textDocument.uri,((r=i.target.astNode.$cstNode)!==null&&r!==void 0?r:i.target).range,i.target.range,i.source.range)]}findLink(e){const n=this.references.findDeclarationNode(e);if(n?.astNode){const r=sn(n.astNode);if(n&&r)return{source:e,target:n,targetDocument:r}}}}class fC{constructor(e){this.references=e.references.References,this.nameProvider=e.references.NameProvider,this.grammarConfig=e.parser.GrammarConfig}getDocumentHighlight(e,n,r){const i=e.parseResult.value.$cstNode;if(!i)return;const s=Li(i,e.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(!s)return;const o=this.references.findDeclaration(s);if(o){const a=Dt.equals(sn(o).uri,e.uri),c={documentUri:e.uri,includeDeclaration:a};return this.references.findReferences(o,c).map(l=>this.createDocumentHighlight(l)).toArray()}}createDocumentHighlight(e){return me.DocumentHighlight.create(e.segment.range)}}class H7{constructor(e){this.nameProvider=e.references.NameProvider,this.nodeKindProvider=e.shared.lsp.NodeKindProvider}getSymbols(e,n,r){return this.getSymbol(e,e.parseResult.value)}getSymbol(e,n){const r=n.$cstNode,i=this.nameProvider.getNameNode(n);if(i&&r){const s=this.nameProvider.getName(n);return[{kind:this.nodeKindProvider.getSymbolKind(n),name:s||i.text,range:r.range,selectionRange:i.range,children:this.getChildSymbols(e,n)}]}else return this.getChildSymbols(e,n)||[]}getChildSymbols(e,n){const r=[];for(const i of kc(n)){const s=this.getSymbol(e,i);r.push(...s)}if(r.length>0)return r}}class V7{constructor(e){this.workspaceManager=e.workspace.WorkspaceManager,this.documentBuilder=e.workspace.DocumentBuilder,this.workspaceLock=e.workspace.WorkspaceLock,this.serviceRegistry=e.ServiceRegistry;let n=!1;e.lsp.LanguageServer.onInitialize(r=>{var i,s;n=!!(!((s=(i=r.capabilities.workspace)===null||i===void 0?void 0:i.didChangeWatchedFiles)===null||s===void 0)&&s.dynamicRegistration)}),e.lsp.LanguageServer.onInitialized(r=>{n&&this.registerFileWatcher(e)})}registerFileWatcher(e){const n=et(e.ServiceRegistry.all).flatMap(r=>r.LanguageMetaData.fileExtensions).map(r=>r.startsWith(".")?r.substring(1):r).distinct().toArray();if(n.length>0){const r=e.lsp.Connection,i={watchers:[{globPattern:n.length===1?`**/*.${n[0]}`:`**/*.{${n.join(",")}}`}]};r?.client.register(me.DidChangeWatchedFilesNotification.type,i)}}fireDocumentUpdate(e,n){e=e.filter(r=>this.serviceRegistry.hasServices(r)),this.workspaceManager.ready.then(()=>{this.workspaceLock.write(r=>this.documentBuilder.update(e,n,r))}).catch(r=>{console.error("Workspace initialization failed. Could not perform document update.",r)})}didChangeContent(e){this.fireDocumentUpdate([Jt.parse(e.document.uri)],[])}didChangeWatchedFiles(e){const n=et(e.changes).filter(i=>i.type!==me.FileChangeType.Deleted).distinct(i=>i.uri).map(i=>Jt.parse(i.uri)).toArray(),r=et(e.changes).filter(i=>i.type===me.FileChangeType.Deleted).distinct(i=>i.uri).map(i=>Jt.parse(i.uri)).toArray();this.fireDocumentUpdate(n,r)}}class K7{constructor(e){this.commentNames=e.parser.GrammarConfig.multilineCommentRules}getFoldingRanges(e,n,r){const i=[],s=o=>i.push(o);return this.collectFolding(e,s),i}collectFolding(e,n){var r;const i=(r=e.parseResult)===null||r===void 0?void 0:r.value;if(i){if(this.shouldProcessContent(i)){const s=Ir(i).iterator();let o;do if(o=s.next(),!o.done){const a=o.value;this.shouldProcess(a)&&this.collectObjectFolding(e,a,n),this.shouldProcessContent(a)||s.prune()}while(!o.done)}this.collectCommentFolding(e,i,n)}}shouldProcess(e){return!0}shouldProcessContent(e){return!0}collectObjectFolding(e,n,r){const i=n.$cstNode;if(i){const s=this.toFoldingRange(e,i);s&&r(s)}}collectCommentFolding(e,n,r){const i=n.$cstNode;if(i){for(const s of FD(i))if(this.commentNames.includes(s.tokenType.name)){const o=this.toFoldingRange(e,s,me.FoldingRangeKind.Comment);o&&r(o)}}}toFoldingRange(e,n,r){const i=n.range,s=i.start;let o=i.end;if(!(o.line-s.line<2))return this.includeLastFoldingLine(n,r)||(o=e.textDocument.positionAt(e.textDocument.offsetAt({line:o.line,character:0})-1)),me.FoldingRange.create(s.line,o.line,s.character,o.character,r)}includeLastFoldingLine(e,n){if(n===me.FoldingRangeKind.Comment)return!1;const r=e.text,i=r.charAt(r.length-1);return!(i==="}"||i===")"||i==="]")}}class Y7{match(e,n){if(e.length===0)return!0;let r=!1,i,s=0;const o=n.length;for(let a=0;a<o;a++){const c=n.charCodeAt(a),u=e.charCodeAt(s);if((c===u||this.toUpperCharCode(c)===this.toUpperCharCode(u))&&(r||(r=i===void 0||this.isWordTransition(i,c)),r&&s++,s===e.length))return!0;i=c}return!1}isWordTransition(e,n){return hC<=e&&e<=pC&&X7<=n&&n<=J7||e===mC&&n!==mC}toUpperCharCode(e){return hC<=e&&e<=pC?e-32:e}}const hC=97,pC=122,X7=65,J7=90,mC=95;class gC{constructor(e){this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}getHoverContent(e,n){var r,i;const s=(i=(r=e.parseResult)===null||r===void 0?void 0:r.value)===null||i===void 0?void 0:i.$cstNode;if(s){const o=e.textDocument.offsetAt(n.position),a=Li(s,o,this.grammarConfig.nameRegexp);if(a&&a.offset+a.length>o){const c=this.references.findDeclaration(a);if(c)return this.getAstNodeHoverContent(c)}}}}class Z7 extends gC{constructor(e){super(e),this.documentationProvider=e.documentation.DocumentationProvider}getAstNodeHoverContent(e){const n=this.documentationProvider.getDocumentation(e);if(n)return{contents:{kind:"markdown",value:n}}}}var mh=St();const Q7={[me.SemanticTokenTypes.class]:0,[me.SemanticTokenTypes.comment]:1,[me.SemanticTokenTypes.enum]:2,[me.SemanticTokenTypes.enumMember]:3,[me.SemanticTokenTypes.event]:4,[me.SemanticTokenTypes.function]:5,[me.SemanticTokenTypes.interface]:6,[me.SemanticTokenTypes.keyword]:7,[me.SemanticTokenTypes.macro]:8,[me.SemanticTokenTypes.method]:9,[me.SemanticTokenTypes.modifier]:10,[me.SemanticTokenTypes.namespace]:11,[me.SemanticTokenTypes.number]:12,[me.SemanticTokenTypes.operator]:13,[me.SemanticTokenTypes.parameter]:14,[me.SemanticTokenTypes.property]:15,[me.SemanticTokenTypes.regexp]:16,[me.SemanticTokenTypes.string]:17,[me.SemanticTokenTypes.struct]:18,[me.SemanticTokenTypes.type]:19,[me.SemanticTokenTypes.typeParameter]:20,[me.SemanticTokenTypes.variable]:21,[me.SemanticTokenTypes.decorator]:22},eG={[me.SemanticTokenModifiers.abstract]:1,[me.SemanticTokenModifiers.async]:2,[me.SemanticTokenModifiers.declaration]:4,[me.SemanticTokenModifiers.defaultLibrary]:8,[me.SemanticTokenModifiers.definition]:16,[me.SemanticTokenModifiers.deprecated]:32,[me.SemanticTokenModifiers.documentation]:64,[me.SemanticTokenModifiers.modification]:128,[me.SemanticTokenModifiers.readonly]:256,[me.SemanticTokenModifiers.static]:512};function tG(t){const e=[],n=[];let r=!0,i=!0,s=!0;for(const o of t)o&&(o.legend.tokenTypes.forEach((a,c)=>{const u=e[c];if(u&&u!==a)throw new Error(`Cannot merge '${u}' and '${a}' token types. They use the same index ${c}.`);e[c]=a}),o.legend.tokenModifiers.forEach((a,c)=>{const u=n[c];if(u&&u!==a)throw new Error(`Cannot merge '${u}' and '${a}' token modifier. They use the same index ${c}.`);n[c]=a}),o.full?typeof o.full=="object"&&!o.full.delta&&(i=!1):r=!1,o.range||(s=!1));return{legend:{tokenTypes:e,tokenModifiers:n},full:r&&{delta:i},range:s}}class nG extends me.SemanticTokensBuilder{constructor(){super(...arguments),this._tokens=[]}push(e,n,r,i,s){this._tokens.push({line:e,char:n,length:r,tokenType:i,tokenModifiers:s})}build(){return this.applyTokens(),super.build()}buildEdits(){return this.applyTokens(),super.buildEdits()}flush(){this.previousResult(this.id)}applyTokens(){for(const e of this._tokens.sort(this.compareTokens))super.push(e.line,e.char,e.length,e.tokenType,e.tokenModifiers);this._tokens=[]}compareTokens(e,n){return e.line===n.line?e.char-n.char:e.line-n.line}}class rG{constructor(e){this.tokensBuilders=new Map,e.shared.workspace.TextDocuments.onDidClose(n=>{this.tokensBuilders.delete(n.document.uri)}),e.shared.lsp.LanguageServer.onInitialize(n=>{var r;this.initialize((r=n.capabilities.textDocument)===null||r===void 0?void 0:r.semanticTokens)})}initialize(e){this.clientCapabilities=e}get tokenTypes(){return Q7}get tokenModifiers(){return eG}get semanticTokensOptions(){return{legend:{tokenTypes:Object.keys(this.tokenTypes),tokenModifiers:Object.keys(this.tokenModifiers)},full:{delta:!0},range:!0}}async semanticHighlight(e,n,r=lt.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.flush(),await this.computeHighlighting(e,this.createAcceptor(),r),this.currentTokensBuilder.build()}async semanticHighlightRange(e,n,r=lt.CancellationToken.None){return this.currentRange=n.range,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.flush(),await this.computeHighlighting(e,this.createAcceptor(),r),this.currentTokensBuilder.build()}async semanticHighlightDelta(e,n,r=lt.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=e,this.currentTokensBuilder=this.getDocumentTokensBuilder(e),this.currentTokensBuilder.previousResult(n.previousResultId),await this.computeHighlighting(e,this.createAcceptor(),r),this.currentTokensBuilder.buildEdits()}createAcceptor(){return n=>{"line"in n?this.highlightToken({range:{start:{line:n.line,character:n.char},end:{line:n.line,character:n.char+n.length}},type:n.type,modifier:n.modifier}):"range"in n?this.highlightToken(n):"keyword"in n?this.highlightKeyword(n):"property"in n?this.highlightProperty(n):this.highlightNode({node:n.cst,type:n.type,modifier:n.modifier})}}getDocumentTokensBuilder(e){const n=this.tokensBuilders.get(e.uri.toString());if(n)return n;const r=new nG;return this.tokensBuilders.set(e.uri.toString(),r),r}async computeHighlighting(e,n,r){const i=e.parseResult.value,s=oi(i,{range:this.currentRange}).iterator();let o;do if(o=s.next(),!o.done){await zt(r);const a=o.value;this.highlightElement(a,n)==="prune"&&s.prune()}while(!o.done)}highlightToken(e){var n;const{range:r,type:i}=e;let s=e.modifier;if(this.currentRange&&!sg(r,this.currentRange)||!this.currentDocument||!this.currentTokensBuilder)return;const o=this.tokenTypes[i];let a=0;if(s!==void 0){typeof s=="string"&&(s=[s]);for(const l of s){const d=this.tokenModifiers[l];a|=d}}const c=r.start.line,u=r.end.line;if(c===u){const l=r.start.character,d=r.end.character-l;this.currentTokensBuilder.push(c,l,d,o,a)}else if(!((n=this.clientCapabilities)===null||n===void 0)&&n.multilineTokenSupport){const l=r.start.character,d=this.currentDocument.textDocument.offsetAt(r.start),f=this.currentDocument.textDocument.offsetAt(r.end);this.currentTokensBuilder.push(c,l,f-d,o,a)}else{const l=r.start;let d=this.currentDocument.textDocument.offsetAt({line:c+1,character:0});this.currentTokensBuilder.push(l.line,l.character,d-l.character-1,o,a);for(let f=c+1;f<u;f++){const h=d;d=this.currentDocument.textDocument.offsetAt({line:f+1,character:0}),this.currentTokensBuilder.push(f,0,d-h-1,o,a)}this.currentTokensBuilder.push(u,0,r.end.character,o,a)}}highlightProperty(e){const n=[];if(typeof e.index=="number"){const s=An(e.node.$cstNode,e.property,e.index);s&&n.push(s)}else n.push(...Bo(e.node.$cstNode,e.property));const{type:r,modifier:i}=e;for(const s of n)this.highlightNode({node:s,type:r,modifier:i})}highlightKeyword(e){const{node:n,keyword:r,type:i,index:s,modifier:o}=e,a=[];if(typeof s=="number"){const c=Cc(n.$cstNode,r,s);c&&a.push(c)}else a.push(...Cg(n.$cstNode,r));for(const c of a)this.highlightNode({node:c,type:i,modifier:o})}highlightNode(e){const{node:n,type:r,modifier:i}=e,s=n.range;this.highlightToken({range:s,type:r,modifier:i})}}var yC;(function(t){function e(r,i,s){const o=new Map;Object.entries(i).forEach(([u,l])=>o.set(l,u));let a=0,c=0;return n(r.data,5).map(u=>{a+=u[0],u[0]!==0&&(c=0),c+=u[1];const l=u[2];return{offset:s.textDocument.offsetAt({line:a,character:c}),tokenType:o.get(u[3]),tokenModifiers:u[4],text:s.textDocument.getText({start:{line:a,character:c},end:{line:a,character:c+l}})}})}t.decode=e;function n(r,i){const s=[];for(let o=0;o<r.length;o+=i){const a=r.slice(o,o+i);s.push(a)}return s}})(yC||(yC={}));function iG(t){const e=[],n=[];t.forEach(i=>{i?.triggerCharacters&&e.push(...i.triggerCharacters),i?.retriggerCharacters&&n.push(...i.retriggerCharacters)});const r={triggerCharacters:e.length>0?Array.from(new Set(e)).sort():void 0,retriggerCharacters:n.length>0?Array.from(new Set(n)).sort():void 0};return r.triggerCharacters?r:void 0}class sG{constructor(e){this.onInitializeEmitter=new mh.Emitter,this.onInitializedEmitter=new mh.Emitter,this.services=e}get onInitialize(){return this.onInitializeEmitter.event}get onInitialized(){return this.onInitializedEmitter.event}async initialize(e){return this.eagerLoadServices(),this.fireInitializeOnDefaultServices(e),this.onInitializeEmitter.fire(e),this.onInitializeEmitter.dispose(),this.buildInitializeResult(e)}eagerLoadServices(){rv(this.services),this.services.ServiceRegistry.all.forEach(e=>rv(e))}hasService(e){return this.services.ServiceRegistry.all.some(r=>e(r)!==void 0)}buildInitializeResult(e){var n,r,i,s;const o=this.services.lsp.DocumentUpdateHandler,a=(n=this.services.lsp.FileOperationHandler)===null||n===void 0?void 0:n.fileOperationOptions,c=this.services.ServiceRegistry.all,u=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.Formatter}),l=c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.Formatter)===null||Te===void 0?void 0:Te.formatOnTypeOptions}).find(se=>!!se),d=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CodeActionProvider}),f=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.SemanticTokenProvider}),h=tG(c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.SemanticTokenProvider)===null||Te===void 0?void 0:Te.semanticTokensOptions})),p=(i=(r=this.services.lsp)===null||r===void 0?void 0:r.ExecuteCommandHandler)===null||i===void 0?void 0:i.commands,m=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DocumentLinkProvider}),y=iG(c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.SignatureHelp)===null||Te===void 0?void 0:Te.signatureHelpOptions})),g=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.TypeProvider}),w=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.ImplementationProvider}),E=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CompletionProvider}),k=G7(c.map(se=>{var K,Te;return(Te=(K=se.lsp)===null||K===void 0?void 0:K.CompletionProvider)===null||Te===void 0?void 0:Te.completionOptions})),A=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.ReferencesProvider}),I=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DocumentSymbolProvider}),x=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DefinitionProvider}),_=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DocumentHighlightProvider}),P=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.FoldingRangeProvider}),O=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.HoverProvider}),C=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.RenameProvider}),D=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CallHierarchyProvider}),R=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.TypeHierarchyProvider}),L=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.CodeLensProvider}),W=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.DeclarationProvider}),V=this.hasService(se=>{var K;return(K=se.lsp)===null||K===void 0?void 0:K.InlayHintProvider}),Z=(s=this.services.lsp)===null||s===void 0?void 0:s.WorkspaceSymbolProvider;return{capabilities:{workspace:{workspaceFolders:{supported:!0},fileOperations:a},executeCommandProvider:p&&{commands:p},textDocumentSync:{change:mh.TextDocumentSyncKind.Incremental,openClose:!0,save:!!o.didSaveDocument,willSave:!!o.willSaveDocument,willSaveWaitUntil:!!o.willSaveDocumentWaitUntil},completionProvider:E?k:void 0,referencesProvider:A,documentSymbolProvider:I,definitionProvider:x,typeDefinitionProvider:g,documentHighlightProvider:_,codeActionProvider:d,documentFormattingProvider:u,documentRangeFormattingProvider:u,documentOnTypeFormattingProvider:l,foldingRangeProvider:P,hoverProvider:O,renameProvider:C?{prepareProvider:!0}:void 0,semanticTokensProvider:f?h:void 0,signatureHelpProvider:y,implementationProvider:w,callHierarchyProvider:D?{}:void 0,typeHierarchyProvider:R?{}:void 0,documentLinkProvider:m?{resolveProvider:!1}:void 0,codeLensProvider:L?{resolveProvider:!1}:void 0,declarationProvider:W,inlayHintProvider:V?{resolveProvider:!1}:void 0,workspaceSymbolProvider:Z?{resolveProvider:!!Z.resolveSymbol}:void 0}}}initialized(e){this.fireInitializedOnDefaultServices(e),this.onInitializedEmitter.fire(e),this.onInitializedEmitter.dispose()}fireInitializeOnDefaultServices(e){this.services.workspace.ConfigurationProvider.initialize(e),this.services.workspace.WorkspaceManager.initialize(e)}fireInitializedOnDefaultServices(e){const n=this.services.lsp.Connection,r=n?Object.assign(Object.assign({},e),{register:i=>n.client.register(mh.DidChangeConfigurationNotification.type,i),fetchConfiguration:i=>n.workspace.getConfiguration(i)}):e;this.services.workspace.ConfigurationProvider.initialized(r).catch(i=>console.error("Error in ConfigurationProvider initialization:",i)),this.services.workspace.WorkspaceManager.initialized(e).catch(i=>console.error("Error in WorkspaceManager initialization:",i))}}class oG{getSymbolKind(e){return me.SymbolKind.Field}getCompletionItemKind(e){return me.CompletionItemKind.Reference}}class aG{constructor(e){this.nameProvider=e.references.NameProvider,this.references=e.references.References,this.grammarConfig=e.parser.GrammarConfig}findReferences(e,n,r){const i=e.parseResult.value.$cstNode;if(!i)return[];const s=Li(i,e.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);return s?this.getReferences(s,n,e):[]}getReferences(e,n,r){const i=[],s=this.references.findDeclaration(e);if(s){const o={includeDeclaration:n.context.includeDeclaration};this.references.findReferences(s,o).forEach(a=>{i.push(me.Location.create(a.sourceUri.toString(),a.segment.range))})}return i}}class cG{constructor(e){this.references=e.references.References,this.nameProvider=e.references.NameProvider,this.grammarConfig=e.parser.GrammarConfig}async rename(e,n,r){const i={},s=e.parseResult.value.$cstNode;if(!s)return;const o=e.textDocument.offsetAt(n.position),a=Li(s,o,this.grammarConfig.nameRegexp);if(!a)return;const c=this.references.findDeclaration(a);if(!c)return;const u={onlyLocal:!1,includeDeclaration:!0};return this.references.findReferences(c,u).forEach(d=>{const f=Sn.replace(d.segment.range,n.newName),h=d.sourceUri.toString();i[h]?i[h].push(f):i[h]=[f]}),{changes:i}}prepareRename(e,n,r){return this.renameNodeRange(e,n.position)}renameNodeRange(e,n){const r=e.parseResult.value.$cstNode,i=e.textDocument.offsetAt(n);if(r&&i){const s=Li(r,i,this.grammarConfig.nameRegexp);if(!s)return;if(this.references.findDeclaration(s)||this.isNameNode(s))return s.range}}isNameNode(e){return e?.astNode&&ZS(e.astNode)&&e===this.nameProvider.getNameNode(e.astNode)}}class vC{constructor(e){this.indexManager=e.workspace.IndexManager,this.nodeKindProvider=e.lsp.NodeKindProvider,this.fuzzyMatcher=e.lsp.FuzzyMatcher}async getSymbols(e,n=lt.CancellationToken.None){const r=[],i=e.query.toLowerCase();for(const s of this.indexManager.allElements())if(await zt(n),this.fuzzyMatcher.match(i,s.name)){const o=this.getWorkspaceSymbol(s);o&&r.push(o)}return r}getWorkspaceSymbol(e){const n=e.nameSegment;if(n)return{kind:this.nodeKindProvider.getSymbolKind(e),name:e.name,location:{range:n.range,uri:e.documentUri.toString()}}}}class uG{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new me.Emitter,this._onDidOpen=new me.Emitter,this._onDidClose=new me.Emitter,this._onDidSave=new me.Emitter,this._onWillSave=new me.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(Dt.normalize(e))}set(e){const n=Dt.normalize(e.uri);let r=!0;this._syncedDocuments.has(n)&&(r=!1),this._syncedDocuments.set(n,e);const i=Object.freeze({document:e});return this._onDidOpen.fire(i),this._onDidChangeContent.fire(i),r}delete(e){const n=Dt.normalize(typeof e=="object"&&"uri"in e?e.uri:e),r=this._syncedDocuments.get(n);r!==void 0&&(this._syncedDocuments.delete(n),this._onDidClose.fire(Object.freeze({document:r})))}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=me.TextDocumentSyncKind.Incremental;const n=[];return n.push(e.onDidOpenTextDocument(r=>{const i=r.textDocument,s=Dt.normalize(i.uri),o=this._configuration.create(s,i.languageId,i.version,i.text);this._syncedDocuments.set(s,o);const a=Object.freeze({document:o});this._onDidOpen.fire(a),this._onDidChangeContent.fire(a)})),n.push(e.onDidChangeTextDocument(r=>{const i=r.textDocument,s=r.contentChanges;if(s.length===0)return;const{version:o}=i;if(o==null)throw new Error(`Received document change event for ${i.uri} without valid version identifier`);const a=Dt.normalize(i.uri);let c=this._syncedDocuments.get(a);c!==void 0&&(c=this._configuration.update(c,s,o),this._syncedDocuments.set(a,c),this._onDidChangeContent.fire(Object.freeze({document:c})))})),n.push(e.onDidCloseTextDocument(r=>{const i=Dt.normalize(r.textDocument.uri),s=this._syncedDocuments.get(i);s!==void 0&&(this._syncedDocuments.delete(i),this._onDidClose.fire(Object.freeze({document:s})))})),n.push(e.onWillSaveTextDocument(r=>{const i=this._syncedDocuments.get(Dt.normalize(r.textDocument.uri));i!==void 0&&this._onWillSave.fire(Object.freeze({document:i,reason:r.reason}))})),n.push(e.onWillSaveTextDocumentWaitUntil((r,i)=>{const s=this._syncedDocuments.get(Dt.normalize(r.textDocument.uri));return s!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:s,reason:r.reason}),i):[]})),n.push(e.onDidSaveTextDocument(r=>{const i=this._syncedDocuments.get(Dt.normalize(r.textDocument.uri));i!==void 0&&this._onDidSave.fire(Object.freeze({document:i}))})),me.Disposable.create(()=>{n.forEach(r=>r.dispose())})}}function lG(t){return ih.merge(vk(t),dG(t))}function dG(t){return{lsp:{CompletionProvider:e=>new dC(e),DocumentSymbolProvider:e=>new H7(e),HoverProvider:e=>new Z7(e),FoldingRangeProvider:e=>new K7(e),ReferencesProvider:e=>new aG(e),DefinitionProvider:e=>new W7(e),DocumentHighlightProvider:e=>new fC(e),RenameProvider:e=>new cG(e)},shared:()=>t.shared}}function fG(t){return ih.merge(wk(t),hG(t))}function hG(t){return{lsp:{Connection:()=>t.connection,LanguageServer:e=>new sG(e),DocumentUpdateHandler:e=>new V7(e),WorkspaceSymbolProvider:e=>new vC(e),NodeKindProvider:()=>new oG,FuzzyMatcher:()=>new Y7},workspace:{TextDocuments:()=>new uG(nh)}}}class pG{constructor(){this.collector=()=>{}}getNodeFormatter(e){return new mG(e,this.collector)}formatDocument(e,n){const r=e.parseResult;return r.lexerErrors.length===0&&r.parserErrors.length===0?this.doDocumentFormat(e,n.options):[]}isFormatRangeErrorFree(e,n){const r=e.parseResult;return r.lexerErrors.length||r.parserErrors.length?Math.min(...r.lexerErrors.map(s=>{var o;return(o=s.line)!==null&&o!==void 0?o:Number.MAX_VALUE}),...r.parserErrors.map(s=>{var o;return(o=s.token.startLine)!==null&&o!==void 0?o:Number.MAX_VALUE}))>n.end.line:!0}formatDocumentRange(e,n){return this.isFormatRangeErrorFree(e,n.range)?this.doDocumentFormat(e,n.options,n.range):[]}formatDocumentOnType(e,n){const r={start:{character:0,line:n.position.line},end:n.position};return this.isFormatRangeErrorFree(e,r)?this.doDocumentFormat(e,n.options,r):[]}get formatOnTypeOptions(){}doDocumentFormat(e,n,r){const i=new Map,s=(a,c,u)=>{var l,d;const f=this.nodeModeToKey(a,c),h=i.get(f),p=(l=u.options.priority)!==null&&l!==void 0?l:0,m=(d=h?.options.priority)!==null&&d!==void 0?d:0;(!h||m<=p)&&i.set(f,u)};this.collector=s,this.iterateAstFormatting(e,r);const o=this.iterateCstFormatting(e,i,n,r);return this.avoidOverlappingEdits(e.textDocument,o)}avoidOverlappingEdits(e,n){const r=[];for(const i of n){let s=r[r.length-1];for(;s;){const o=e.offsetAt(i.range.start),a=e.offsetAt(s.range.end);if(o<a)r.pop(),s=r[r.length-1];else break}r.push(i)}return r.filter(i=>this.isNecessary(i,e))}iterateAstFormatting(e,n){const r=e.parseResult.value;this.format(r);const i=Ir(r).iterator();let s;do if(s=i.next(),!s.done){const o=s.value;this.insideRange(o.$cstNode.range,n)?this.format(o):i.prune()}while(!s.done)}nodeModeToKey(e,n){return`${e.offset}:${e.end}:${n}`}insideRange(e,n){return!n||e.start.line<=n.start.line&&e.end.line>=n.end.line||e.start.line>=n.start.line&&e.end.line<=n.end.line||e.start.line<=n.end.line&&e.end.line>=n.end.line}isNecessary(e,n){return e.newText!==n.getText(e.range).replace(/\r/g,"")}iterateCstFormatting(e,n,r,i){const s={indentation:0,options:r,document:e.textDocument},o=[],c=this.iterateCstTree(e,s).iterator();let u,l;do if(l=c.next(),!l.done){const d=l.value,f=Cs(d),h=this.nodeModeToKey(d,"prepend"),p=n.get(h);if(n.delete(h),p){const g=this.createTextEdit(u,d,p,s);for(const w of g)w&&this.insideRange(w.range,i)&&o.push(w)}const m=this.nodeModeToKey(d,"append"),y=n.get(m);if(n.delete(m),y){const g=qD(d);if(g){const w=this.createTextEdit(d,g,y,s);for(const E of w)E&&this.insideRange(E.range,i)&&o.push(E)}}if(!p&&d.hidden){const g=this.createHiddenTextEdits(u,d,void 0,s);for(const w of g)w&&this.insideRange(w.range,i)&&o.push(w)}f&&(u=d)}while(!l.done);return o}createHiddenTextEdits(e,n,r,i){var s;const o=n.range.start.line;if(e&&e.range.end.line===o)return[];const a=[],c={start:{character:0,line:o},end:n.range.start},u=i.document.getText(c),l=this.findFittingMove(c,(s=r?.moves)!==null&&s!==void 0?s:[],i),d=this.getExistingIndentationCharacterCount(u,i),h=this.getIndentationCharacterCount(i,l)-d;if(h===0)return[];let p="";h>0&&(p=(i.options.insertSpaces?" ":" ").repeat(h));const m=n.text.split(`
161
+ `);m[0]=u+m[0];for(let y=0;y<m.length;y++){const g=o+y,w={character:0,line:g};if(h>0)a.push({newText:p,range:{start:w,end:w}});else{const E=m[y];let k=0;for(;k<E.length;k++){const A=E.charAt(k);if(A!==" "&&A!==" ")break}a.push({newText:"",range:{start:w,end:{line:g,character:Math.min(k,Math.abs(h))}}})}}return a}getExistingIndentationCharacterCount(e,n){const r=" ".repeat(n.options.tabSize);return(n.options.insertSpaces?e.replaceAll(" ",r):e.replaceAll(r," ")).length}getIndentationCharacterCount(e,n){let r=e.indentation;return n&&n.tabs&&(r+=n.tabs),(e.options.insertSpaces?e.options.tabSize:1)*r}createTextEdit(e,n,r,i){var s;if(n.hidden)return this.createHiddenTextEdits(e,n,r,i);if(e&&(e.range.end.line>n.range.start.line||e.range.end.line===n.range.start.line&&e.range.end.character>n.range.start.character))return[];const o={start:(s=e?.range.end)!==null&&s!==void 0?s:{character:0,line:0},end:n.range.start},a=this.findFittingMove(o,r.moves,i);if(!a)return[];const c=a.characters,u=a.lines,l=a.tabs,d=i.indentation;i.indentation+=l??0;const f=[];return c!==void 0?e?.hidden||f.push(this.createSpaceTextEdit(o,c,r.options)):u!==void 0?f.push(this.createLineTextEdit(o,u,i,r.options)):l!==void 0&&f.push(this.createTabTextEdit(o,!!e,i)),Cs(n)&&(i.indentation=d),f}createSpaceTextEdit(e,n,r){if(e.start.line===e.end.line){const s=e.end.character-e.start.character;n=this.fitIntoOptions(n,s,r)}return{newText:" ".repeat(n),range:e}}createLineTextEdit(e,n,r,i){const s=e.end.line-e.start.line;n=this.fitIntoOptions(n,s,i);const a=(r.options.insertSpaces?" ".repeat(r.options.tabSize):" ").repeat(r.indentation);return{newText:`${`
162
+ `.repeat(n)}${a}`,range:e}}createTabTextEdit(e,n,r){const s=(r.options.insertSpaces?" ".repeat(r.options.tabSize):" ").repeat(r.indentation),o=n?1:0,a=Math.max(e.end.line-e.start.line,o);return{newText:`${`
163
+ `.repeat(a)}${s}`,range:e}}fitIntoOptions(e,n,r){return r.allowMore?e=Math.max(n,e):r.allowLess&&(e=Math.min(n,e)),e}findFittingMove(e,n,r){if(n.length===0)return;if(n.length===1)return n[0];const i=e.end.line-e.start.line;for(const s of n){if(s.lines!==void 0&&i<=s.lines)return s;if(s.lines===void 0&&i===0)return s}return n[n.length-1]}iterateCstTree(e,n){const i=e.parseResult.value.$cstNode;return i?new Lo(i,s=>this.iterateCst(s,n)):Fo}iterateCst(e,n){if(!ri(e))return Fo;const r=n.indentation;return new xt(()=>({index:0}),i=>i.index<e.content.length?{done:!1,value:e.content[i.index++]}:(n.indentation=r,Yt))}}class mG{constructor(e,n){this.astNode=e,this.collector=n}node(e){return new Tr(e.$cstNode?[e.$cstNode]:[],this.collector)}nodes(...e){const n=[];for(const r of e)r.$cstNode&&n.push(r.$cstNode);return new Tr(n,this.collector)}property(e,n){const r=An(this.astNode.$cstNode,e,n);return new Tr(r?[r]:[],this.collector)}properties(...e){const n=[];for(const r of e){const i=Bo(this.astNode.$cstNode,r);n.push(...i)}return new Tr(n,this.collector)}keyword(e,n){const r=Cc(this.astNode.$cstNode,e,n);return new Tr(r?[r]:[],this.collector)}keywords(...e){const n=[];for(const r of e){const i=Cg(this.astNode.$cstNode,r);n.push(...i)}return new Tr(n,this.collector)}cst(e){return new Tr([...e],this.collector)}interior(e,n){const r=e.nodes,i=n.nodes;if(r.length!==1||i.length!==1)return new Tr([],this.collector);let s=r[0],o=i[0];if(s.offset>o.offset){const a=s;s=o,o=a}return new Tr(jD(s,o),this.collector)}}class Tr{constructor(e,n){this.nodes=e,this.collector=n}prepend(e){for(const n of this.nodes)this.collector(n,"prepend",e);return this}append(e){for(const n of this.nodes)this.collector(n,"append",e);return this}surround(e){for(const n of this.nodes)this.collector(n,"prepend",e),this.collector(n,"append",e);return this}slice(e,n){return new Tr(this.nodes.slice(e,n),this.collector)}}var Yi;(function(t){function e(...l){return{options:{},moves:l.flatMap(d=>d.moves).sort(u)}}t.fit=e;function n(l){return i(0,l)}t.noSpace=n;function r(l){return i(1,l)}t.oneSpace=r;function i(l,d){return{options:d??{},moves:[{characters:l}]}}t.spaces=i;function s(l){return o(1,l)}t.newLine=s;function o(l,d){return{options:d??{},moves:[{lines:l}]}}t.newLines=o;function a(l){return{options:l??{},moves:[{tabs:1,lines:1}]}}t.indent=a;function c(l){return{options:l??{},moves:[{tabs:0}]}}t.noIndent=c;function u(l,d){var f,h,p,m,y,g;const w=(f=l.lines)!==null&&f!==void 0?f:0,E=(h=d.lines)!==null&&h!==void 0?h:0,k=(p=l.tabs)!==null&&p!==void 0?p:0,A=(m=d.tabs)!==null&&m!==void 0?m:0,I=(y=l.characters)!==null&&y!==void 0?y:0,x=(g=d.characters)!==null&&g!==void 0?g:0;return w<E?-1:w>E?1:k<A?-1:k>A?1:I<x?-1:I>x?1:0}})(Yi||(Yi={}));class gG{constructor(){this.encoding="utf-8"}readFile(e){return W0.promises.readFile(e.fsPath,this.encoding)}async readDirectory(e){return(await W0.promises.readdir(e.fsPath,{withFileTypes:!0})).map(r=>({dirent:r,isFile:r.isFile(),isDirectory:r.isDirectory(),uri:Dt.joinPath(e,r.name)}))}}const yG={fileSystemProvider:()=>new gG},Xe={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},wC={silent:{level:-1},fatal:{level:Xe.fatal},error:{level:Xe.error},warn:{level:Xe.warn},log:{level:Xe.log},info:{level:Xe.info},success:{level:Xe.success},fail:{level:Xe.fail},ready:{level:Xe.info},start:{level:Xe.info},box:{level:Xe.info},debug:{level:Xe.debug},trace:{level:Xe.trace},verbose:{level:Xe.verbose}};function Rv(t){return t!==null&&typeof t=="object"}function Sv(t,e,n=".",r){if(!Rv(e))return Sv(t,{},n);const i=Object.assign({},e);for(const s in t){if(s==="__proto__"||s==="constructor")continue;const o=t[s];o!=null&&(Array.isArray(o)&&Array.isArray(i[s])?i[s]=[...o,...i[s]]:Rv(o)&&Rv(i[s])?i[s]=Sv(o,i[s],(n?`${n}.`:"")+s.toString()):i[s]=o)}return i}function vG(t){return(...e)=>e.reduce((n,r)=>Sv(n,r,""),{})}const wG=vG();function bG(t){return Object.prototype.toString.call(t)==="[object Object]"}function EG(t){return!(!bG(t)||!t.message&&!t.args||t.stack)}let kv=!1;const bC=[];let hn=class d2{constructor(e={}){const n=e.types||wC;this.options=wG({...e,defaults:{...e.defaults},level:$v(e.level,n),reporters:[...e.reporters||[]]},{types:wC,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(const r in n){const i={type:r,...this.options.defaults,...n[r]};this[r]=this._wrapLogFn(i),this[r].raw=this._wrapLogFn(i,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(e){this.options.level=$v(e,this.options.types,this.options.level)}prompt(e,n){if(!this.options.prompt)throw new Error("prompt is not supported!");return this.options.prompt(e,n)}create(e){const n=new d2({...this.options,...e});return this._mockFn&&n.mockTypes(this._mockFn),n}withDefaults(e){return this.create({...this.options,defaults:{...this.options.defaults,...e}})}withTag(e){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+e:e})}addReporter(e){return this.options.reporters.push(e),this}removeReporter(e){if(e){const n=this.options.reporters.indexOf(e);if(n>=0)return this.options.reporters.splice(n,1)}else this.options.reporters.splice(0);return this}setReporters(e){return this.options.reporters=Array.isArray(e)?e:[e],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(const e in this.options.types)console["__"+e]||(console["__"+e]=console[e]),console[e]=this[e].raw}restoreConsole(){for(const e in this.options.types)console["__"+e]&&(console[e]=console["__"+e],delete console["__"+e])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(e,n){e&&(e.__write||(e.__write=e.write),e.write=r=>{this[n].raw(String(r).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write)}pauseLogs(){kv=!0}resumeLogs(){kv=!1;const e=bC.splice(0);for(const n of e)n[0]._logFn(n[1],n[2])}mockTypes(e){const n=e||this.options.mockFn;if(this._mockFn=n,typeof n=="function")for(const r in this.options.types)this[r]=n(r,this.options.types[r])||this[r],this[r].raw=this[r]}_wrapLogFn(e,n){return(...r)=>{if(kv){bC.push([this,e,r,n]);return}return this._logFn(e,r,n)}}_logFn(e,n,r){if((e.level||0)>this.level)return!1;const i={date:new Date,args:[],...e,level:$v(e.level,this.options.types)};!r&&n.length===1&&EG(n[0])?Object.assign(i,n[0]):i.args=[...n],i.message&&(i.args.unshift(i.message),delete i.message),i.additional&&(Array.isArray(i.additional)||(i.additional=i.additional.split(`
164
+ `)),i.args.push(`
165
+ `+i.additional.join(`
166
+ `)),delete i.additional),i.type=typeof i.type=="string"?i.type.toLowerCase():"log",i.tag=typeof i.tag=="string"?i.tag:"";const s=(a=!1)=>{const c=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&c>0){const u=[...this._lastLog.object.args];c>1&&u.push(`(repeated ${c} times)`),this._log({...this._lastLog.object,args:u}),this._lastLog.count=1}a&&(this._lastLog.object=i,this._log(i))};clearTimeout(this._lastLog.timeout);const o=this._lastLog.time&&i.date?i.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=i.date,o<this.options.throttle)try{const a=JSON.stringify([i.type,i.tag,i.args]),c=this._lastLog.serialized===a;if(this._lastLog.serialized=a,c&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(s,this.options.throttle);return}}catch{}s(!0)}_log(e){for(const n of this.options.reporters)n.log(e,{options:this.options})}};function $v(t,e={},n=3){return t===void 0?n:typeof t=="number"?t:e[t]&&e[t].level!==void 0?e[t].level:n}hn.prototype.add=hn.prototype.addReporter,hn.prototype.remove=hn.prototype.removeReporter,hn.prototype.clear=hn.prototype.removeReporter,hn.prototype.withScope=hn.prototype.withTag,hn.prototype.mock=hn.prototype.mockTypes,hn.prototype.pause=hn.prototype.pauseLogs,hn.prototype.resume=hn.prototype.resumeLogs;function DG(t={}){return new hn(t)}function EC(t){const e=process.cwd()+v2;return t.split(`
167
+ `).splice(1).map(n=>n.trim().replace("file://","").replace(e,""))}function TG(t,e){return(e.__write||e.write).call(e,t)}const Cv=t=>t?`[${t}]`:"";let DC=class{formatStack(e,n){return" "+EC(e).join(`
168
+ `)}formatArgs(e,n){const r=e.map(i=>i&&typeof i.stack=="string"?i.message+`
169
+ `+this.formatStack(i.stack,n):i);return R2(n,...r)}formatDate(e,n){return n.date?e.toLocaleTimeString():""}filterAndJoin(e){return e.filter(Boolean).join(" ")}formatLogObj(e,n){const r=this.formatArgs(e.args,n);return e.type==="box"?`
170
+ `+[Cv(e.tag),e.title&&e.title,...r.split(`
171
+ `)].filter(Boolean).map(i=>" > "+i).join(`
172
+ `)+`
173
+ `:this.filterAndJoin([Cv(e.type),Cv(e.tag),r])}log(e,n){const r=this.formatLogObj(e,{columns:n.options.stdout.columns||0,...n.options.formatOptions});return TG(r+`
174
+ `,e.level<2?n.options.stderr||process.stderr:n.options.stdout||process.stdout)}};const{env:Xi={},argv:TC=[],platform:RG=""}=typeof process>"u"?{}:process,SG="NO_COLOR"in Xi||TC.includes("--no-color"),kG="FORCE_COLOR"in Xi||TC.includes("--color"),$G=RG==="win32",RC=Xi.TERM==="dumb",CG=vm&&vm.isatty&&vm.isatty(1)&&Xi.TERM&&!RC,_G="CI"in Xi&&("GITHUB_ACTIONS"in Xi||"GITLAB_CI"in Xi||"CIRCLECI"in Xi),AG=!SG&&(kG||$G&&!RC||CG||_G);function SC(t,e,n,r,i=e.slice(0,Math.max(0,t))+r,s=e.slice(Math.max(0,t+n.length)),o=s.indexOf(n)){return i+(o<0?s:SC(o,s,n,r))}function xG(t,e,n,r,i){return t<0?n+e+r:n+SC(t,e,r,i)+r}function IG(t,e,n=t,r=t.length+1){return i=>i||!(i===""||i===void 0)?xG((""+i).indexOf(e,r),i,t,e,n):""}function ke(t,e,n){return IG(`\x1B[${t}m`,`\x1B[${e}m`,n)}const kC={reset:ke(0,0),bold:ke(1,22,"\x1B[22m\x1B[1m"),dim:ke(2,22,"\x1B[22m\x1B[2m"),italic:ke(3,23),underline:ke(4,24),inverse:ke(7,27),hidden:ke(8,28),strikethrough:ke(9,29),black:ke(30,39),red:ke(31,39),green:ke(32,39),yellow:ke(33,39),blue:ke(34,39),magenta:ke(35,39),cyan:ke(36,39),white:ke(37,39),gray:ke(90,39),bgBlack:ke(40,49),bgRed:ke(41,49),bgGreen:ke(42,49),bgYellow:ke(43,49),bgBlue:ke(44,49),bgMagenta:ke(45,49),bgCyan:ke(46,49),bgWhite:ke(47,49),blackBright:ke(90,39),redBright:ke(91,39),greenBright:ke(92,39),yellowBright:ke(93,39),blueBright:ke(94,39),magentaBright:ke(95,39),cyanBright:ke(96,39),whiteBright:ke(97,39),bgBlackBright:ke(100,49),bgRedBright:ke(101,49),bgGreenBright:ke(102,49),bgYellowBright:ke(103,49),bgBlueBright:ke(104,49),bgMagentaBright:ke(105,49),bgCyanBright:ke(106,49),bgWhiteBright:ke(107,49)};function PG(t=AG){return t?kC:Object.fromEntries(Object.keys(kC).map(e=>[e,String]))}const pn=PG();function NG(t,e="reset"){return pn[t]||pn[e]}const OG=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");function _u(t){return t.replace(new RegExp(OG,"g"),"")}const $C={solid:{tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502"},double:{tl:"\u2554",tr:"\u2557",bl:"\u255A",br:"\u255D",h:"\u2550",v:"\u2551"},doubleSingle:{tl:"\u2553",tr:"\u2556",bl:"\u2559",br:"\u255C",h:"\u2500",v:"\u2551"},doubleSingleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2551"},singleThick:{tl:"\u250F",tr:"\u2513",bl:"\u2517",br:"\u251B",h:"\u2501",v:"\u2503"},singleDouble:{tl:"\u2552",tr:"\u2555",bl:"\u2558",br:"\u255B",h:"\u2550",v:"\u2502"},singleDoubleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2550",v:"\u2502"},rounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2502"}},FG={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};function LG(t,e={}){const n={...e,style:{...FG,...e.style}},r=t.split(`
175
+ `),i=[],s=NG(n.style.borderColor),o={...typeof n.style.borderStyle=="string"?$C[n.style.borderStyle]||$C.solid:n.style.borderStyle};if(s)for(const h in o)o[h]=s(o[h]);const a=n.style.padding%2===0?n.style.padding:n.style.padding+1,c=r.length+a,u=Math.max(...r.map(h=>h.length))+a,l=u+a,d=n.style.marginLeft>0?" ".repeat(n.style.marginLeft):"";if(n.style.marginTop>0&&i.push("".repeat(n.style.marginTop)),n.title){const h=o.h.repeat(Math.floor((u-_u(n.title).length)/2)),p=o.h.repeat(u-_u(n.title).length-_u(h).length+a);i.push(`${d}${o.tl}${h}${n.title}${p}${o.tr}`)}else i.push(`${d}${o.tl}${o.h.repeat(l)}${o.tr}`);const f=n.style.valign==="center"?Math.floor((c-r.length)/2):n.style.valign==="top"?c-r.length-a:c-r.length;for(let h=0;h<c;h++)if(h<f||h>=f+r.length)i.push(`${d}${o.v}${" ".repeat(l)}${o.v}`);else{const p=r[h-f],m=" ".repeat(a),y=" ".repeat(u-_u(p).length);i.push(`${d}${o.v}${m}${p}${y}${o.v}`)}return i.push(`${d}${o.bl}${o.h.repeat(l)}${o.br}`),n.style.marginBottom>0&&i.push("".repeat(n.style.marginBottom)),i.join(`
176
+ `)}const MG=[["APPVEYOR"],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"]];function zG(t){for(const e of MG){const n=e[1]||e[0];if(t[n])return{name:e[0].toLowerCase(),...e[2]}}return t.SHELL&&t.SHELL==="/bin/jsh"?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}const gh=typeof process<"u"?process:{},Au=gh.env||{},CC=zG(Au),BG=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";gh.platform,CC.name;const qG=xu(Au.CI)||CC.ci!==!1;xu(gh.stdout&&gh.stdout.isTTY);const jG=xu(Au.DEBUG),_C=BG==="test"||xu(Au.TEST);xu(Au.MINIMAL);function xu(t){return t?t!=="false":!1}function UG({onlyFirst:t=!1}={}){const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}const GG=UG();function WG(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(GG,"")}function AC(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xC={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(r){var i=r.charCodeAt(0),s=r.length==2?r.charCodeAt(1):0,o=i;return 55296<=i&&i<=56319&&56320<=s&&s<=57343&&(i&=1023,s&=1023,o=i<<10|s,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},e.characterLength=function(r){var i=this.eastAsianWidth(r);return i=="F"||i=="W"||i=="A"?2:1};function n(r){return r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(r){for(var i=n(r),s=0,o=0;o<i.length;o++)s=s+this.characterLength(i[o]);return s},e.slice=function(r,i,s){textLen=e.length(r),i=i||0,s=s||1,i<0&&(i=textLen+i),s<0&&(s=textLen+s);for(var o="",a=0,c=n(r),u=0;u<c.length;u++){var l=c[u],d=e.length(l);if(a>=i-(d==2?1:0))if(a+d<=s)o+=l;else break;a+=d}return o}})(xC);var HG=xC.exports;const VG=AC(HG),KG=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function YG(t,e){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,countAnsiEscapeCodes:!1,...e},e.countAnsiEscapeCodes||(t=WG(t)),t.length===0))return 0;const n=e.ambiguousIsNarrow?1:2;let r=0;for(const{segment:i}of new Intl.Segmenter().segment(t)){const s=i.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879)){if(KG().test(i)){r+=2;continue}switch(VG.eastAsianWidth(i)){case"F":case"W":{r+=2;break}case"A":{r+=n;break}default:r+=1}}}return r}function IC(){return Oe.platform!=="win32"?Oe.env.TERM!=="linux":!!Oe.env.CI||!!Oe.env.WT_SESSION||!!Oe.env.TERMINUS_SUBLIME||Oe.env.ConEmuTask==="{cmd::Cmder}"||Oe.env.TERM_PROGRAM==="Terminus-Sublime"||Oe.env.TERM_PROGRAM==="vscode"||Oe.env.TERM==="xterm-256color"||Oe.env.TERM==="alacritty"||Oe.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const XG={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},JG={0:"red",1:"yellow"},ZG=IC(),jr=(t,e)=>ZG?t:e,PC={error:jr("\u2716","\xD7"),fatal:jr("\u2716","\xD7"),ready:jr("\u2714","\u221A"),warn:jr("\u26A0","\u203C"),info:jr("\u2139","i"),success:jr("\u2714","\u221A"),debug:jr("\u2699","D"),trace:jr("\u2192","\u2192"),fail:jr("\u2716","\xD7"),start:jr("\u25D0","o"),log:""};function NC(t){return Intl.Segmenter?YG(t):_u(t).length}class QG extends DC{formatStack(e){return`
177
+ `+EC(e).map(n=>" "+n.replace(/^at +/,r=>pn.gray(r)).replace(/\((.+)\)/,(r,i)=>`(${pn.cyan(i)})`)).join(`
178
+ `)}formatType(e,n,r){const i=XG[e.type]||JG[e.level]||"gray";if(n)return tW(i)(pn.black(` ${e.type.toUpperCase()} `));const s=typeof PC[e.type]=="string"?PC[e.type]:e.icon||e.type;return s?eW(i)(s):""}formatLogObj(e,n){const[r,...i]=this.formatArgs(e.args,n).split(`
179
+ `);if(e.type==="box")return LG(yh(r+(i.length>0?`
180
+ `+i.join(`
181
+ `):"")),{title:e.title?yh(e.title):void 0,style:e.style});const s=this.formatDate(e.date,n),o=s&&pn.gray(s),a=e.badge??e.level<2,c=this.formatType(e,a,n),u=e.tag?pn.gray(e.tag):"";let l;const d=this.filterAndJoin([c,yh(r)]),f=this.filterAndJoin(n.columns?[u,o]:[u]),h=(n.columns||0)-NC(d)-NC(f)-2;if(l=h>0&&(n.columns||0)>=80?d+" ".repeat(h)+f:(f?`${pn.gray(`[${f}]`)} `:"")+d,l+=yh(i.length>0?`
182
+ `+i.join(`
183
+ `):""),e.type==="trace"){const p=new Error("Trace: "+e.message);l+=this.formatStack(p.stack||"")}return a?`
184
+ `+l+`
185
+ `:l}}function yh(t){return t.replace(/`([^`]+)`/gm,(e,n)=>pn.cyan(n)).replace(/\s+_([^_]+)_\s+/gm,(e,n)=>` ${pn.underline(n)} `)}function eW(t="white"){return pn[t]||pn.white}function tW(t="bgWhite"){return pn[`bg${t[0].toUpperCase()}${t.slice(1)}`]||pn.bgWhite}function OC(t={}){let e=nW();return process.env.CONSOLA_LEVEL&&(e=Number.parseInt(process.env.CONSOLA_LEVEL)??e),DG({level:e,defaults:{level:e},stdout:process.stdout,stderr:process.stderr,prompt:(...n)=>import("../chunks/prompt.mjs").then(r=>r.prompt(...n)),reporters:t.reporters||[t.fancy??!(qG||_C)?new QG:new DC],...t})}function nW(){return jG?Xe.debug:_C?Xe.warn:Xe.info}OC();function rW(){return Xe.debug}const FC=rW(),Je=OC({level:FC,defaults:{level:FC},formatOptions:{colors:!0,compact:!1,date:!1}});function iW(t,e=1,n={}){const{indent:r=" ",includeEmptyLines:i=!1}=n;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(e<0)throw new RangeError(`Expected \`count\` to be at least 0, got \`${e}\``);if(typeof r!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r}\``);if(e===0)return t;const s=i?/^/gm:/^(?!\s*$)/gm;return t.replace(s,r.repeat(e))}function sW(t){for(var e=t.length,n=0,r=0;r<e;){var i=t.charCodeAt(r++);if(i&4294967168)if(!(i&4294965248))n+=2;else{if(i>=55296&&i<=56319&&r<e){var s=t.charCodeAt(r);(s&64512)===56320&&(++r,i=((i&1023)<<10)+(s&1023)+65536)}i&4294901760?n+=4:n+=3}else{n++;continue}}return n}function oW(t,e,n){for(var r=t.length,i=n,s=0;s<r;){var o=t.charCodeAt(s++);if(o&4294967168)if(!(o&4294965248))e[i++]=o>>6&31|192;else{if(o>=55296&&o<=56319&&s<r){var a=t.charCodeAt(s);(a&64512)===56320&&(++s,o=((o&1023)<<10)+(a&1023)+65536)}o&4294901760?(e[i++]=o>>18&7|240,e[i++]=o>>12&63|128,e[i++]=o>>6&63|128):(e[i++]=o>>12&15|224,e[i++]=o>>6&63|128)}else{e[i++]=o;continue}e[i++]=o&63|128}}var aW=new TextEncoder,cW=50;function uW(t,e,n){aW.encodeInto(t,e.subarray(n))}function lW(t,e,n){t.length>cW?uW(t,e,n):oW(t,e,n)}var dW=4096;function LC(t,e,n){for(var r=e,i=r+n,s=[],o="";r<i;){var a=t[r++];if(!(a&128))s.push(a);else if((a&224)===192){var c=t[r++]&63;s.push((a&31)<<6|c)}else if((a&240)===224){var c=t[r++]&63,u=t[r++]&63;s.push((a&31)<<12|c<<6|u)}else if((a&248)===240){var c=t[r++]&63,u=t[r++]&63,l=t[r++]&63,d=(a&7)<<18|c<<12|u<<6|l;d>65535&&(d-=65536,s.push(d>>>10&1023|55296),d=56320|d&1023),s.push(d)}else s.push(a);s.length>=dW&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return s.length>0&&(o+=String.fromCharCode.apply(String,s)),o}var fW=new TextDecoder,hW=200;function pW(t,e,n){var r=t.subarray(e,e+n);return fW.decode(r)}function mW(t,e,n){return n>hW?pW(t,e,n):LC(t,e,n)}var vh=function(){function t(e,n){this.type=e,this.data=n}return t}(),gW=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[s]=i[s])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ur=function(t){gW(e,t);function e(n){var r=t.call(this,n)||this,i=Object.create(e.prototype);return Object.setPrototypeOf(r,i),Object.defineProperty(r,"name",{configurable:!0,enumerable:!1,value:e.name}),r}return e}(Error),Iu=4294967295;function yW(t,e,n){var r=n/4294967296,i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function MC(t,e,n){var r=Math.floor(n/4294967296),i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function zC(t,e){var n=t.getInt32(e),r=t.getUint32(e+4);return n*4294967296+r}function vW(t,e){var n=t.getUint32(e),r=t.getUint32(e+4);return n*4294967296+r}var wW=-1,bW=4294967296-1,EW=17179869184-1;function DW(t){var e=t.sec,n=t.nsec;if(e>=0&&n>=0&&e<=EW)if(n===0&&e<=bW){var r=new Uint8Array(4),i=new DataView(r.buffer);return i.setUint32(0,e),r}else{var s=e/4294967296,o=e&4294967295,r=new Uint8Array(8),i=new DataView(r.buffer);return i.setUint32(0,n<<2|s&3),i.setUint32(4,o),r}else{var r=new Uint8Array(12),i=new DataView(r.buffer);return i.setUint32(0,n),MC(i,4,e),r}}function TW(t){var e=t.getTime(),n=Math.floor(e/1e3),r=(e-n*1e3)*1e6,i=Math.floor(r/1e9);return{sec:n+i,nsec:r-i*1e9}}function RW(t){if(t instanceof Date){var e=TW(t);return DW(e)}else return null}function SW(t){var e=new DataView(t.buffer,t.byteOffset,t.byteLength);switch(t.byteLength){case 4:{var n=e.getUint32(0),r=0;return{sec:n,nsec:r}}case 8:{var i=e.getUint32(0),s=e.getUint32(4),n=(i&3)*4294967296+s,r=i>>>2;return{sec:n,nsec:r}}case 12:{var n=zC(e,4),r=e.getUint32(0);return{sec:n,nsec:r}}default:throw new Ur("Unrecognized data size for timestamp (expected 4, 8, or 12): ".concat(t.length))}}function kW(t){var e=SW(t);return new Date(e.sec*1e3+e.nsec/1e6)}var $W={type:wW,encode:RW,decode:kW},BC=function(){function t(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register($W)}return t.prototype.register=function(e){var n=e.type,r=e.encode,i=e.decode;if(n>=0)this.encoders[n]=r,this.decoders[n]=i;else{var s=1+n;this.builtInEncoders[s]=r,this.builtInDecoders[s]=i}},t.prototype.tryToEncode=function(e,n){for(var r=0;r<this.builtInEncoders.length;r++){var i=this.builtInEncoders[r];if(i!=null){var s=i(e,n);if(s!=null){var o=-1-r;return new vh(o,s)}}}for(var r=0;r<this.encoders.length;r++){var i=this.encoders[r];if(i!=null){var s=i(e,n);if(s!=null){var o=r;return new vh(o,s)}}}return e instanceof vh?e:null},t.prototype.decode=function(e,n,r){var i=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return i?i(e,n,r):new vh(n,e)},t.defaultCodec=new t,t}();function wh(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t instanceof ArrayBuffer?new Uint8Array(t):Uint8Array.from(t)}function CW(t){if(t instanceof ArrayBuffer)return new DataView(t);var e=wh(t);return new DataView(e.buffer,e.byteOffset,e.byteLength)}var _W=100,AW=2048,xW=function(){function t(e){var n,r,i,s,o,a,c,u;this.extensionCodec=(n=e?.extensionCodec)!==null&&n!==void 0?n:BC.defaultCodec,this.context=e?.context,this.useBigInt64=(r=e?.useBigInt64)!==null&&r!==void 0?r:!1,this.maxDepth=(i=e?.maxDepth)!==null&&i!==void 0?i:_W,this.initialBufferSize=(s=e?.initialBufferSize)!==null&&s!==void 0?s:AW,this.sortKeys=(o=e?.sortKeys)!==null&&o!==void 0?o:!1,this.forceFloat32=(a=e?.forceFloat32)!==null&&a!==void 0?a:!1,this.ignoreUndefined=(c=e?.ignoreUndefined)!==null&&c!==void 0?c:!1,this.forceIntegerToFloat=(u=e?.forceIntegerToFloat)!==null&&u!==void 0?u:!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}return t.prototype.reinitializeState=function(){this.pos=0},t.prototype.encodeSharedRef=function(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)},t.prototype.encode=function(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)},t.prototype.doEncode=function(e,n){if(n>this.maxDepth)throw new Error("Too deep objects in depth ".concat(n));e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,n)},t.prototype.ensureBufferSizeToWrite=function(e){var n=this.pos+e;this.view.byteLength<n&&this.resizeBuffer(n*2)},t.prototype.resizeBuffer=function(e){var n=new ArrayBuffer(e),r=new Uint8Array(n),i=new DataView(n);r.set(this.bytes),this.view=i,this.bytes=r},t.prototype.encodeNil=function(){this.writeU8(192)},t.prototype.encodeBoolean=function(e){e===!1?this.writeU8(194):this.writeU8(195)},t.prototype.encodeNumber=function(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)},t.prototype.encodeNumberAsFloat=function(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))},t.prototype.encodeBigInt64=function(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))},t.prototype.writeStringHeader=function(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error("Too long string: ".concat(e," bytes in UTF-8"))},t.prototype.encodeString=function(e){var n=5,r=sW(e);this.ensureBufferSizeToWrite(n+r),this.writeStringHeader(r),lW(e,this.bytes,this.pos),this.pos+=r},t.prototype.encodeObject=function(e,n){var r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,n);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,n);else throw new Error("Unrecognized object: ".concat(Object.prototype.toString.apply(e)))},t.prototype.encodeBinary=function(e){var n=e.byteLength;if(n<256)this.writeU8(196),this.writeU8(n);else if(n<65536)this.writeU8(197),this.writeU16(n);else if(n<4294967296)this.writeU8(198),this.writeU32(n);else throw new Error("Too large binary: ".concat(n));var r=wh(e);this.writeU8a(r)},t.prototype.encodeArray=function(e,n){var r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw new Error("Too large array: ".concat(r));for(var i=0,s=e;i<s.length;i++){var o=s[i];this.doEncode(o,n+1)}},t.prototype.countWithoutUndefined=function(e,n){for(var r=0,i=0,s=n;i<s.length;i++){var o=s[i];e[o]!==void 0&&r++}return r},t.prototype.encodeMap=function(e,n){var r=Object.keys(e);this.sortKeys&&r.sort();var i=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(i<16)this.writeU8(128+i);else if(i<65536)this.writeU8(222),this.writeU16(i);else if(i<4294967296)this.writeU8(223),this.writeU32(i);else throw new Error("Too large map object: ".concat(i));for(var s=0,o=r;s<o.length;s++){var a=o[s],c=e[a];this.ignoreUndefined&&c===void 0||(this.encodeString(a),this.doEncode(c,n+1))}},t.prototype.encodeExtension=function(e){var n=e.data.length;if(n===1)this.writeU8(212);else if(n===2)this.writeU8(213);else if(n===4)this.writeU8(214);else if(n===8)this.writeU8(215);else if(n===16)this.writeU8(216);else if(n<256)this.writeU8(199),this.writeU8(n);else if(n<65536)this.writeU8(200),this.writeU16(n);else if(n<4294967296)this.writeU8(201),this.writeU32(n);else throw new Error("Too large extension object: ".concat(n));this.writeI8(e.type),this.writeU8a(e.data)},t.prototype.writeU8=function(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++},t.prototype.writeU8a=function(e){var n=e.length;this.ensureBufferSizeToWrite(n),this.bytes.set(e,this.pos),this.pos+=n},t.prototype.writeI8=function(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++},t.prototype.writeU16=function(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2},t.prototype.writeI16=function(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2},t.prototype.writeU32=function(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4},t.prototype.writeI32=function(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4},t.prototype.writeF32=function(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4},t.prototype.writeF64=function(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8},t.prototype.writeU64=function(e){this.ensureBufferSizeToWrite(8),yW(this.view,this.pos,e),this.pos+=8},t.prototype.writeI64=function(e){this.ensureBufferSizeToWrite(8),MC(this.view,this.pos,e),this.pos+=8},t.prototype.writeBigUint64=function(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8},t.prototype.writeBigInt64=function(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8},t}();function IW(t,e){var n=new xW(e);return n.encodeSharedRef(t)}function _v(t){return"".concat(t<0?"-":"","0x").concat(Math.abs(t).toString(16).padStart(2,"0"))}var PW=16,NW=16,OW=function(){function t(e,n){e===void 0&&(e=PW),n===void 0&&(n=NW),this.maxKeyLength=e,this.maxLengthPerKey=n,this.hit=0,this.miss=0,this.caches=[];for(var r=0;r<this.maxKeyLength;r++)this.caches.push([])}return t.prototype.canBeCached=function(e){return e>0&&e<=this.maxKeyLength},t.prototype.find=function(e,n,r){var i=this.caches[r-1];e:for(var s=0,o=i;s<o.length;s++){for(var a=o[s],c=a.bytes,u=0;u<r;u++)if(c[u]!==e[n+u])continue e;return a.str}return null},t.prototype.store=function(e,n){var r=this.caches[e.length-1],i={bytes:e,str:n};r.length>=this.maxLengthPerKey?r[Math.random()*r.length|0]=i:r.push(i)},t.prototype.decode=function(e,n,r){var i=this.find(e,n,r);if(i!=null)return this.hit++,i;this.miss++;var s=LC(e,n,r),o=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(o,s),s},t}(),FW=function(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(l){try{u(r.next(l))}catch(d){o(d)}}function c(l){try{u(r.throw(l))}catch(d){o(d)}}function u(l){l.done?s(l.value):i(l.value).then(a,c)}u((r=r.apply(t,e||[])).next())})},Av=function(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(l){return c([u,l])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(n=0)),n;)try{if(r=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(l){u=[6,l],i=0}finally{r=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},qC=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a})},o)}},ca=function(t){return this instanceof ca?(this.v=t,this):new ca(t)},LW=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(f){r[f]&&(i[f]=function(h){return new Promise(function(p,m){s.push([f,h,p,m])>1||a(f,h)})})}function a(f,h){try{c(r[f](h))}catch(p){d(s[0][3],p)}}function c(f){f.value instanceof ca?Promise.resolve(f.value.v).then(u,l):d(s[0][2],f)}function u(f){a("next",f)}function l(f){a("throw",f)}function d(f,h){f(h),s.shift(),s.length&&a(s[0][0],s[0][1])}},jC="array",bh="map_key",MW="map_value",zW=function(t){return typeof t=="string"||typeof t=="number"},Pu=-1,xv=new DataView(new ArrayBuffer(0)),BW=new Uint8Array(xv.buffer);try{xv.getInt8(0)}catch(t){if(!(t instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var Iv=RangeError,UC=new Iv("Insufficient data"),qW=new OW,jW=function(){function t(e){var n,r,i,s,o,a,c;this.totalPos=0,this.pos=0,this.view=xv,this.bytes=BW,this.headByte=Pu,this.stack=[],this.extensionCodec=(n=e?.extensionCodec)!==null&&n!==void 0?n:BC.defaultCodec,this.context=e?.context,this.useBigInt64=(r=e?.useBigInt64)!==null&&r!==void 0?r:!1,this.maxStrLength=(i=e?.maxStrLength)!==null&&i!==void 0?i:Iu,this.maxBinLength=(s=e?.maxBinLength)!==null&&s!==void 0?s:Iu,this.maxArrayLength=(o=e?.maxArrayLength)!==null&&o!==void 0?o:Iu,this.maxMapLength=(a=e?.maxMapLength)!==null&&a!==void 0?a:Iu,this.maxExtLength=(c=e?.maxExtLength)!==null&&c!==void 0?c:Iu,this.keyDecoder=e?.keyDecoder!==void 0?e.keyDecoder:qW}return t.prototype.reinitializeState=function(){this.totalPos=0,this.headByte=Pu,this.stack.length=0},t.prototype.setBuffer=function(e){this.bytes=wh(e),this.view=CW(this.bytes),this.pos=0},t.prototype.appendBuffer=function(e){if(this.headByte===Pu&&!this.hasRemaining(1))this.setBuffer(e);else{var n=this.bytes.subarray(this.pos),r=wh(e),i=new Uint8Array(n.length+r.length);i.set(n),i.set(r,n.length),this.setBuffer(i)}},t.prototype.hasRemaining=function(e){return this.view.byteLength-this.pos>=e},t.prototype.createExtraByteError=function(e){var n=this,r=n.view,i=n.pos;return new RangeError("Extra ".concat(r.byteLength-i," of ").concat(r.byteLength," byte(s) found at buffer[").concat(e,"]"))},t.prototype.decode=function(e){this.reinitializeState(),this.setBuffer(e);var n=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return n},t.prototype.decodeMulti=function(e){return Av(this,function(n){switch(n.label){case 0:this.reinitializeState(),this.setBuffer(e),n.label=1;case 1:return this.hasRemaining(1)?[4,this.doDecodeSync()]:[3,3];case 2:return n.sent(),[3,1];case 3:return[2]}})},t.prototype.decodeAsync=function(e){var n,r,i,s,o,a,c;return FW(this,void 0,void 0,function(){var u,l,d,f,h,p,m,y;return Av(this,function(g){switch(g.label){case 0:u=!1,g.label=1;case 1:g.trys.push([1,6,7,12]),n=!0,r=qC(e),g.label=2;case 2:return[4,r.next()];case 3:if(i=g.sent(),s=i.done,!!s)return[3,5];c=i.value,n=!1;try{if(d=c,u)throw this.createExtraByteError(this.totalPos);this.appendBuffer(d);try{l=this.doDecodeSync(),u=!0}catch(w){if(!(w instanceof Iv))throw w}this.totalPos+=this.pos}finally{n=!0}g.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return f=g.sent(),o={error:f},[3,12];case 7:return g.trys.push([7,,10,11]),!n&&!s&&(a=r.return)?[4,a.call(r)]:[3,9];case 8:g.sent(),g.label=9;case 9:return[3,11];case 10:if(o)throw o.error;return[7];case 11:return[7];case 12:if(u){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return[2,l]}throw h=this,p=h.headByte,m=h.pos,y=h.totalPos,new RangeError("Insufficient data in parsing ".concat(_v(p)," at ").concat(y," (").concat(m," in the current buffer)"))}})})},t.prototype.decodeArrayStream=function(e){return this.decodeMultiAsync(e,!0)},t.prototype.decodeStream=function(e){return this.decodeMultiAsync(e,!1)},t.prototype.decodeMultiAsync=function(e,n){return LW(this,arguments,function(){var i,s,o,a,c,u,l,d,f,h,p,m;return Av(this,function(y){switch(y.label){case 0:i=n,s=-1,y.label=1;case 1:y.trys.push([1,15,16,21]),o=!0,a=qC(e),y.label=2;case 2:return[4,ca(a.next())];case 3:if(c=y.sent(),f=c.done,!!f)return[3,14];m=c.value,o=!1,y.label=4;case 4:if(y.trys.push([4,,12,13]),u=m,n&&s===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(u),i&&(s=this.readArraySize(),i=!1,this.complete()),y.label=5;case 5:y.trys.push([5,10,,11]),y.label=6;case 6:return[4,ca(this.doDecodeSync())];case 7:return[4,y.sent()];case 8:return y.sent(),--s===0?[3,9]:[3,6];case 9:return[3,11];case 10:if(l=y.sent(),!(l instanceof Iv))throw l;return[3,11];case 11:return this.totalPos+=this.pos,[3,13];case 12:return o=!0,[7];case 13:return[3,2];case 14:return[3,21];case 15:return d=y.sent(),h={error:d},[3,21];case 16:return y.trys.push([16,,19,20]),!o&&!f&&(p=a.return)?[4,ca(p.call(a))]:[3,18];case 17:y.sent(),y.label=18;case 18:return[3,20];case 19:if(h)throw h.error;return[7];case 20:return[7];case 21:return[2]}})})},t.prototype.doDecodeSync=function(){e:for(;;){var e=this.readHeadByte(),n=void 0;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){var r=e-128;if(r!==0){this.pushMapState(r),this.complete();continue e}else n={}}else if(e<160){var r=e-144;if(r!==0){this.pushArrayState(r),this.complete();continue e}else n=[]}else{var i=e-160;n=this.decodeUtf8String(i,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)this.useBigInt64?n=this.readU64AsBigInt():n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)this.useBigInt64?n=this.readI64AsBigInt():n=this.readI64();else if(e===217){var i=this.lookU8();n=this.decodeUtf8String(i,1)}else if(e===218){var i=this.lookU16();n=this.decodeUtf8String(i,2)}else if(e===219){var i=this.lookU32();n=this.decodeUtf8String(i,4)}else if(e===220){var r=this.readU16();if(r!==0){this.pushArrayState(r),this.complete();continue e}else n=[]}else if(e===221){var r=this.readU32();if(r!==0){this.pushArrayState(r),this.complete();continue e}else n=[]}else if(e===222){var r=this.readU16();if(r!==0){this.pushMapState(r),this.complete();continue e}else n={}}else if(e===223){var r=this.readU32();if(r!==0){this.pushMapState(r),this.complete();continue e}else n={}}else if(e===196){var r=this.lookU8();n=this.decodeBinary(r,1)}else if(e===197){var r=this.lookU16();n=this.decodeBinary(r,2)}else if(e===198){var r=this.lookU32();n=this.decodeBinary(r,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){var r=this.lookU8();n=this.decodeExtension(r,1)}else if(e===200){var r=this.lookU16();n=this.decodeExtension(r,2)}else if(e===201){var r=this.lookU32();n=this.decodeExtension(r,4)}else throw new Ur("Unrecognized type byte: ".concat(_v(e)));this.complete();for(var s=this.stack;s.length>0;){var o=s[s.length-1];if(o.type===jC)if(o.array[o.position]=n,o.position++,o.position===o.size)s.pop(),n=o.array;else continue e;else if(o.type===bh){if(!zW(n))throw new Ur("The type of key must be string or number but "+typeof n);if(n==="__proto__")throw new Ur("The key __proto__ is not allowed");o.key=n,o.type=MW;continue e}else if(o.map[o.key]=n,o.readCount++,o.readCount===o.size)s.pop(),n=o.map;else{o.key=null,o.type=bh;continue e}}return n}},t.prototype.readHeadByte=function(){return this.headByte===Pu&&(this.headByte=this.readU8()),this.headByte},t.prototype.complete=function(){this.headByte=Pu},t.prototype.readArraySize=function(){var e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new Ur("Unrecognized array type byte: ".concat(_v(e)))}}},t.prototype.pushMapState=function(e){if(e>this.maxMapLength)throw new Ur("Max length exceeded: map length (".concat(e,") > maxMapLengthLength (").concat(this.maxMapLength,")"));this.stack.push({type:bh,size:e,key:null,readCount:0,map:{}})},t.prototype.pushArrayState=function(e){if(e>this.maxArrayLength)throw new Ur("Max length exceeded: array length (".concat(e,") > maxArrayLength (").concat(this.maxArrayLength,")"));this.stack.push({type:jC,size:e,array:new Array(e),position:0})},t.prototype.decodeUtf8String=function(e,n){var r;if(e>this.maxStrLength)throw new Ur("Max length exceeded: UTF-8 byte length (".concat(e,") > maxStrLength (").concat(this.maxStrLength,")"));if(this.bytes.byteLength<this.pos+n+e)throw UC;var i=this.pos+n,s;return this.stateIsMapKey()&&(!((r=this.keyDecoder)===null||r===void 0)&&r.canBeCached(e))?s=this.keyDecoder.decode(this.bytes,i,e):s=mW(this.bytes,i,e),this.pos+=n+e,s},t.prototype.stateIsMapKey=function(){if(this.stack.length>0){var e=this.stack[this.stack.length-1];return e.type===bh}return!1},t.prototype.decodeBinary=function(e,n){if(e>this.maxBinLength)throw new Ur("Max length exceeded: bin length (".concat(e,") > maxBinLength (").concat(this.maxBinLength,")"));if(!this.hasRemaining(e+n))throw UC;var r=this.pos+n,i=this.bytes.subarray(r,r+e);return this.pos+=n+e,i},t.prototype.decodeExtension=function(e,n){if(e>this.maxExtLength)throw new Ur("Max length exceeded: ext length (".concat(e,") > maxExtLength (").concat(this.maxExtLength,")"));var r=this.view.getInt8(this.pos+n),i=this.decodeBinary(e,n+1);return this.extensionCodec.decode(i,r,this.context)},t.prototype.lookU8=function(){return this.view.getUint8(this.pos)},t.prototype.lookU16=function(){return this.view.getUint16(this.pos)},t.prototype.lookU32=function(){return this.view.getUint32(this.pos)},t.prototype.readU8=function(){var e=this.view.getUint8(this.pos);return this.pos++,e},t.prototype.readI8=function(){var e=this.view.getInt8(this.pos);return this.pos++,e},t.prototype.readU16=function(){var e=this.view.getUint16(this.pos);return this.pos+=2,e},t.prototype.readI16=function(){var e=this.view.getInt16(this.pos);return this.pos+=2,e},t.prototype.readU32=function(){var e=this.view.getUint32(this.pos);return this.pos+=4,e},t.prototype.readI32=function(){var e=this.view.getInt32(this.pos);return this.pos+=4,e},t.prototype.readU64=function(){var e=vW(this.view,this.pos);return this.pos+=8,e},t.prototype.readI64=function(){var e=zC(this.view,this.pos);return this.pos+=8,e},t.prototype.readU64AsBigInt=function(){var e=this.view.getBigUint64(this.pos);return this.pos+=8,e},t.prototype.readI64AsBigInt=function(){var e=this.view.getBigInt64(this.pos);return this.pos+=8,e},t.prototype.readF32=function(){var e=this.view.getFloat32(this.pos);return this.pos+=4,e},t.prototype.readF64=function(){var e=this.view.getFloat64(this.pos);return this.pos+=8,e},t}();function UW(t,e){var n=new jW(e);return n.decode(t)}const GW=t=>typeof ArrayBuffer=="function"&&t instanceof ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]",WW=(t,e=0,n=t.byteLength-e)=>{if(!GW(t))throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof t} (${t})`);return Dm.from(t,e,n)},GC=(t,e)=>{if(typeof t!="string")throw new TypeError(`The "input" argument must be of type string. Received type ${typeof t} (${t})`);return e?Dm.from(t,e):Dm.from(t)},HW=/^[A-Za-z0-9+/]*={0,2}$/,VW=t=>{if(t.length*3%4!==0)throw new TypeError("Incorrect padding on base64 string.");if(!HW.exec(t))throw new TypeError("Invalid base64 string.");const e=GC(t,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)},KW=t=>{const e=GC(t,"utf8");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)},YW=t=>{let e;if(typeof t=="string"?e=KW(t):e=t,typeof e!="object"||typeof e.byteOffset!="number"||typeof e.byteLength!="number")throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");return WW(e.buffer,e.byteOffset,e.byteLength).toString("base64")},XW=`likec4lib { icons {
186
+ aws:activate
187
+ aws:alexa-for-business
188
+ aws:amplify
189
+ aws:apache-mxnet-on-aws
190
+ aws:api-gateway
191
+ aws:app-config
192
+ aws:app-flow
193
+ aws:app-mesh
194
+ aws:app-runner
195
+ aws:app-stream
196
+ aws:app-sync
197
+ aws:application-auto-scaling
198
+ aws:application-composer
199
+ aws:application-cost-profiler
200
+ aws:application-discovery-service
201
+ aws:application-migration-service
202
+ aws:artifact
203
+ aws:athena
204
+ aws:audit-manager
205
+ aws:augmented-ai-a2i
206
+ aws:aurora
207
+ aws:auto-scaling
208
+ aws:backint-agent
209
+ aws:backup
210
+ aws:batch
211
+ aws:billing-conductor
212
+ aws:bottlerocket
213
+ aws:braket
214
+ aws:budgets
215
+ aws:certificate-manager
216
+ aws:chatbot
217
+ aws:chime
218
+ aws:chime-sdk
219
+ aws:chime-voice-connector
220
+ aws:clean-rooms
221
+ aws:client-vpn
222
+ aws:cloud-control-api
223
+ aws:cloud-development-kit
224
+ aws:cloud-directory
225
+ aws:cloud-formation
226
+ aws:cloud-front
227
+ aws:cloud-hsm
228
+ aws:cloud-map
229
+ aws:cloud-search
230
+ aws:cloud-shell
231
+ aws:cloud-trail
232
+ aws:cloud-wan
233
+ aws:cloud-watch
234
+ aws:cloud9
235
+ aws:code-artifact
236
+ aws:code-build
237
+ aws:code-catalyst
238
+ aws:code-commit
239
+ aws:code-deploy
240
+ aws:code-guru
241
+ aws:code-pipeline
242
+ aws:code-star
243
+ aws:code-whisperer
244
+ aws:cognito
245
+ aws:command-line-interface
246
+ aws:comprehend
247
+ aws:comprehend-medical
248
+ aws:compute-optimizer
249
+ aws:config
250
+ aws:connect
251
+ aws:console-mobile-application
252
+ aws:control-tower
253
+ aws:corretto
254
+ aws:cost-and-usage-report
255
+ aws:cost-explorer
256
+ aws:data-exchange
257
+ aws:data-pipeline
258
+ aws:data-sync
259
+ aws:data-zone
260
+ aws:database-migration-service
261
+ aws:deep-composer
262
+ aws:deep-learning-amis
263
+ aws:deep-learning-containers
264
+ aws:deep-lens
265
+ aws:deep-racer
266
+ aws:detective
267
+ aws:dev-ops-guru
268
+ aws:device-farm
269
+ aws:direct-connect
270
+ aws:directory-service
271
+ aws:distro-for-open-telemetry
272
+ aws:document-db
273
+ aws:dynamo-db
274
+ aws:ec2
275
+ aws:ec2-auto-scaling
276
+ aws:ec2-image-builder
277
+ aws:ecs-anywhere
278
+ aws:efs
279
+ aws:eks-anywhere
280
+ aws:eks-cloud
281
+ aws:eks-distro
282
+ aws:elasti-cache
283
+ aws:elastic-beanstalk
284
+ aws:elastic-block-store
285
+ aws:elastic-container-registry
286
+ aws:elastic-container-service
287
+ aws:elastic-disaster-recovery
288
+ aws:elastic-fabric-adapter
289
+ aws:elastic-inference
290
+ aws:elastic-kubernetes-service
291
+ aws:elastic-load-balancing
292
+ aws:elastic-transcoder
293
+ aws:elemental-appliances-software
294
+ aws:elemental-conductor
295
+ aws:elemental-delta
296
+ aws:elemental-link
297
+ aws:elemental-live
298
+ aws:elemental-media-connect
299
+ aws:elemental-media-convert
300
+ aws:elemental-media-live
301
+ aws:elemental-media-package
302
+ aws:elemental-media-store
303
+ aws:elemental-media-tailor
304
+ aws:elemental-server
305
+ aws:emr
306
+ aws:event-bridge
307
+ aws:express-workflows
308
+ aws:fargate
309
+ aws:fault-injection-simulator
310
+ aws:file-cache
311
+ aws:fin-space
312
+ aws:firewall-manager
313
+ aws:forecast
314
+ aws:fraud-detector
315
+ aws:free-rtos
316
+ aws:fsx
317
+ aws:fsx-for-lustre
318
+ aws:fsx-for-net-app-ontap
319
+ aws:fsx-for-open-zfs
320
+ aws:fsx-for-wfs
321
+ aws:game-kit
322
+ aws:game-lift
323
+ aws:game-sparks
324
+ aws:genomics-cli
325
+ aws:global-accelerator
326
+ aws:glue
327
+ aws:glue-data-brew
328
+ aws:glue-elastic-views
329
+ aws:ground-station
330
+ aws:guard-duty
331
+ aws:health-lake
332
+ aws:honeycode
333
+ aws:iam-identity-center
334
+ aws:identity-and-access-management
335
+ aws:inspector
336
+ aws:interactive-video-service
337
+ aws:io-t-1-click
338
+ aws:io-t-analytics
339
+ aws:io-t-button
340
+ aws:io-t-core
341
+ aws:io-t-device-defender
342
+ aws:io-t-device-management
343
+ aws:io-t-edu-kit
344
+ aws:io-t-events
345
+ aws:io-t-express-link
346
+ aws:io-t-fleet-wise
347
+ aws:io-t-greengrass
348
+ aws:io-t-robo-runner
349
+ aws:io-t-site-wise
350
+ aws:io-t-things-graph
351
+ aws:io-t-twin-maker
352
+ aws:iq
353
+ aws:kendra
354
+ aws:key-management-service
355
+ aws:keyspaces
356
+ aws:kinesis
357
+ aws:kinesis-data-analytics
358
+ aws:kinesis-data-streams
359
+ aws:kinesis-firehose
360
+ aws:kinesis-video-streams
361
+ aws:lake-formation
362
+ aws:lambda
363
+ aws:launch-wizard
364
+ aws:lex
365
+ aws:license-manager
366
+ aws:lightsail
367
+ aws:local-zones
368
+ aws:location-service
369
+ aws:lookout-for-equipment
370
+ aws:lookout-for-metrics
371
+ aws:lookout-for-vision
372
+ aws:lumberyard
373
+ aws:macie
374
+ aws:mainframe-modernization
375
+ aws:managed-blockchain
376
+ aws:managed-grafana
377
+ aws:managed-service-for-prometheus
378
+ aws:managed-services
379
+ aws:managed-streaming-for-apache-kafka
380
+ aws:managed-workflows-for-apache-airflow
381
+ aws:management-console
382
+ aws:marketplace-dark
383
+ aws:marketplace-light
384
+ aws:memory-db-for-redis
385
+ aws:migration-evaluator
386
+ aws:migration-hub
387
+ aws:monitron
388
+ aws:mq
389
+ aws:neptune
390
+ aws:network-firewall
391
+ aws:neuron
392
+ aws:nice-dcv
393
+ aws:nice-engin-frame
394
+ aws:nimble-studio
395
+ aws:nitro-enclaves
396
+ aws:omics
397
+ aws:open-3d-engine
398
+ aws:open-search-service
399
+ aws:ops-works
400
+ aws:organizations
401
+ aws:outposts-family
402
+ aws:outposts-rack
403
+ aws:outposts-servers
404
+ aws:panorama
405
+ aws:parallel-cluster
406
+ aws:personal-health-dashboard
407
+ aws:personalize
408
+ aws:pinpoint
409
+ aws:pinpoint-apis
410
+ aws:polly
411
+ aws:private-5g
412
+ aws:private-certificate-authority
413
+ aws:private-link
414
+ aws:professional-services
415
+ aws:proton
416
+ aws:quantum-ledger-database
417
+ aws:quick-sight
418
+ aws:rds
419
+ aws:rds-on-vmware
420
+ aws:re-post
421
+ aws:red-hat-open-shift-service-on-aws
422
+ aws:redshift
423
+ aws:rekognition
424
+ aws:reserved-instance-reporting
425
+ aws:resilience-hub
426
+ aws:resource-access-manager
427
+ aws:resource-explorer
428
+ aws:robo-maker
429
+ aws:route-53
430
+ aws:s3-on-outposts
431
+ aws:sage-maker
432
+ aws:sage-maker-ground-truth
433
+ aws:sage-maker-studio-lab
434
+ aws:savings-plans
435
+ aws:secrets-manager
436
+ aws:security-hub
437
+ aws:security-lake
438
+ aws:server-migration-service
439
+ aws:serverless-application-repository
440
+ aws:service-catalog
441
+ aws:service-management-connector
442
+ aws:shield
443
+ aws:signer
444
+ aws:sim-space-weaver
445
+ aws:simple-email-service
446
+ aws:simple-notification-service
447
+ aws:simple-queue-service
448
+ aws:simple-storage-service
449
+ aws:simple-storage-service-glacier
450
+ aws:site-to-site-vpn
451
+ aws:snowball
452
+ aws:snowball-edge
453
+ aws:snowcone
454
+ aws:snowmobile
455
+ aws:step-functions
456
+ aws:storage-gateway
457
+ aws:sumerian
458
+ aws:supply-chain
459
+ aws:support
460
+ aws:systems-manager
461
+ aws:tensor-flow-on-aws
462
+ aws:textract
463
+ aws:thinkbox-deadline
464
+ aws:thinkbox-frost
465
+ aws:thinkbox-krakatoa
466
+ aws:thinkbox-sequoia
467
+ aws:thinkbox-stoke
468
+ aws:thinkbox-xmesh
469
+ aws:timestream
470
+ aws:tools-and-sdks
471
+ aws:torch-serve
472
+ aws:training-certification
473
+ aws:transcribe
474
+ aws:transfer-family
475
+ aws:transit-gateway
476
+ aws:translate
477
+ aws:trusted-advisor
478
+ aws:verified-access
479
+ aws:verified-permissions
480
+ aws:virtual-private-cloud
481
+ aws:vmware-cloud-on-aws
482
+ aws:vpc-lattice
483
+ aws:waf
484
+ aws:wavelength
485
+ aws:well-architected-tool
486
+ aws:wickr
487
+ aws:work-docs
488
+ aws:work-docs-sdk
489
+ aws:work-link
490
+ aws:work-mail
491
+ aws:work-spaces-family
492
+ aws:x-ray
493
+ azure:abs-member
494
+ azure:active-directory-connect-health
495
+ azure:activity-log
496
+ azure:administrative-units
497
+ azure:advisor
498
+ azure:ai-studio
499
+ azure:aks-automatic
500
+ azure:aks-istio
501
+ azure:alerts
502
+ azure:all-resources
503
+ azure:analysis-services
504
+ azure:anomaly-detector
505
+ azure:api-center
506
+ azure:api-connections
507
+ azure:api-management-services
508
+ azure:api-proxy
509
+ azure:app-compliance-automation
510
+ azure:app-configuration
511
+ azure:app-registrations
512
+ azure:app-service-certificates
513
+ azure:app-service-domains
514
+ azure:app-service-environments
515
+ azure:app-service-plans
516
+ azure:app-services
517
+ azure:app-space
518
+ azure:app-space-component
519
+ azure:applens
520
+ azure:application-gateway-containers
521
+ azure:application-gateways
522
+ azure:application-group
523
+ azure:application-insights
524
+ azure:application-security-groups
525
+ azure:aquila
526
+ azure:arc-data-services
527
+ azure:arc-kubernetes
528
+ azure:arc-machines
529
+ azure:arc-sql-managed-instance
530
+ azure:arc-sql-server
531
+ azure:atm-multistack
532
+ azure:auto-scale
533
+ azure:automanaged-vm
534
+ azure:automation-accounts
535
+ azure:availability-sets
536
+ azure:avs-vm
537
+ azure:azure-a
538
+ azure:azure-ad-b2c
539
+ azure:azure-api-for-fhir
540
+ azure:azure-applied-ai-services
541
+ azure:azure-arc
542
+ azure:azure-attestation
543
+ azure:azure-backup-center
544
+ azure:azure-blockchain-service
545
+ azure:azure-center-for-sap
546
+ azure:azure-chaos-studio
547
+ azure:azure-cloud-shell
548
+ azure:azure-communication-services
549
+ azure:azure-communications-gateway
550
+ azure:azure-compute-galleries
551
+ azure:azure-cosmos-db
552
+ azure:azure-data-catalog
553
+ azure:azure-data-explorer-clusters
554
+ azure:azure-database-maria-db-server
555
+ azure:azure-database-migration-services
556
+ azure:azure-database-my-sql-server
557
+ azure:azure-database-postgre-sql-server
558
+ azure:azure-database-postgre-sql-server-group
559
+ azure:azure-databox-gateway
560
+ azure:azure-databricks
561
+ azure:azure-deployment-environments
562
+ azure:azure-dev-ops
563
+ azure:azure-dev-tunnels
564
+ azure:azure-edge-hardware-center
565
+ azure:azure-experimentation-studio
566
+ azure:azure-fileshares
567
+ azure:azure-firewall-manager
568
+ azure:azure-firewall-policy
569
+ azure:azure-hcp-cache
570
+ azure:azure-hpc-workbenches
571
+ azure:azure-hybrid-center
572
+ azure:azure-information-protection
573
+ azure:azure-io-t-operations
574
+ azure:azure-lighthouse
575
+ azure:azure-load-testing
576
+ azure:azure-managed-grafana
577
+ azure:azure-maps-accounts
578
+ azure:azure-media-service
579
+ azure:azure-migrate
580
+ azure:azure-monitor-dashboard
581
+ azure:azure-monitor-pipeline
582
+ azure:azure-monitors-for-sap-solutions
583
+ azure:azure-net-app-files
584
+ azure:azure-network-function-manager
585
+ azure:azure-network-function-manager-functions
586
+ azure:azure-object-understanding
587
+ azure:azure-open-ai
588
+ azure:azure-operator-5g-core
589
+ azure:azure-operator-insights
590
+ azure:azure-operator-nexus
591
+ azure:azure-operator-service-manager
592
+ azure:azure-orbital
593
+ azure:azure-programmable-connectivity
594
+ azure:azure-purview-accounts
595
+ azure:azure-quotas
596
+ azure:azure-red-hat-open-shift
597
+ azure:azure-sentinel
598
+ azure:azure-service-bus
599
+ azure:azure-sphere
600
+ azure:azure-spring-apps
601
+ azure:azure-sql
602
+ azure:azure-sql-edge
603
+ azure:azure-sql-server-stretch-databases
604
+ azure:azure-sql-vm
605
+ azure:azure-stack
606
+ azure:azure-stack-edge
607
+ azure:azure-stack-hci-sizer
608
+ azure:azure-storage-mover
609
+ azure:azure-support-center-blue
610
+ azure:azure-sustainability
611
+ azure:azure-synapse-analytics
612
+ azure:azure-token-service
613
+ azure:azure-video-indexer
614
+ azure:azure-virtual-desktop
615
+ azure:azure-vmware-solution
616
+ azure:azure-workbooks
617
+ azure:azurite
618
+ azure:backlog
619
+ azure:backup-vault
620
+ azure:bare-metal-infrastructure
621
+ azure:bastions
622
+ azure:batch-accounts
623
+ azure:batch-ai
624
+ azure:biz-talk
625
+ azure:blob-block
626
+ azure:blob-page
627
+ azure:blockchain-applications
628
+ azure:blueprints
629
+ azure:bonsai
630
+ azure:bot-services
631
+ azure:branch
632
+ azure:browser
633
+ azure:bug
634
+ azure:builds
635
+ azure:business-process-tracking
636
+ azure:cache
637
+ azure:cache-redis
638
+ azure:capacity
639
+ azure:capacity-reservation-groups
640
+ azure:cdn-profiles
641
+ azure:central-service-instance-for-sap
642
+ azure:ceres
643
+ azure:change-analysis
644
+ azure:client-apps
645
+ azure:cloud-services-classic
646
+ azure:cloud-services-extended-support
647
+ azure:cloud-test
648
+ azure:code
649
+ azure:code-optimization
650
+ azure:cognitive-search
651
+ azure:cognitive-services
652
+ azure:cognitive-services-decisions
653
+ azure:collaborative-service
654
+ azure:commit
655
+ azure:community-images
656
+ azure:compliance
657
+ azure:compliance-center
658
+ azure:compute-fleet
659
+ azure:computer-vision
660
+ azure:conditional-access
661
+ azure:confidential-ledgers
662
+ azure:connected-cache
663
+ azure:connected-vehicle-platform
664
+ azure:connections
665
+ azure:consortium
666
+ azure:container-apps-environments
667
+ azure:container-instances
668
+ azure:container-registries
669
+ azure:container-services-deprecated
670
+ azure:content-moderators
671
+ azure:content-safety
672
+ azure:controls
673
+ azure:controls-horizontal
674
+ azure:cost-alerts
675
+ azure:cost-analysis
676
+ azure:cost-budgets
677
+ azure:cost-export
678
+ azure:cost-management
679
+ azure:cost-management-and-billing
680
+ azure:counter
681
+ azure:cubes
682
+ azure:custom-ip-prefix
683
+ azure:custom-vision
684
+ azure:customer-lockbox-for-microsoft-azure
685
+ azure:dashboard
686
+ azure:dashboard-hub
687
+ azure:data-box
688
+ azure:data-collection-rules
689
+ azure:data-factories
690
+ azure:data-lake-analytics
691
+ azure:data-lake-storage-gen1
692
+ azure:data-lake-store-gen1
693
+ azure:data-share-invitations
694
+ azure:data-shares
695
+ azure:database-instance-for-sap
696
+ azure:ddo-s-protection-plans
697
+ azure:dedicated-hsm
698
+ azure:defender-cm-local-manager
699
+ azure:defender-dcs-controller
700
+ azure:defender-distributer-control-system
701
+ azure:defender-engineering-station
702
+ azure:defender-external-management
703
+ azure:defender-freezer-monitor
704
+ azure:defender-historian
705
+ azure:defender-hmi
706
+ azure:defender-industrial-packaging-system
707
+ azure:defender-industrial-printer
708
+ azure:defender-industrial-robot
709
+ azure:defender-industrial-scale-system
710
+ azure:defender-marquee
711
+ azure:defender-meter
712
+ azure:defender-plc
713
+ azure:defender-pneumatic-device
714
+ azure:defender-programable-board
715
+ azure:defender-relay
716
+ azure:defender-robot-controller
717
+ azure:defender-rtu
718
+ azure:defender-sensor
719
+ azure:defender-slot
720
+ azure:defender-web-guiding-system
721
+ azure:detonation
722
+ azure:dev-console
723
+ azure:dev-ops-starter
724
+ azure:dev-test-labs
725
+ azure:device-compliance
726
+ azure:device-configuration
727
+ azure:device-enrollment
728
+ azure:device-provisioning-services
729
+ azure:device-security-apple
730
+ azure:device-security-google
731
+ azure:device-security-windows
732
+ azure:device-update-io-t-hub
733
+ azure:devices
734
+ azure:diagnostics-settings
735
+ azure:digital-twins
736
+ azure:disk-encryption-sets
737
+ azure:disk-pool
738
+ azure:disks
739
+ azure:disks-classic
740
+ azure:disks-snapshots
741
+ azure:dns-multistack
742
+ azure:dns-private-resolver
743
+ azure:dns-security-policy
744
+ azure:dns-zones
745
+ azure:download
746
+ azure:e-books
747
+ azure:edge-management
748
+ azure:education
749
+ azure:elastic-job-agents
750
+ azure:elastic-san
751
+ azure:endpoint-analytics
752
+ azure:enterprise-applications
753
+ azure:entra-connect
754
+ azure:entra-connect-health
755
+ azure:entra-connect-sync
756
+ azure:entra-domain-services
757
+ azure:entra-global-secure-access
758
+ azure:entra-id-protection
759
+ azure:entra-identity-custom-roles
760
+ azure:entra-identity-licenses
761
+ azure:entra-identity-risky-signins
762
+ azure:entra-identity-risky-users
763
+ azure:entra-identity-roles-and-administrators
764
+ azure:entra-internet-access
765
+ azure:entra-managed-identities
766
+ azure:entra-private-access
767
+ azure:entra-privleged-identity-management
768
+ azure:entra-verified-id
769
+ azure:error
770
+ azure:event-grid-domains
771
+ azure:event-grid-subscriptions
772
+ azure:event-grid-topics
773
+ azure:event-hub-clusters
774
+ azure:event-hubs
775
+ azure:exchange-access
776
+ azure:exchange-on-premises-access
777
+ azure:express-route-circuits
778
+ azure:express-route-direct
779
+ azure:express-route-traffic-collector
780
+ azure:extended-security-updates
781
+ azure:extensions
782
+ azure:external-identities
783
+ azure:face-apis
784
+ azure:feature-previews
785
+ azure:fhir-service
786
+ azure:fiji
787
+ azure:file
788
+ azure:files
789
+ azure:firewalls
790
+ azure:folder-blank
791
+ azure:folder-website
792
+ azure:form-recognizers
793
+ azure:free-services
794
+ azure:front-door-and-cdn-profiles
795
+ azure:ftp
796
+ azure:function-apps
797
+ azure:gear
798
+ azure:genomics
799
+ azure:genomics-accounts
800
+ azure:globe-error
801
+ azure:globe-success
802
+ azure:globe-warning
803
+ azure:groups
804
+ azure:guide
805
+ azure:hd-insight-clusters
806
+ azure:hdi-aks-cluster
807
+ azure:heart
808
+ azure:help-and-support
809
+ azure:host-groups
810
+ azure:host-pools
811
+ azure:hosts
812
+ azure:ic-m-troubleshooting
813
+ azure:identity-governance
814
+ azure:identity-multi-factor-authentication
815
+ azure:identity-secure-score
816
+ azure:image
817
+ azure:image-definitions
818
+ azure:image-templates
819
+ azure:image-versions
820
+ azure:images
821
+ azure:immersive-readers
822
+ azure:import-export-jobs
823
+ azure:industrial-io-t
824
+ azure:information
825
+ azure:infrastructure-backup
826
+ azure:input-output
827
+ azure:instance-pools
828
+ azure:integration-accounts
829
+ azure:integration-environments
830
+ azure:integration-service-environments
831
+ azure:internet-analyzer-profiles
832
+ azure:intune
833
+ azure:intune-app-protection
834
+ azure:intune-for-education
835
+ azure:intune-trends
836
+ azure:io-t-central-applications
837
+ azure:io-t-edge
838
+ azure:io-t-hub
839
+ azure:ip-address-manager
840
+ azure:ip-groups
841
+ azure:journey-hub
842
+ azure:key-vaults
843
+ azure:keys
844
+ azure:kubernetes-fleet-manager
845
+ azure:kubernetes-services
846
+ azure:lab-accounts
847
+ azure:lab-services
848
+ azure:language
849
+ azure:language-understanding
850
+ azure:launch-portal
851
+ azure:learn
852
+ azure:load-balancer-hub
853
+ azure:load-balancers
854
+ azure:load-test
855
+ azure:load-testing
856
+ azure:local-network-gateways
857
+ azure:location
858
+ azure:log-analytics-query-pack
859
+ azure:log-analytics-workspaces
860
+ azure:log-streaming
861
+ azure:logic-apps
862
+ azure:logic-apps-custom-connector
863
+ azure:machine-learning
864
+ azure:machine-learning-studio-classic-web-services
865
+ azure:machine-learning-studio-web-service-plans
866
+ azure:machine-learning-studio-workspaces
867
+ azure:machines-azure-arc
868
+ azure:maintenance-configuration
869
+ azure:managed-applications-center
870
+ azure:managed-database
871
+ azure:managed-desktop
872
+ azure:managed-dev-ops-pools
873
+ azure:managed-file-shares
874
+ azure:managed-identities
875
+ azure:managed-instance-apache-cassandra
876
+ azure:managed-service-fabric
877
+ azure:management-groups
878
+ azure:management-portal
879
+ azure:marketplace
880
+ azure:marketplace-management
881
+ azure:med-tech-service
882
+ azure:media
883
+ azure:media-file
884
+ azure:mesh-applications
885
+ azure:metrics
886
+ azure:metrics-advisor
887
+ azure:microsoft-defender-easm
888
+ azure:microsoft-defender-for-cloud
889
+ azure:microsoft-defender-for-io-t
890
+ azure:microsoft-dev-box
891
+ azure:mindaro
892
+ azure:mission-landing-zone
893
+ azure:mobile
894
+ azure:mobile-engagement
895
+ azure:mobile-networks
896
+ azure:modular-data-center
897
+ azure:module
898
+ azure:monitor
899
+ azure:monitor-health-models
900
+ azure:multi-tenancy
901
+ azure:multifactor-authentication
902
+ azure:my-customers
903
+ azure:nat
904
+ azure:network-interfaces
905
+ azure:network-managers
906
+ azure:network-security-groups
907
+ azure:network-security-perimeters
908
+ azure:network-watcher
909
+ azure:notification-hub-namespaces
910
+ azure:notification-hubs
911
+ azure:offers
912
+ azure:on-premises-data-gateways
913
+ azure:open-supply-chain-platform
914
+ azure:operation-log-classic
915
+ azure:oracle-database
916
+ azure:os-images-classic
917
+ azure:osconfig
918
+ azure:outbound-connection
919
+ azure:partner-namespace
920
+ azure:partner-registration
921
+ azure:partner-topic
922
+ azure:peering-service
923
+ azure:peerings
924
+ azure:personalizers
925
+ azure:plans
926
+ azure:policy
927
+ azure:power
928
+ azure:power-bi-embedded
929
+ azure:power-platform
930
+ azure:power-up
931
+ azure:powershell
932
+ azure:preview-features
933
+ azure:private-endpoints
934
+ azure:private-link
935
+ azure:private-link-service
936
+ azure:private-link-services
937
+ azure:process-explorer
938
+ azure:production-ready-database
939
+ azure:proximity-placement-groups
940
+ azure:public-ip-addresses
941
+ azure:public-ip-addresses-classic
942
+ azure:public-ip-prefixes
943
+ azure:qn-a-makers
944
+ azure:quickstart-center
945
+ azure:recent
946
+ azure:recovery-services-vaults
947
+ azure:region-management
948
+ azure:relays
949
+ azure:remote-rendering
950
+ azure:reservations
951
+ azure:reserved-capacity
952
+ azure:reserved-ip-addresses-classic
953
+ azure:resource-explorer
954
+ azure:resource-graph-explorer
955
+ azure:resource-group-list
956
+ azure:resource-groups
957
+ azure:resource-guard
958
+ azure:resource-linked
959
+ azure:resource-management-private-link
960
+ azure:resource-mover
961
+ azure:resources-provider
962
+ azure:restore-points
963
+ azure:restore-points-collections
964
+ azure:route-filters
965
+ azure:route-tables
966
+ azure:rtos
967
+ azure:savings-plans
968
+ azure:scheduler
969
+ azure:scheduler-job-collections
970
+ azure:scvmm-management-servers
971
+ azure:search
972
+ azure:search-grid
973
+ azure:security
974
+ azure:security-baselines
975
+ azure:send-grid-accounts
976
+ azure:server-farm
977
+ azure:serverless-search
978
+ azure:service-catalog-mad
979
+ azure:service-endpoint-policies
980
+ azure:service-fabric-clusters
981
+ azure:service-health
982
+ azure:service-providers
983
+ azure:shared-image-galleries
984
+ azure:signal-r
985
+ azure:software-as-a-service
986
+ azure:software-updates
987
+ azure:solutions
988
+ azure:sonic-dash
989
+ azure:spatial-anchor-accounts
990
+ azure:speech-services
991
+ azure:spot-vm
992
+ azure:spot-vmss
993
+ azure:sql-data-warehouses
994
+ azure:sql-database
995
+ azure:sql-elastic-pools
996
+ azure:sql-managed-instance
997
+ azure:sql-server
998
+ azure:sql-server-registries
999
+ azure:ssd
1000
+ azure:ssh-keys
1001
+ azure:ssis-lift-and-shift-ir
1002
+ azure:stack-hci-premium
1003
+ azure:static-apps
1004
+ azure:stor-simple-data-managers
1005
+ azure:stor-simple-device-managers
1006
+ azure:storage-accounts
1007
+ azure:storage-accounts-classic
1008
+ azure:storage-actions
1009
+ azure:storage-azure-files
1010
+ azure:storage-container
1011
+ azure:storage-explorer
1012
+ azure:storage-functions
1013
+ azure:storage-queue
1014
+ azure:storage-sync-services
1015
+ azure:stream-analytics-jobs
1016
+ azure:subnet
1017
+ azure:subscriptions
1018
+ azure:system-topic
1019
+ azure:table
1020
+ azure:tag
1021
+ azure:tags
1022
+ azure:targets-management
1023
+ azure:template-specs
1024
+ azure:templates
1025
+ azure:tenant-properties
1026
+ azure:tenant-status
1027
+ azure:test-base
1028
+ azure:tfs-vc-repository
1029
+ azure:time-series-data-sets
1030
+ azure:time-series-insights-access-policies
1031
+ azure:time-series-insights-environments
1032
+ azure:time-series-insights-event-sources
1033
+ azure:toolbox
1034
+ azure:traffic-manager-profiles
1035
+ azure:translator-text
1036
+ azure:troubleshoot
1037
+ azure:universal-print
1038
+ azure:update-management-center
1039
+ azure:updates
1040
+ azure:user-privacy
1041
+ azure:user-settings
1042
+ azure:user-subscriptions
1043
+ azure:users
1044
+ azure:verifiable-credentials
1045
+ azure:verification-as-a-service
1046
+ azure:versions
1047
+ azure:video-analyzers
1048
+ azure:virtual-clusters
1049
+ azure:virtual-enclaves
1050
+ azure:virtual-instance-for-sap
1051
+ azure:virtual-machine
1052
+ azure:virtual-machines-classic
1053
+ azure:virtual-network-gateways
1054
+ azure:virtual-networks
1055
+ azure:virtual-networks-classic
1056
+ azure:virtual-router
1057
+ azure:virtual-visits-builder
1058
+ azure:virtual-wan-hub
1059
+ azure:virtual-wans
1060
+ azure:vm-app-definitions
1061
+ azure:vm-app-versions
1062
+ azure:vm-image-version
1063
+ azure:vm-images-classic
1064
+ azure:vm-scale-sets
1065
+ azure:wac
1066
+ azure:wac-installer
1067
+ azure:web-app-database
1068
+ azure:web-application-firewall-policies-waf
1069
+ azure:web-jobs
1070
+ azure:web-slots
1071
+ azure:web-test
1072
+ azure:website-power
1073
+ azure:website-staging
1074
+ azure:windows-notification-services
1075
+ azure:windows10-core-services
1076
+ azure:workbooks
1077
+ azure:worker-container-app
1078
+ azure:workflow
1079
+ azure:workspace-gateway
1080
+ azure:workspaces
1081
+ gcp:access-context-manager
1082
+ gcp:administration
1083
+ gcp:advanced-agent-modeling
1084
+ gcp:advanced-solutions-lab
1085
+ gcp:agent-assist
1086
+ gcp:ai-hub
1087
+ gcp:ai-platform
1088
+ gcp:ai-platform-unified
1089
+ gcp:analytics-hub
1090
+ gcp:anthos
1091
+ gcp:anthos-config-management
1092
+ gcp:anthos-service-mesh
1093
+ gcp:api
1094
+ gcp:api-analytics
1095
+ gcp:api-monetization
1096
+ gcp:apigee-api-platform
1097
+ gcp:apigee-sense
1098
+ gcp:app-engine
1099
+ gcp:artifact-registry
1100
+ gcp:asset-inventory
1101
+ gcp:assured-workloads
1102
+ gcp:auto-ml
1103
+ gcp:auto-ml-natural-language
1104
+ gcp:auto-ml-tables
1105
+ gcp:auto-ml-translation
1106
+ gcp:auto-ml-video-intelligence
1107
+ gcp:auto-ml-vision
1108
+ gcp:bare-metal-solutions
1109
+ gcp:batch
1110
+ gcp:beyondcorp
1111
+ gcp:big-query
1112
+ gcp:bigtable
1113
+ gcp:billing
1114
+ gcp:binary-authorization
1115
+ gcp:catalog
1116
+ gcp:certificate-authority-service
1117
+ gcp:certificate-manager
1118
+ gcp:cloud-api-gateway
1119
+ gcp:cloud-apis
1120
+ gcp:cloud-armor
1121
+ gcp:cloud-asset-inventory
1122
+ gcp:cloud-audit-logs
1123
+ gcp:cloud-build
1124
+ gcp:cloud-cdn
1125
+ gcp:cloud-code
1126
+ gcp:cloud-composer
1127
+ gcp:cloud-data-fusion
1128
+ gcp:cloud-deploy
1129
+ gcp:cloud-deployment-manager
1130
+ gcp:cloud-dns
1131
+ gcp:cloud-domains
1132
+ gcp:cloud-ekm
1133
+ gcp:cloud-endpoints
1134
+ gcp:cloud-external-ip-addresses
1135
+ gcp:cloud-firewall-rules
1136
+ gcp:cloud-for-marketing
1137
+ gcp:cloud-functions
1138
+ gcp:cloud-generic
1139
+ gcp:cloud-gpu
1140
+ gcp:cloud-healthcare-api
1141
+ gcp:cloud-healthcare-marketplace
1142
+ gcp:cloud-hsm
1143
+ gcp:cloud-ids
1144
+ gcp:cloud-inference-api
1145
+ gcp:cloud-interconnect
1146
+ gcp:cloud-jobs-api
1147
+ gcp:cloud-load-balancing
1148
+ gcp:cloud-logging
1149
+ gcp:cloud-media-edge
1150
+ gcp:cloud-monitoring
1151
+ gcp:cloud-nat
1152
+ gcp:cloud-natural-language-api
1153
+ gcp:cloud-network
1154
+ gcp:cloud-ops
1155
+ gcp:cloud-optimization-ai
1156
+ gcp:cloud-optimization-ai-fleet-routing-api
1157
+ gcp:cloud-router
1158
+ gcp:cloud-routes
1159
+ gcp:cloud-run
1160
+ gcp:cloud-run-for-anthos
1161
+ gcp:cloud-scheduler
1162
+ gcp:cloud-security-scanner
1163
+ gcp:cloud-shell
1164
+ gcp:cloud-spanner
1165
+ gcp:cloud-sql
1166
+ gcp:cloud-storage
1167
+ gcp:cloud-tasks
1168
+ gcp:cloud-test-lab
1169
+ gcp:cloud-tpu
1170
+ gcp:cloud-translation-api
1171
+ gcp:cloud-vision-api
1172
+ gcp:cloud-vpn
1173
+ gcp:compute-engine
1174
+ gcp:configuration-management
1175
+ gcp:connectivity-test
1176
+ gcp:connectors
1177
+ gcp:contact-center-ai
1178
+ gcp:container-optimized-os
1179
+ gcp:container-registry
1180
+ gcp:data-catalog
1181
+ gcp:data-labeling
1182
+ gcp:data-layers
1183
+ gcp:data-loss-prevention-api
1184
+ gcp:data-qn-a
1185
+ gcp:data-studio
1186
+ gcp:data-transfer
1187
+ gcp:database-migration-service
1188
+ gcp:dataflow
1189
+ gcp:datalab
1190
+ gcp:dataplex
1191
+ gcp:datapol
1192
+ gcp:dataprep
1193
+ gcp:dataproc
1194
+ gcp:dataproc-metastore
1195
+ gcp:datashare
1196
+ gcp:datastore
1197
+ gcp:datastream
1198
+ gcp:debugger
1199
+ gcp:developer-portal
1200
+ gcp:dialogflow
1201
+ gcp:dialogflow-cx
1202
+ gcp:dialogflow-insights
1203
+ gcp:document-ai
1204
+ gcp:early-access-center
1205
+ gcp:error-reporting
1206
+ gcp:eventarc
1207
+ gcp:filestore
1208
+ gcp:financial-services-marketplace
1209
+ gcp:firestore
1210
+ gcp:fleet-engine
1211
+ gcp:free-trial
1212
+ gcp:game-servers
1213
+ gcp:gce-systems-management
1214
+ gcp:genomics
1215
+ gcp:gke-on-prem
1216
+ gcp:google-cloud-marketplace
1217
+ gcp:google-kubernetes-engine
1218
+ gcp:google-maps-platform
1219
+ gcp:healthcare-nlp-api
1220
+ gcp:home
1221
+ gcp:identity-and-access-management
1222
+ gcp:identity-aware-proxy
1223
+ gcp:identity-platform
1224
+ gcp:iot-core
1225
+ gcp:iot-edge
1226
+ gcp:key-access-justifications
1227
+ gcp:key-management-service
1228
+ gcp:kuberun
1229
+ gcp:launcher
1230
+ gcp:local-ssd
1231
+ gcp:looker
1232
+ gcp:managed-service-for-microsoft-active-directory
1233
+ gcp:media-translation-api
1234
+ gcp:memorystore
1235
+ gcp:migrate-for-anthos
1236
+ gcp:migrate-for-compute-engine
1237
+ gcp:my-cloud
1238
+ gcp:network-connectivity-center
1239
+ gcp:network-intelligence-center
1240
+ gcp:network-security
1241
+ gcp:network-tiers
1242
+ gcp:network-topology
1243
+ gcp:onboarding
1244
+ gcp:os-configuration-management
1245
+ gcp:os-inventory-management
1246
+ gcp:os-patch-management
1247
+ gcp:partner-interconnect
1248
+ gcp:partner-portal
1249
+ gcp:performance-dashboard
1250
+ gcp:permissions
1251
+ gcp:persistent-disk
1252
+ gcp:phishing-protection
1253
+ gcp:policy-analyzer
1254
+ gcp:premium-network-tier
1255
+ gcp:private-connectivity
1256
+ gcp:private-service-connect
1257
+ gcp:producer-portal
1258
+ gcp:profiler
1259
+ gcp:project
1260
+ gcp:pub-sub
1261
+ gcp:quantum-engine
1262
+ gcp:quotas
1263
+ gcp:real-world-insights
1264
+ gcp:recommendations-ai
1265
+ gcp:release-notes
1266
+ gcp:retail-api
1267
+ gcp:risk-manager
1268
+ gcp:runtime-config
1269
+ gcp:secret-manager
1270
+ gcp:security
1271
+ gcp:security-command-center
1272
+ gcp:security-health-advisor
1273
+ gcp:security-key-enforcement
1274
+ gcp:service-discovery
1275
+ gcp:speech-to-text
1276
+ gcp:stackdriver
1277
+ gcp:standard-network-tier
1278
+ gcp:stream-suite
1279
+ gcp:support
1280
+ gcp:tensorflow-enterprise
1281
+ gcp:text-to-speech
1282
+ gcp:tools-for-powershell
1283
+ gcp:trace
1284
+ gcp:traffic-director
1285
+ gcp:transfer
1286
+ gcp:transfer-appliance
1287
+ gcp:user-preferences
1288
+ gcp:vertex-ai
1289
+ gcp:video-intelligence-api
1290
+ gcp:virtual-private-cloud
1291
+ gcp:visual-inspection
1292
+ gcp:vmware-engine
1293
+ gcp:web-risk
1294
+ gcp:web-security-scanner
1295
+ gcp:workflows
1296
+ gcp:workload-identity-pool
1297
+ tech:aarch64
1298
+ tech:adobe-illustrator
1299
+ tech:adobe-photoshop
1300
+ tech:adobe-premiere-pro
1301
+ tech:adobe-xd
1302
+ tech:adonis-js
1303
+ tech:after-effects
1304
+ tech:airflow
1305
+ tech:akka
1306
+ tech:algolia
1307
+ tech:alpine-js
1308
+ tech:amazon-web-services
1309
+ tech:anaconda
1310
+ tech:android
1311
+ tech:android-studio
1312
+ tech:angular
1313
+ tech:angular-js
1314
+ tech:ansible
1315
+ tech:ant-design
1316
+ tech:apache
1317
+ tech:apl
1318
+ tech:appcelerator
1319
+ tech:apple
1320
+ tech:apple-safari
1321
+ tech:appwrite
1322
+ tech:arch-linux
1323
+ tech:arduino
1324
+ tech:argo-cd
1325
+ tech:astro
1326
+ tech:atom
1327
+ tech:autodesk-maya
1328
+ tech:autodesk-shot-grid
1329
+ tech:awk
1330
+ tech:azios
1331
+ tech:azure
1332
+ tech:azure-devops
1333
+ tech:azure-sql-database
1334
+ tech:babel
1335
+ tech:backbone-js
1336
+ tech:ballerina
1337
+ tech:bamboo
1338
+ tech:bash
1339
+ tech:behance
1340
+ tech:bitbucket
1341
+ tech:blender
1342
+ tech:bootstrap
1343
+ tech:bower
1344
+ tech:browserstack
1345
+ tech:bulma
1346
+ tech:bun
1347
+ tech:c
1348
+ tech:cairo-graphics
1349
+ tech:cake-php
1350
+ tech:canva
1351
+ tech:capacitor
1352
+ tech:cassandra
1353
+ tech:cent-os
1354
+ tech:chrome
1355
+ tech:circle-ci
1356
+ tech:clarity
1357
+ tech:clion
1358
+ tech:clojure
1359
+ tech:clojure-script
1360
+ tech:cloudflare
1361
+ tech:cloudflare-workers
1362
+ tech:cmake
1363
+ tech:code-igniter
1364
+ tech:code-pen
1365
+ tech:codeac
1366
+ tech:codecov
1367
+ tech:coffee-script
1368
+ tech:composer
1369
+ tech:confluence
1370
+ tech:consul
1371
+ tech:contao
1372
+ tech:corejs
1373
+ tech:cosmosdb
1374
+ tech:couchdb
1375
+ tech:cplusplus
1376
+ tech:crystal
1377
+ tech:csharp
1378
+ tech:css3
1379
+ tech:cucumber
1380
+ tech:cypress
1381
+ tech:d3js
1382
+ tech:dart
1383
+ tech:data-grip
1384
+ tech:data-spell
1385
+ tech:dbeaver
1386
+ tech:debian
1387
+ tech:deno
1388
+ tech:devicon
1389
+ tech:digital-ocean
1390
+ tech:discord-js
1391
+ tech:django
1392
+ tech:django-rest
1393
+ tech:docker
1394
+ tech:doctrine
1395
+ tech:dropwizard
1396
+ tech:drupal
1397
+ tech:eclipse-ceylon
1398
+ tech:eclipse-ide
1399
+ tech:eclipse-vert-x
1400
+ tech:elasticbeats
1401
+ tech:elasticsearch
1402
+ tech:electron
1403
+ tech:eleventy-11ty
1404
+ tech:elixir
1405
+ tech:elm
1406
+ tech:embedded-c
1407
+ tech:ember-js
1408
+ tech:envoy
1409
+ tech:erlang
1410
+ tech:eslint
1411
+ tech:express
1412
+ tech:facebook
1413
+ tech:fast-api
1414
+ tech:fastify
1415
+ tech:fauna
1416
+ tech:feathers
1417
+ tech:fedora
1418
+ tech:figma
1419
+ tech:file-zilla
1420
+ tech:firebase
1421
+ tech:firefox
1422
+ tech:flask
1423
+ tech:flutter
1424
+ tech:fortran
1425
+ tech:foundation
1426
+ tech:fsharp
1427
+ tech:gatling
1428
+ tech:gatsby
1429
+ tech:gazebo
1430
+ tech:gcc
1431
+ tech:gentoo
1432
+ tech:ghost
1433
+ tech:gimp
1434
+ tech:git
1435
+ tech:gitbook
1436
+ tech:github
1437
+ tech:github-actions
1438
+ tech:github-codespaces
1439
+ tech:gitlab
1440
+ tech:gitpod
1441
+ tech:gitter
1442
+ tech:gnu-emacs
1443
+ tech:go
1444
+ tech:go-land
1445
+ tech:godot-engine
1446
+ tech:google
1447
+ tech:google-cloud
1448
+ tech:gradle
1449
+ tech:grafana
1450
+ tech:grails
1451
+ tech:graphql
1452
+ tech:groovy
1453
+ tech:grunt-js
1454
+ tech:gulp-js
1455
+ tech:hadoop
1456
+ tech:handlebars
1457
+ tech:hardhat
1458
+ tech:harvester
1459
+ tech:hashicorp-vault
1460
+ tech:haskell
1461
+ tech:haxe
1462
+ tech:helm
1463
+ tech:heroku
1464
+ tech:hibernate
1465
+ tech:homebrew
1466
+ tech:html5
1467
+ tech:hugo
1468
+ tech:ibm-spss-statistics
1469
+ tech:ie10
1470
+ tech:ifttt
1471
+ tech:influxdb
1472
+ tech:inkscape
1473
+ tech:insomnia
1474
+ tech:intellij-idea
1475
+ tech:ionic
1476
+ tech:jaeger
1477
+ tech:jamstack
1478
+ tech:jasmine
1479
+ tech:java
1480
+ tech:javascript
1481
+ tech:jeet
1482
+ tech:jekyll
1483
+ tech:jenkins
1484
+ tech:jest
1485
+ tech:jetbrains
1486
+ tech:jira
1487
+ tech:jira-align
1488
+ tech:jquery
1489
+ tech:json
1490
+ tech:jule
1491
+ tech:julia
1492
+ tech:junit
1493
+ tech:jupyter
1494
+ tech:k3os
1495
+ tech:k3s
1496
+ tech:kafka
1497
+ tech:kaggle
1498
+ tech:karate
1499
+ tech:karma
1500
+ tech:keras
1501
+ tech:kibana
1502
+ tech:knex-js
1503
+ tech:knockout
1504
+ tech:kotlin
1505
+ tech:krakenjs
1506
+ tech:ktor
1507
+ tech:kubernetes
1508
+ tech:labview
1509
+ tech:laravel
1510
+ tech:latex
1511
+ tech:less-js
1512
+ tech:linkedin
1513
+ tech:linux
1514
+ tech:liquibase
1515
+ tech:livewire
1516
+ tech:llvm
1517
+ tech:logstash
1518
+ tech:lua
1519
+ tech:lumen
1520
+ tech:magento
1521
+ tech:markdown
1522
+ tech:material-ui
1523
+ tech:materialize
1524
+ tech:matlab
1525
+ tech:matplotlib
1526
+ tech:maven
1527
+ tech:meteor-js
1528
+ tech:microsoft-sql-server
1529
+ tech:minitab
1530
+ tech:mob-x
1531
+ tech:mocha
1532
+ tech:modx
1533
+ tech:moleculer
1534
+ tech:mongodb
1535
+ tech:mongoose-js
1536
+ tech:moodle
1537
+ tech:ms-dos
1538
+ tech:mysql
1539
+ tech:nano
1540
+ tech:nerog
1541
+ tech:nestjs
1542
+ tech:net
1543
+ tech:net-core
1544
+ tech:network-x
1545
+ tech:new4j
1546
+ tech:nextjs
1547
+ tech:nginx
1548
+ tech:nhibernate
1549
+ tech:nim
1550
+ tech:nimble
1551
+ tech:nix
1552
+ tech:nodejs
1553
+ tech:nodemon
1554
+ tech:nodewebkit
1555
+ tech:npm
1556
+ tech:nuget
1557
+ tech:num-py
1558
+ tech:nuxt-js
1559
+ tech:objective-c
1560
+ tech:ocaml
1561
+ tech:oh-my-zsh
1562
+ tech:okta
1563
+ tech:open-al
1564
+ tech:open-api
1565
+ tech:open-cl
1566
+ tech:open-cv
1567
+ tech:open-gl
1568
+ tech:open-stack
1569
+ tech:open-suse
1570
+ tech:open-telemetry
1571
+ tech:opera
1572
+ tech:oracle
1573
+ tech:p5js
1574
+ tech:packer
1575
+ tech:pandas
1576
+ tech:perl
1577
+ tech:pf-sense
1578
+ tech:phalcon
1579
+ tech:phoenix-framework
1580
+ tech:photon-engine
1581
+ tech:php
1582
+ tech:php-storm
1583
+ tech:playwrite
1584
+ tech:ploty
1585
+ tech:podman
1586
+ tech:polygon
1587
+ tech:portainer
1588
+ tech:postcss
1589
+ tech:postgresql
1590
+ tech:postman
1591
+ tech:powershell
1592
+ tech:processing
1593
+ tech:prometheus
1594
+ tech:protractor
1595
+ tech:purescript
1596
+ tech:putty
1597
+ tech:pycharm
1598
+ tech:pyscript
1599
+ tech:pytest
1600
+ tech:python
1601
+ tech:python-poetry
1602
+ tech:pytorch
1603
+ tech:qodana
1604
+ tech:qt
1605
+ tech:quarkus
1606
+ tech:quasar
1607
+ tech:qwik
1608
+ tech:r
1609
+ tech:rabbitmq
1610
+ tech:rancher
1611
+ tech:raspberrypi
1612
+ tech:reach
1613
+ tech:react
1614
+ tech:react-bootstrap
1615
+ tech:realm
1616
+ tech:red-cube-s-epic-compiler-thingy-programming-re-ct
1617
+ tech:redhat
1618
+ tech:redis
1619
+ tech:redux
1620
+ tech:ren-py
1621
+ tech:rider
1622
+ tech:robot-operating-system-ros
1623
+ tech:rocksdb
1624
+ tech:rollup-js
1625
+ tech:rspec
1626
+ tech:rstudio
1627
+ tech:ruby
1628
+ tech:ruby-mine
1629
+ tech:ruby-on-rails
1630
+ tech:rust
1631
+ tech:salesforce
1632
+ tech:sanity
1633
+ tech:sass
1634
+ tech:scala
1635
+ tech:scalingo
1636
+ tech:sdl
1637
+ tech:selenium
1638
+ tech:sema-software
1639
+ tech:sequelize
1640
+ tech:shopware
1641
+ tech:sketch
1642
+ tech:slack
1643
+ tech:socket-io
1644
+ tech:solid-js
1645
+ tech:solidity
1646
+ tech:sonarqube
1647
+ tech:sourcetree
1648
+ tech:spark
1649
+ tech:splunk
1650
+ tech:spring
1651
+ tech:sql-developer
1652
+ tech:sqlalchemy
1653
+ tech:sqlite
1654
+ tech:ssh
1655
+ tech:stackoverflow
1656
+ tech:stata
1657
+ tech:storybook
1658
+ tech:streamlit
1659
+ tech:stylus
1660
+ tech:subversion
1661
+ tech:svelte
1662
+ tech:swagger
1663
+ tech:swift
1664
+ tech:symfony
1665
+ tech:tailwind-css
1666
+ tech:tauri
1667
+ tech:tensorflow
1668
+ tech:terraform
1669
+ tech:tex
1670
+ tech:the-algorithms
1671
+ tech:three-js
1672
+ tech:titanium-sdk
1673
+ tech:tomcat
1674
+ tech:tortoise-git
1675
+ tech:tower
1676
+ tech:traefik-mesh
1677
+ tech:traefik-proxy
1678
+ tech:travis-ci
1679
+ tech:trello
1680
+ tech:twitter
1681
+ tech:typescript
1682
+ tech:typo3
1683
+ tech:ubuntu
1684
+ tech:uml
1685
+ tech:unity
1686
+ tech:unix
1687
+ tech:unreal-engine
1688
+ tech:uwsgi
1689
+ tech:v8
1690
+ tech:vagrant
1691
+ tech:vala
1692
+ tech:vercel
1693
+ tech:veutify
1694
+ tech:vim
1695
+ tech:visualstudio
1696
+ tech:vite
1697
+ tech:vitejs
1698
+ tech:vscode
1699
+ tech:vsphere
1700
+ tech:vue
1701
+ tech:vue-storefront
1702
+ tech:vyper
1703
+ tech:webassembly
1704
+ tech:webflow
1705
+ tech:weblate
1706
+ tech:webpack
1707
+ tech:webstorm
1708
+ tech:windows8
1709
+ tech:windows11
1710
+ tech:woo-commerce
1711
+ tech:wordpress
1712
+ tech:xamarin
1713
+ tech:xcode
1714
+ tech:xml
1715
+ tech:yaml
1716
+ tech:yarn
1717
+ tech:yii-framework
1718
+ tech:yuno-host
1719
+ tech:zend-framework
1720
+ tech:zig
1721
+ }}`,WC="likec4builtin",JW=`${WC}:///likec4/lib/icons.c4`;var no=Ks();const ZW=new no.NotificationType("likec4/onDidChangeModel"),QW=new no.RequestType0("likec4/fetchModel"),eH=new no.RequestType("likec4/fetchComputedModel"),tH=new no.RequestType("likec4/computeView"),nH=new no.RequestType("likec4/build"),rH=new no.RequestType("likec4/locate"),iH=new no.RequestType("likec4/change-view");var Pv,HC;function sH(){return HC||(HC=1,Pv=t=>{const e=t.match(/^[ \t]*(?=\S)/gm);return e?e.reduce((n,r)=>Math.min(n,r.length),1/0):0}),Pv}var oH=sH();function Nv(t){const e=oH(t);if(e===0)return t;const n=new RegExp(`^[ \\t]{${e}}`,"gm");return t.replace(n,"")}var Ov,VC;function aH(){if(VC)return Ov;VC=1;function t(e){for(var n=5381,r=e.length;r;)n=n*33^e.charCodeAt(--r);return n>>>0}return Ov=t,Ov}var cH=aH(),uH=Object.getOwnPropertyNames,lH=Object.getOwnPropertySymbols,dH=Object.prototype.hasOwnProperty;function KC(t,e){return function(r,i,s){return t(r,i,s)&&e(r,i,s)}}function Eh(t){return function(n,r,i){if(!n||!r||typeof n!="object"||typeof r!="object")return t(n,r,i);var s=i.cache,o=s.get(n),a=s.get(r);if(o&&a)return o===r&&a===n;s.set(n,r),s.set(r,n);var c=t(n,r,i);return s.delete(n),s.delete(r),c}}function YC(t){return uH(t).concat(lH(t))}var XC=Object.hasOwn||function(t,e){return dH.call(t,e)};function ua(t,e){return t||e?t===e:t===e||t!==t&&e!==e}var JC="_owner",ZC=Object.getOwnPropertyDescriptor,QC=Object.keys;function fH(t,e,n){var r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function hH(t,e){return ua(t.getTime(),e.getTime())}function e_(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.entries(),s=0,o,a;(o=i.next())&&!o.done;){for(var c=e.entries(),u=!1,l=0;(a=c.next())&&!a.done;){var d=o.value,f=d[0],h=d[1],p=a.value,m=p[0],y=p[1];!u&&!r[l]&&(u=n.equals(f,m,s,l,t,e,n)&&n.equals(h,y,f,m,t,e,n))&&(r[l]=!0),l++}if(!u)return!1;s++}return!0}function pH(t,e,n){var r=QC(t),i=r.length;if(QC(e).length!==i)return!1;for(var s;i-- >0;)if(s=r[i],s===JC&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!XC(e,s)||!n.equals(t[s],e[s],s,s,t,e,n))return!1;return!0}function Nu(t,e,n){var r=YC(t),i=r.length;if(YC(e).length!==i)return!1;for(var s,o,a;i-- >0;)if(s=r[i],s===JC&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!XC(e,s)||!n.equals(t[s],e[s],s,s,t,e,n)||(o=ZC(t,s),a=ZC(e,s),(o||a)&&(!o||!a||o.configurable!==a.configurable||o.enumerable!==a.enumerable||o.writable!==a.writable)))return!1;return!0}function mH(t,e){return ua(t.valueOf(),e.valueOf())}function gH(t,e){return t.source===e.source&&t.flags===e.flags}function t_(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.values(),s,o;(s=i.next())&&!s.done;){for(var a=e.values(),c=!1,u=0;(o=a.next())&&!o.done;)!c&&!r[u]&&(c=n.equals(s.value,o.value,s.value,o.value,t,e,n))&&(r[u]=!0),u++;if(!c)return!1}return!0}function yH(t,e){var n=t.length;if(e.length!==n)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}var vH="[object Arguments]",wH="[object Boolean]",bH="[object Date]",EH="[object Map]",DH="[object Number]",TH="[object Object]",RH="[object RegExp]",SH="[object Set]",kH="[object String]",$H=Array.isArray,n_=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,r_=Object.assign,CH=Object.prototype.toString.call.bind(Object.prototype.toString);function _H(t){var e=t.areArraysEqual,n=t.areDatesEqual,r=t.areMapsEqual,i=t.areObjectsEqual,s=t.arePrimitiveWrappersEqual,o=t.areRegExpsEqual,a=t.areSetsEqual,c=t.areTypedArraysEqual;return function(l,d,f){if(l===d)return!0;if(l==null||d==null||typeof l!="object"||typeof d!="object")return l!==l&&d!==d;var h=l.constructor;if(h!==d.constructor)return!1;if(h===Object)return i(l,d,f);if($H(l))return e(l,d,f);if(n_!=null&&n_(l))return c(l,d,f);if(h===Date)return n(l,d,f);if(h===RegExp)return o(l,d,f);if(h===Map)return r(l,d,f);if(h===Set)return a(l,d,f);var p=CH(l);return p===bH?n(l,d,f):p===RH?o(l,d,f):p===EH?r(l,d,f):p===SH?a(l,d,f):p===TH?typeof l.then!="function"&&typeof d.then!="function"&&i(l,d,f):p===vH?i(l,d,f):p===wH||p===DH||p===kH?s(l,d,f):!1}}function AH(t){var e=t.circular,n=t.createCustomConfig,r=t.strict,i={areArraysEqual:r?Nu:fH,areDatesEqual:hH,areMapsEqual:r?KC(e_,Nu):e_,areObjectsEqual:r?Nu:pH,arePrimitiveWrappersEqual:mH,areRegExpsEqual:gH,areSetsEqual:r?KC(t_,Nu):t_,areTypedArraysEqual:r?Nu:yH};if(n&&(i=r_({},i,n(i))),e){var s=Eh(i.areArraysEqual),o=Eh(i.areMapsEqual),a=Eh(i.areObjectsEqual),c=Eh(i.areSetsEqual);i=r_({},i,{areArraysEqual:s,areMapsEqual:o,areObjectsEqual:a,areSetsEqual:c})}return i}function xH(t){return function(e,n,r,i,s,o,a){return t(e,n,a)}}function IH(t){var e=t.circular,n=t.comparator,r=t.createState,i=t.equals,s=t.strict;if(r)return function(c,u){var l=r(),d=l.cache,f=d===void 0?e?new WeakMap:void 0:d,h=l.meta;return n(c,u,{cache:f,equals:i,meta:h,strict:s})};if(e)return function(c,u){return n(c,u,{cache:new WeakMap,equals:i,meta:void 0,strict:s})};var o={cache:void 0,equals:i,meta:void 0,strict:s};return function(c,u){return n(c,u,o)}}var i_=Ji();Ji({strict:!0}),Ji({circular:!0}),Ji({circular:!0,strict:!0}),Ji({createInternalComparator:function(){return ua}}),Ji({strict:!0,createInternalComparator:function(){return ua}}),Ji({circular:!0,createInternalComparator:function(){return ua}}),Ji({circular:!0,createInternalComparator:function(){return ua},strict:!0});function Ji(t){t===void 0&&(t={});var e=t.circular,n=e===void 0?!1:e,r=t.createInternalComparator,i=t.createState,s=t.strict,o=s===void 0?!1:s,a=AH(t),c=_H(a),u=r?r(c):xH(c);return IH({circular:n,comparator:c,createState:i,equals:u,strict:o})}var Fv,s_;function Lv(){if(s_)return Fv;s_=1;var t="\0",e="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(l){l&&(this._isDirected=Object.hasOwn(l,"directed")?l.directed:!0,this._isMultigraph=Object.hasOwn(l,"multigraph")?l.multigraph:!1,this._isCompound=Object.hasOwn(l,"compound")?l.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[e]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(l){return this._label=l,this}graph(){return this._label}setDefaultNodeLabel(l){return this._defaultNodeLabelFn=l,typeof l!="function"&&(this._defaultNodeLabelFn=()=>l),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var l=this;return this.nodes().filter(d=>Object.keys(l._in[d]).length===0)}sinks(){var l=this;return this.nodes().filter(d=>Object.keys(l._out[d]).length===0)}setNodes(l,d){var f=arguments,h=this;return l.forEach(function(p){f.length>1?h.setNode(p,d):h.setNode(p)}),this}setNode(l,d){return Object.hasOwn(this._nodes,l)?(arguments.length>1&&(this._nodes[l]=d),this):(this._nodes[l]=arguments.length>1?d:this._defaultNodeLabelFn(l),this._isCompound&&(this._parent[l]=e,this._children[l]={},this._children[e][l]=!0),this._in[l]={},this._preds[l]={},this._out[l]={},this._sucs[l]={},++this._nodeCount,this)}node(l){return this._nodes[l]}hasNode(l){return Object.hasOwn(this._nodes,l)}removeNode(l){var d=this;if(Object.hasOwn(this._nodes,l)){var f=h=>d.removeEdge(d._edgeObjs[h]);delete this._nodes[l],this._isCompound&&(this._removeFromParentsChildList(l),delete this._parent[l],this.children(l).forEach(function(h){d.setParent(h)}),delete this._children[l]),Object.keys(this._in[l]).forEach(f),delete this._in[l],delete this._preds[l],Object.keys(this._out[l]).forEach(f),delete this._out[l],delete this._sucs[l],--this._nodeCount}return this}setParent(l,d){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(d===void 0)d=e;else{d+="";for(var f=d;f!==void 0;f=this.parent(f))if(f===l)throw new Error("Setting "+d+" as parent of "+l+" would create a cycle");this.setNode(d)}return this.setNode(l),this._removeFromParentsChildList(l),this._parent[l]=d,this._children[d][l]=!0,this}_removeFromParentsChildList(l){delete this._children[this._parent[l]][l]}parent(l){if(this._isCompound){var d=this._parent[l];if(d!==e)return d}}children(l=e){if(this._isCompound){var d=this._children[l];if(d)return Object.keys(d)}else{if(l===e)return this.nodes();if(this.hasNode(l))return[]}}predecessors(l){var d=this._preds[l];if(d)return Object.keys(d)}successors(l){var d=this._sucs[l];if(d)return Object.keys(d)}neighbors(l){var d=this.predecessors(l);if(d){const h=new Set(d);for(var f of this.successors(l))h.add(f);return Array.from(h.values())}}isLeaf(l){var d;return this.isDirected()?d=this.successors(l):d=this.neighbors(l),d.length===0}filterNodes(l){var d=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});d.setGraph(this.graph());var f=this;Object.entries(this._nodes).forEach(function([m,y]){l(m)&&d.setNode(m,y)}),Object.values(this._edgeObjs).forEach(function(m){d.hasNode(m.v)&&d.hasNode(m.w)&&d.setEdge(m,f.edge(m))});var h={};function p(m){var y=f.parent(m);return y===void 0||d.hasNode(y)?(h[m]=y,y):y in h?h[y]:p(y)}return this._isCompound&&d.nodes().forEach(m=>d.setParent(m,p(m))),d}setDefaultEdgeLabel(l){return this._defaultEdgeLabelFn=l,typeof l!="function"&&(this._defaultEdgeLabelFn=()=>l),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(l,d){var f=this,h=arguments;return l.reduce(function(p,m){return h.length>1?f.setEdge(p,m,d):f.setEdge(p,m),m}),this}setEdge(){var l,d,f,h,p=!1,m=arguments[0];typeof m=="object"&&m!==null&&"v"in m?(l=m.v,d=m.w,f=m.name,arguments.length===2&&(h=arguments[1],p=!0)):(l=m,d=arguments[1],f=arguments[3],arguments.length>2&&(h=arguments[2],p=!0)),l=""+l,d=""+d,f!==void 0&&(f=""+f);var y=o(this._isDirected,l,d,f);if(Object.hasOwn(this._edgeLabels,y))return p&&(this._edgeLabels[y]=h),this;if(f!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(l),this.setNode(d),this._edgeLabels[y]=p?h:this._defaultEdgeLabelFn(l,d,f);var g=a(this._isDirected,l,d,f);return l=g.v,d=g.w,Object.freeze(g),this._edgeObjs[y]=g,i(this._preds[d],l),i(this._sucs[l],d),this._in[d][y]=g,this._out[l][y]=g,this._edgeCount++,this}edge(l,d,f){var h=arguments.length===1?c(this._isDirected,arguments[0]):o(this._isDirected,l,d,f);return this._edgeLabels[h]}edgeAsObj(){const l=this.edge(...arguments);return typeof l!="object"?{label:l}:l}hasEdge(l,d,f){var h=arguments.length===1?c(this._isDirected,arguments[0]):o(this._isDirected,l,d,f);return Object.hasOwn(this._edgeLabels,h)}removeEdge(l,d,f){var h=arguments.length===1?c(this._isDirected,arguments[0]):o(this._isDirected,l,d,f),p=this._edgeObjs[h];return p&&(l=p.v,d=p.w,delete this._edgeLabels[h],delete this._edgeObjs[h],s(this._preds[d],l),s(this._sucs[l],d),delete this._in[d][h],delete this._out[l][h],this._edgeCount--),this}inEdges(l,d){var f=this._in[l];if(f){var h=Object.values(f);return d?h.filter(p=>p.v===d):h}}outEdges(l,d){var f=this._out[l];if(f){var h=Object.values(f);return d?h.filter(p=>p.w===d):h}}nodeEdges(l,d){var f=this.inEdges(l,d);if(f)return f.concat(this.outEdges(l,d))}}function i(u,l){u[l]?u[l]++:u[l]=1}function s(u,l){--u[l]||delete u[l]}function o(u,l,d,f){var h=""+l,p=""+d;if(!u&&h>p){var m=h;h=p,p=m}return h+n+p+n+(f===void 0?t:f)}function a(u,l,d,f){var h=""+l,p=""+d;if(!u&&h>p){var m=h;h=p,p=m}var y={v:h,w:p};return f&&(y.name=f),y}function c(u,l){return o(u,l.v,l.w,l.name)}return Fv=r,Fv}var Mv,o_;function PH(){return o_||(o_=1,Mv="2.2.4"),Mv}var zv,a_;function NH(){return a_||(a_=1,zv={Graph:Lv(),version:PH()}),zv}var Bv,c_;function OH(){if(c_)return Bv;c_=1;var t=Lv();Bv={write:e,read:i};function e(s){var o={options:{directed:s.isDirected(),multigraph:s.isMultigraph(),compound:s.isCompound()},nodes:n(s),edges:r(s)};return s.graph()!==void 0&&(o.value=structuredClone(s.graph())),o}function n(s){return s.nodes().map(function(o){var a=s.node(o),c=s.parent(o),u={v:o};return a!==void 0&&(u.value=a),c!==void 0&&(u.parent=c),u})}function r(s){return s.edges().map(function(o){var a=s.edge(o),c={v:o.v,w:o.w};return o.name!==void 0&&(c.name=o.name),a!==void 0&&(c.value=a),c})}function i(s){var o=new t(s.options).setGraph(s.value);return s.nodes.forEach(function(a){o.setNode(a.v,a.value),a.parent&&o.setParent(a.v,a.parent)}),s.edges.forEach(function(a){o.setEdge({v:a.v,w:a.w,name:a.name},a.value)}),o}return Bv}var qv,u_;function FH(){if(u_)return qv;u_=1,qv=t;function t(e){var n={},r=[],i;function s(o){Object.hasOwn(n,o)||(n[o]=!0,i.push(o),e.successors(o).forEach(s),e.predecessors(o).forEach(s))}return e.nodes().forEach(function(o){i=[],s(o),i.length&&r.push(i)}),r}return qv}var jv,l_;function d_(){if(l_)return jv;l_=1;class t{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){var i=this._keyIndices;if(n=String(n),!Object.hasOwn(i,n)){var s=this._arr,o=s.length;return i[n]=o,s.push({key:n,priority:r}),this._decrease(o),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,r){var i=this._keyIndices[n];if(r>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[i].priority+" New: "+r);this._arr[i].priority=r,this._decrease(i)}_heapify(n){var r=this._arr,i=2*n,s=i+1,o=n;i<r.length&&(o=r[i].priority<r[o].priority?i:o,s<r.length&&(o=r[s].priority<r[o].priority?s:o),o!==n&&(this._swap(n,o),this._heapify(o)))}_decrease(n){for(var r=this._arr,i=r[n].priority,s;n!==0&&(s=n>>1,!(r[s].priority<i));)this._swap(n,s),n=s}_swap(n,r){var i=this._arr,s=this._keyIndices,o=i[n],a=i[r];i[n]=a,i[r]=o,s[a.key]=n,s[o.key]=r}}return jv=t,jv}var Uv,f_;function h_(){if(f_)return Uv;f_=1;var t=d_();Uv=n;var e=()=>1;function n(i,s,o,a){return r(i,String(s),o||e,a||function(c){return i.outEdges(c)})}function r(i,s,o,a){var c={},u=new t,l,d,f=function(h){var p=h.v!==l?h.v:h.w,m=c[p],y=o(h),g=d.distance+y;if(y<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+y);g<m.distance&&(m.distance=g,m.predecessor=l,u.decrease(p,g))};for(i.nodes().forEach(function(h){var p=h===s?0:Number.POSITIVE_INFINITY;c[h]={distance:p},u.add(h,p)});u.size()>0&&(l=u.removeMin(),d=c[l],d.distance!==Number.POSITIVE_INFINITY);)a(l).forEach(f);return c}return Uv}var Gv,p_;function LH(){if(p_)return Gv;p_=1;var t=h_();Gv=e;function e(n,r,i){return n.nodes().reduce(function(s,o){return s[o]=t(n,o,r,i),s},{})}return Gv}var Wv,m_;function g_(){if(m_)return Wv;m_=1,Wv=t;function t(e){var n=0,r=[],i={},s=[];function o(a){var c=i[a]={onStack:!0,lowlink:n,index:n++};if(r.push(a),e.successors(a).forEach(function(d){Object.hasOwn(i,d)?i[d].onStack&&(c.lowlink=Math.min(c.lowlink,i[d].index)):(o(d),c.lowlink=Math.min(c.lowlink,i[d].lowlink))}),c.lowlink===c.index){var u=[],l;do l=r.pop(),i[l].onStack=!1,u.push(l);while(a!==l);s.push(u)}}return e.nodes().forEach(function(a){Object.hasOwn(i,a)||o(a)}),s}return Wv}var Hv,y_;function MH(){if(y_)return Hv;y_=1;var t=g_();Hv=e;function e(n){return t(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return Hv}var Vv,v_;function zH(){if(v_)return Vv;v_=1,Vv=e;var t=()=>1;function e(r,i,s){return n(r,i||t,s||function(o){return r.outEdges(o)})}function n(r,i,s){var o={},a=r.nodes();return a.forEach(function(c){o[c]={},o[c][c]={distance:0},a.forEach(function(u){c!==u&&(o[c][u]={distance:Number.POSITIVE_INFINITY})}),s(c).forEach(function(u){var l=u.v===c?u.w:u.v,d=i(u);o[c][l]={distance:d,predecessor:c}})}),a.forEach(function(c){var u=o[c];a.forEach(function(l){var d=o[l];a.forEach(function(f){var h=d[c],p=u[f],m=d[f],y=h.distance+p.distance;y<m.distance&&(m.distance=y,m.predecessor=p.predecessor)})})}),o}return Vv}var Kv,w_;function b_(){if(w_)return Kv;w_=1;function t(n){var r={},i={},s=[];function o(a){if(Object.hasOwn(i,a))throw new e;Object.hasOwn(r,a)||(i[a]=!0,r[a]=!0,n.predecessors(a).forEach(o),delete i[a],s.push(a))}if(n.sinks().forEach(o),Object.keys(r).length!==n.nodeCount())throw new e;return s}class e extends Error{constructor(){super(...arguments)}}return Kv=t,t.CycleException=e,Kv}var Yv,E_;function BH(){if(E_)return Yv;E_=1;var t=b_();Yv=e;function e(n){try{t(n)}catch(r){if(r instanceof t.CycleException)return!1;throw r}return!0}return Yv}var Xv,D_;function T_(){if(D_)return Xv;D_=1,Xv=t;function t(i,s,o){Array.isArray(s)||(s=[s]);var a=i.isDirected()?d=>i.successors(d):d=>i.neighbors(d),c=o==="post"?e:n,u=[],l={};return s.forEach(d=>{if(!i.hasNode(d))throw new Error("Graph does not have node: "+d);c(d,a,l,u)}),u}function e(i,s,o,a){for(var c=[[i,!1]];c.length>0;){var u=c.pop();u[1]?a.push(u[0]):Object.hasOwn(o,u[0])||(o[u[0]]=!0,c.push([u[0],!0]),r(s(u[0]),l=>c.push([l,!1])))}}function n(i,s,o,a){for(var c=[i];c.length>0;){var u=c.pop();Object.hasOwn(o,u)||(o[u]=!0,a.push(u),r(s(u),l=>c.push(l)))}}function r(i,s){for(var o=i.length;o--;)s(i[o],o,i);return i}return Xv}var Jv,R_;function qH(){if(R_)return Jv;R_=1;var t=T_();Jv=e;function e(n,r){return t(n,r,"post")}return Jv}var Zv,S_;function jH(){if(S_)return Zv;S_=1;var t=T_();Zv=e;function e(n,r){return t(n,r,"pre")}return Zv}var Qv,k_;function UH(){if(k_)return Qv;k_=1;var t=Lv(),e=d_();Qv=n;function n(r,i){var s=new t,o={},a=new e,c;function u(d){var f=d.v===c?d.w:d.v,h=a.priority(f);if(h!==void 0){var p=i(d);p<h&&(o[f]=c,a.decrease(f,p))}}if(r.nodeCount()===0)return s;r.nodes().forEach(function(d){a.add(d,Number.POSITIVE_INFINITY),s.setNode(d)}),a.decrease(r.nodes()[0],0);for(var l=!1;a.size()>0;){if(c=a.removeMin(),Object.hasOwn(o,c))s.setEdge(c,o[c]);else{if(l)throw new Error("Input graph is not connected: "+r);l=!0}r.nodeEdges(c).forEach(u)}return s}return Qv}var ew,$_;function GH(){return $_||($_=1,ew={components:FH(),dijkstra:h_(),dijkstraAll:LH(),findCycles:MH(),floydWarshall:zH(),isAcyclic:BH(),postorder:qH(),preorder:jH(),prim:UH(),tarjan:g_(),topsort:b_()}),ew}var tw,C_;function yr(){if(C_)return tw;C_=1;var t=NH();return tw={Graph:t.Graph,json:OH(),alg:GH(),version:t.version},tw}var nw,__;function WH(){if(__)return nw;__=1;class t{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,s=i._prev;if(s!==i)return e(s),s}enqueue(i){let s=this._sentinel;i._prev&&i._next&&e(i),i._next=s._next,s._next._prev=i,s._next=i,i._prev=s}toString(){let i=[],s=this._sentinel,o=s._prev;for(;o!==s;)i.push(JSON.stringify(o,n)),o=o._prev;return"["+i.join(", ")+"]"}}function e(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,i){if(r!=="_next"&&r!=="_prev")return i}return nw=t,nw}var rw,A_;function HH(){if(A_)return rw;A_=1;let t=yr().Graph,e=WH();rw=r;let n=()=>1;function r(u,l){if(u.nodeCount()<=1)return[];let d=o(u,l||n);return i(d.graph,d.buckets,d.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function i(u,l,d){let f=[],h=l[l.length-1],p=l[0],m;for(;u.nodeCount();){for(;m=p.dequeue();)s(u,l,d,m);for(;m=h.dequeue();)s(u,l,d,m);if(u.nodeCount()){for(let y=l.length-2;y>0;--y)if(m=l[y].dequeue(),m){f=f.concat(s(u,l,d,m,!0));break}}}return f}function s(u,l,d,f,h){let p=h?[]:void 0;return u.inEdges(f.v).forEach(m=>{let y=u.edge(m),g=u.node(m.v);h&&p.push({v:m.v,w:m.w}),g.out-=y,a(l,d,g)}),u.outEdges(f.v).forEach(m=>{let y=u.edge(m),g=m.w,w=u.node(g);w.in-=y,a(l,d,w)}),u.removeNode(f.v),p}function o(u,l){let d=new t,f=0,h=0;u.nodes().forEach(y=>{d.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let g=d.edge(y.v,y.w)||0,w=l(y),E=g+w;d.setEdge(y.v,y.w,E),h=Math.max(h,d.node(y.v).out+=w),f=Math.max(f,d.node(y.w).in+=w)});let p=c(h+f+3).map(()=>new e),m=f+1;return d.nodes().forEach(y=>{a(p,m,d.node(y))}),{graph:d,buckets:p,zeroIdx:m}}function a(u,l,d){d.out?d.in?u[d.out-d.in+l].enqueue(d):u[u.length-1].enqueue(d):u[0].enqueue(d)}function c(u){const l=[];for(let d=0;d<u;d++)l.push(d);return l}return rw}var iw,x_;function At(){if(x_)return iw;x_=1;let t=yr().Graph;iw={addBorderNode:l,addDummyNode:e,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:a,intersectRect:o,mapValues:I,maxRank:p,normalizeRanks:c,notime:g,partition:m,pick:A,predecessorWeights:s,range:k,removeEmptyRanks:u,simplify:n,successorWeights:i,time:y,uniqueId:E,zipObject:x};function e(_,P,O,C){let D;do D=E(C);while(_.hasNode(D));return O.dummy=P,_.setNode(D,O),D}function n(_){let P=new t().setGraph(_.graph());return _.nodes().forEach(O=>P.setNode(O,_.node(O))),_.edges().forEach(O=>{let C=P.edge(O.v,O.w)||{weight:0,minlen:1},D=_.edge(O);P.setEdge(O.v,O.w,{weight:C.weight+D.weight,minlen:Math.max(C.minlen,D.minlen)})}),P}function r(_){let P=new t({multigraph:_.isMultigraph()}).setGraph(_.graph());return _.nodes().forEach(O=>{_.children(O).length||P.setNode(O,_.node(O))}),_.edges().forEach(O=>{P.setEdge(O,_.edge(O))}),P}function i(_){let P=_.nodes().map(O=>{let C={};return _.outEdges(O).forEach(D=>{C[D.w]=(C[D.w]||0)+_.edge(D).weight}),C});return x(_.nodes(),P)}function s(_){let P=_.nodes().map(O=>{let C={};return _.inEdges(O).forEach(D=>{C[D.v]=(C[D.v]||0)+_.edge(D).weight}),C});return x(_.nodes(),P)}function o(_,P){let O=_.x,C=_.y,D=P.x-O,R=P.y-C,L=_.width/2,W=_.height/2;if(!D&&!R)throw new Error("Not possible to find intersection inside of the rectangle");let V,Z;return Math.abs(R)*L>Math.abs(D)*W?(R<0&&(W=-W),V=W*D/R,Z=W):(D<0&&(L=-L),V=L,Z=L*R/D),{x:O+V,y:C+Z}}function a(_){let P=k(p(_)+1).map(()=>[]);return _.nodes().forEach(O=>{let C=_.node(O),D=C.rank;D!==void 0&&(P[D][C.order]=O)}),P}function c(_){let P=_.nodes().map(C=>{let D=_.node(C).rank;return D===void 0?Number.MAX_VALUE:D}),O=h(Math.min,P);_.nodes().forEach(C=>{let D=_.node(C);Object.hasOwn(D,"rank")&&(D.rank-=O)})}function u(_){let P=_.nodes().map(L=>_.node(L).rank),O=h(Math.min,P),C=[];_.nodes().forEach(L=>{let W=_.node(L).rank-O;C[W]||(C[W]=[]),C[W].push(L)});let D=0,R=_.graph().nodeRankFactor;Array.from(C).forEach((L,W)=>{L===void 0&&W%R!==0?--D:L!==void 0&&D&&L.forEach(V=>_.node(V).rank+=D)})}function l(_,P,O,C){let D={width:0,height:0};return arguments.length>=4&&(D.rank=O,D.order=C),e(_,"border",D,P)}function d(_,P=f){const O=[];for(let C=0;C<_.length;C+=P){const D=_.slice(C,C+P);O.push(D)}return O}const f=65535;function h(_,P){if(P.length>f){const O=d(P);return _.apply(null,O.map(C=>_.apply(null,C)))}else return _.apply(null,P)}function p(_){const O=_.nodes().map(C=>{let D=_.node(C).rank;return D===void 0?Number.MIN_VALUE:D});return h(Math.max,O)}function m(_,P){let O={lhs:[],rhs:[]};return _.forEach(C=>{P(C)?O.lhs.push(C):O.rhs.push(C)}),O}function y(_,P){let O=Date.now();try{return P()}finally{console.log(_+" time: "+(Date.now()-O)+"ms")}}function g(_,P){return P()}let w=0;function E(_){var P=++w;return toString(_)+P}function k(_,P,O=1){P==null&&(P=_,_=0);let C=R=>R<P;O<0&&(C=R=>P<R);const D=[];for(let R=_;C(R);R+=O)D.push(R);return D}function A(_,P){const O={};for(const C of P)_[C]!==void 0&&(O[C]=_[C]);return O}function I(_,P){let O=P;return typeof P=="string"&&(O=C=>C[P]),Object.entries(_).reduce((C,[D,R])=>(C[D]=O(R,D),C),{})}function x(_,P){return _.reduce((O,C,D)=>(O[C]=P[D],O),{})}return iw}var sw,I_;function VH(){if(I_)return sw;I_=1;let t=HH(),e=At().uniqueId;sw={run:n,undo:i};function n(s){(s.graph().acyclicer==="greedy"?t(s,a(s)):r(s)).forEach(c=>{let u=s.edge(c);s.removeEdge(c),u.forwardName=c.name,u.reversed=!0,s.setEdge(c.w,c.v,u,e("rev"))});function a(c){return u=>c.edge(u).weight}}function r(s){let o=[],a={},c={};function u(l){Object.hasOwn(c,l)||(c[l]=!0,a[l]=!0,s.outEdges(l).forEach(d=>{Object.hasOwn(a,d.w)?o.push(d):u(d.w)}),delete a[l])}return s.nodes().forEach(u),o}function i(s){s.edges().forEach(o=>{let a=s.edge(o);if(a.reversed){s.removeEdge(o);let c=a.forwardName;delete a.reversed,delete a.forwardName,s.setEdge(o.w,o.v,a,c)}})}return sw}var ow,P_;function KH(){if(P_)return ow;P_=1;let t=At();ow={run:e,undo:r};function e(i){i.graph().dummyChains=[],i.edges().forEach(s=>n(i,s))}function n(i,s){let o=s.v,a=i.node(o).rank,c=s.w,u=i.node(c).rank,l=s.name,d=i.edge(s),f=d.labelRank;if(u===a+1)return;i.removeEdge(s);let h,p,m;for(m=0,++a;a<u;++m,++a)d.points=[],p={width:0,height:0,edgeLabel:d,edgeObj:s,rank:a},h=t.addDummyNode(i,"edge",p,"_d"),a===f&&(p.width=d.width,p.height=d.height,p.dummy="edge-label",p.labelpos=d.labelpos),i.setEdge(o,h,{weight:d.weight},l),m===0&&i.graph().dummyChains.push(h),o=h;i.setEdge(o,c,{weight:d.weight},l)}function r(i){i.graph().dummyChains.forEach(s=>{let o=i.node(s),a=o.edgeLabel,c;for(i.setEdge(o.edgeObj,a);o.dummy;)c=i.successors(s)[0],i.removeNode(s),a.points.push({x:o.x,y:o.y}),o.dummy==="edge-label"&&(a.x=o.x,a.y=o.y,a.width=o.width,a.height=o.height),s=c,o=i.node(s)})}return ow}var aw,N_;function Dh(){if(N_)return aw;N_=1;const{applyWithChunking:t}=At();aw={longestPath:e,slack:n};function e(r){var i={};function s(o){var a=r.node(o);if(Object.hasOwn(i,o))return a.rank;i[o]=!0;let c=r.outEdges(o).map(l=>l==null?Number.POSITIVE_INFINITY:s(l.w)-r.edge(l).minlen);var u=t(Math.min,c);return u===Number.POSITIVE_INFINITY&&(u=0),a.rank=u}r.sources().forEach(s)}function n(r,i){return r.node(i.w).rank-r.node(i.v).rank-r.edge(i).minlen}return aw}var cw,O_;function F_(){if(O_)return cw;O_=1;var t=yr().Graph,e=Dh().slack;cw=n;function n(o){var a=new t({directed:!1}),c=o.nodes()[0],u=o.nodeCount();a.setNode(c,{});for(var l,d;r(a,o)<u;)l=i(a,o),d=a.hasNode(l.v)?e(o,l):-e(o,l),s(a,o,d);return a}function r(o,a){function c(u){a.nodeEdges(u).forEach(l=>{var d=l.v,f=u===d?l.w:d;!o.hasNode(f)&&!e(a,l)&&(o.setNode(f,{}),o.setEdge(u,f,{}),c(f))})}return o.nodes().forEach(c),o.nodeCount()}function i(o,a){return a.edges().reduce((u,l)=>{let d=Number.POSITIVE_INFINITY;return o.hasNode(l.v)!==o.hasNode(l.w)&&(d=e(a,l)),d<u[0]?[d,l]:u},[Number.POSITIVE_INFINITY,null])[1]}function s(o,a,c){o.nodes().forEach(u=>a.node(u).rank+=c)}return cw}var uw,L_;function YH(){if(L_)return uw;L_=1;var t=F_(),e=Dh().slack,n=Dh().longestPath,r=yr().alg.preorder,i=yr().alg.postorder,s=At().simplify;uw=o,o.initLowLimValues=l,o.initCutValues=a,o.calcCutValue=u,o.leaveEdge=f,o.enterEdge=h,o.exchangeEdges=p;function o(w){w=s(w),n(w);var E=t(w);l(E),a(E,w);for(var k,A;k=f(E);)A=h(E,w,k),p(E,w,k,A)}function a(w,E){var k=i(w,w.nodes());k=k.slice(0,k.length-1),k.forEach(A=>c(w,E,A))}function c(w,E,k){var A=w.node(k),I=A.parent;w.edge(k,I).cutvalue=u(w,E,k)}function u(w,E,k){var A=w.node(k),I=A.parent,x=!0,_=E.edge(k,I),P=0;return _||(x=!1,_=E.edge(I,k)),P=_.weight,E.nodeEdges(k).forEach(O=>{var C=O.v===k,D=C?O.w:O.v;if(D!==I){var R=C===x,L=E.edge(O).weight;if(P+=R?L:-L,y(w,k,D)){var W=w.edge(k,D).cutvalue;P+=R?-W:W}}}),P}function l(w,E){arguments.length<2&&(E=w.nodes()[0]),d(w,{},1,E)}function d(w,E,k,A,I){var x=k,_=w.node(A);return E[A]=!0,w.neighbors(A).forEach(P=>{Object.hasOwn(E,P)||(k=d(w,E,k,P,A))}),_.low=x,_.lim=k++,I?_.parent=I:delete _.parent,k}function f(w){return w.edges().find(E=>w.edge(E).cutvalue<0)}function h(w,E,k){var A=k.v,I=k.w;E.hasEdge(A,I)||(A=k.w,I=k.v);var x=w.node(A),_=w.node(I),P=x,O=!1;x.lim>_.lim&&(P=_,O=!0);var C=E.edges().filter(D=>O===g(w,w.node(D.v),P)&&O!==g(w,w.node(D.w),P));return C.reduce((D,R)=>e(E,R)<e(E,D)?R:D)}function p(w,E,k,A){var I=k.v,x=k.w;w.removeEdge(I,x),w.setEdge(A.v,A.w,{}),l(w),a(w,E),m(w,E)}function m(w,E){var k=w.nodes().find(I=>!E.node(I).parent),A=r(w,k);A=A.slice(1),A.forEach(I=>{var x=w.node(I).parent,_=E.edge(I,x),P=!1;_||(_=E.edge(x,I),P=!0),E.node(I).rank=E.node(x).rank+(P?_.minlen:-_.minlen)})}function y(w,E,k){return w.hasEdge(E,k)}function g(w,E,k){return k.low<=E.lim&&E.lim<=k.lim}return uw}var lw,M_;function XH(){if(M_)return lw;M_=1;var t=Dh(),e=t.longestPath,n=F_(),r=YH();lw=i;function i(c){switch(c.graph().ranker){case"network-simplex":a(c);break;case"tight-tree":o(c);break;case"longest-path":s(c);break;default:a(c)}}var s=e;function o(c){e(c),n(c)}function a(c){r(c)}return lw}var dw,z_;function JH(){if(z_)return dw;z_=1,dw=t;function t(r){let i=n(r);r.graph().dummyChains.forEach(s=>{let o=r.node(s),a=o.edgeObj,c=e(r,i,a.v,a.w),u=c.path,l=c.lca,d=0,f=u[d],h=!0;for(;s!==a.w;){if(o=r.node(s),h){for(;(f=u[d])!==l&&r.node(f).maxRank<o.rank;)d++;f===l&&(h=!1)}if(!h){for(;d<u.length-1&&r.node(f=u[d+1]).minRank<=o.rank;)d++;f=u[d]}r.setParent(s,f),s=r.successors(s)[0]}})}function e(r,i,s,o){let a=[],c=[],u=Math.min(i[s].low,i[o].low),l=Math.max(i[s].lim,i[o].lim),d,f;d=s;do d=r.parent(d),a.push(d);while(d&&(i[d].low>u||l>i[d].lim));for(f=d,d=o;(d=r.parent(d))!==f;)c.push(d);return{path:a.concat(c.reverse()),lca:f}}function n(r){let i={},s=0;function o(a){let c=s;r.children(a).forEach(o),i[a]={low:c,lim:s++}}return r.children().forEach(o),i}return dw}var fw,B_;function ZH(){if(B_)return fw;B_=1;let t=At();fw={run:e,cleanup:s};function e(o){let a=t.addDummyNode(o,"root",{},"_root"),c=r(o),u=Object.values(c),l=t.applyWithChunking(Math.max,u)-1,d=2*l+1;o.graph().nestingRoot=a,o.edges().forEach(h=>o.edge(h).minlen*=d);let f=i(o)+1;o.children().forEach(h=>n(o,a,d,f,l,c,h)),o.graph().nodeRankFactor=d}function n(o,a,c,u,l,d,f){let h=o.children(f);if(!h.length){f!==a&&o.setEdge(a,f,{weight:0,minlen:c});return}let p=t.addBorderNode(o,"_bt"),m=t.addBorderNode(o,"_bb"),y=o.node(f);o.setParent(p,f),y.borderTop=p,o.setParent(m,f),y.borderBottom=m,h.forEach(g=>{n(o,a,c,u,l,d,g);let w=o.node(g),E=w.borderTop?w.borderTop:g,k=w.borderBottom?w.borderBottom:g,A=w.borderTop?u:2*u,I=E!==k?1:l-d[f]+1;o.setEdge(p,E,{weight:A,minlen:I,nestingEdge:!0}),o.setEdge(k,m,{weight:A,minlen:I,nestingEdge:!0})}),o.parent(f)||o.setEdge(a,p,{weight:0,minlen:l+d[f]})}function r(o){var a={};function c(u,l){var d=o.children(u);d&&d.length&&d.forEach(f=>c(f,l+1)),a[u]=l}return o.children().forEach(u=>c(u,1)),a}function i(o){return o.edges().reduce((a,c)=>a+o.edge(c).weight,0)}function s(o){var a=o.graph();o.removeNode(a.nestingRoot),delete a.nestingRoot,o.edges().forEach(c=>{var u=o.edge(c);u.nestingEdge&&o.removeEdge(c)})}return fw}var hw,q_;function QH(){if(q_)return hw;q_=1;let t=At();hw=e;function e(r){function i(s){let o=r.children(s),a=r.node(s);if(o.length&&o.forEach(i),Object.hasOwn(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(let c=a.minRank,u=a.maxRank+1;c<u;++c)n(r,"borderLeft","_bl",s,a,c),n(r,"borderRight","_br",s,a,c)}}r.children().forEach(i)}function n(r,i,s,o,a,c){let u={width:0,height:0,rank:c,borderType:i},l=a[i][c-1],d=t.addDummyNode(r,"border",u,s);a[i][c]=d,r.setParent(d,o),l&&r.setEdge(l,d,{weight:1})}return hw}var pw,j_;function eV(){if(j_)return pw;j_=1,pw={adjust:t,undo:e};function t(c){let u=c.graph().rankdir.toLowerCase();(u==="lr"||u==="rl")&&n(c)}function e(c){let u=c.graph().rankdir.toLowerCase();(u==="bt"||u==="rl")&&i(c),(u==="lr"||u==="rl")&&(o(c),n(c))}function n(c){c.nodes().forEach(u=>r(c.node(u))),c.edges().forEach(u=>r(c.edge(u)))}function r(c){let u=c.width;c.width=c.height,c.height=u}function i(c){c.nodes().forEach(u=>s(c.node(u))),c.edges().forEach(u=>{let l=c.edge(u);l.points.forEach(s),Object.hasOwn(l,"y")&&s(l)})}function s(c){c.y=-c.y}function o(c){c.nodes().forEach(u=>a(c.node(u))),c.edges().forEach(u=>{let l=c.edge(u);l.points.forEach(a),Object.hasOwn(l,"x")&&a(l)})}function a(c){let u=c.x;c.x=c.y,c.y=u}return pw}var mw,U_;function tV(){if(U_)return mw;U_=1;let t=At();mw=e;function e(n){let r={},i=n.nodes().filter(l=>!n.children(l).length),s=i.map(l=>n.node(l).rank),o=t.applyWithChunking(Math.max,s),a=t.range(o+1).map(()=>[]);function c(l){if(r[l])return;r[l]=!0;let d=n.node(l);a[d.rank].push(l),n.successors(l).forEach(c)}return i.sort((l,d)=>n.node(l).rank-n.node(d).rank).forEach(c),a}return mw}var gw,G_;function nV(){if(G_)return gw;G_=1;let t=At().zipObject;gw=e;function e(r,i){let s=0;for(let o=1;o<i.length;++o)s+=n(r,i[o-1],i[o]);return s}function n(r,i,s){let o=t(s,s.map((f,h)=>h)),a=i.flatMap(f=>r.outEdges(f).map(h=>({pos:o[h.w],weight:r.edge(h).weight})).sort((h,p)=>h.pos-p.pos)),c=1;for(;c<s.length;)c<<=1;let u=2*c-1;c-=1;let l=new Array(u).fill(0),d=0;return a.forEach(f=>{let h=f.pos+c;l[h]+=f.weight;let p=0;for(;h>0;)h%2&&(p+=l[h+1]),h=h-1>>1,l[h]+=f.weight;d+=f.weight*p}),d}return gw}var yw,W_;function rV(){if(W_)return yw;W_=1,yw=t;function t(e,n=[]){return n.map(r=>{let i=e.inEdges(r);if(i.length){let s=i.reduce((o,a)=>{let c=e.edge(a),u=e.node(a.v);return{sum:o.sum+c.weight*u.order,weight:o.weight+c.weight}},{sum:0,weight:0});return{v:r,barycenter:s.sum/s.weight,weight:s.weight}}else return{v:r}})}return yw}var vw,H_;function iV(){if(H_)return vw;H_=1;let t=At();vw=e;function e(i,s){let o={};i.forEach((c,u)=>{let l=o[c.v]={indegree:0,in:[],out:[],vs:[c.v],i:u};c.barycenter!==void 0&&(l.barycenter=c.barycenter,l.weight=c.weight)}),s.edges().forEach(c=>{let u=o[c.v],l=o[c.w];u!==void 0&&l!==void 0&&(l.indegree++,u.out.push(o[c.w]))});let a=Object.values(o).filter(c=>!c.indegree);return n(a)}function n(i){let s=[];function o(c){return u=>{u.merged||(u.barycenter===void 0||c.barycenter===void 0||u.barycenter>=c.barycenter)&&r(c,u)}}function a(c){return u=>{u.in.push(c),--u.indegree===0&&i.push(u)}}for(;i.length;){let c=i.pop();s.push(c),c.in.reverse().forEach(o(c)),c.out.forEach(a(c))}return s.filter(c=>!c.merged).map(c=>t.pick(c,["vs","i","barycenter","weight"]))}function r(i,s){let o=0,a=0;i.weight&&(o+=i.barycenter*i.weight,a+=i.weight),s.weight&&(o+=s.barycenter*s.weight,a+=s.weight),i.vs=s.vs.concat(i.vs),i.barycenter=o/a,i.weight=a,i.i=Math.min(s.i,i.i),s.merged=!0}return vw}var ww,V_;function sV(){if(V_)return ww;V_=1;let t=At();ww=e;function e(i,s){let o=t.partition(i,p=>Object.hasOwn(p,"barycenter")),a=o.lhs,c=o.rhs.sort((p,m)=>m.i-p.i),u=[],l=0,d=0,f=0;a.sort(r(!!s)),f=n(u,c,f),a.forEach(p=>{f+=p.vs.length,u.push(p.vs),l+=p.barycenter*p.weight,d+=p.weight,f=n(u,c,f)});let h={vs:u.flat(!0)};return d&&(h.barycenter=l/d,h.weight=d),h}function n(i,s,o){let a;for(;s.length&&(a=s[s.length-1]).i<=o;)s.pop(),i.push(a.vs),o++;return o}function r(i){return(s,o)=>s.barycenter<o.barycenter?-1:s.barycenter>o.barycenter?1:i?o.i-s.i:s.i-o.i}return ww}var bw,K_;function oV(){if(K_)return bw;K_=1;let t=rV(),e=iV(),n=sV();bw=r;function r(o,a,c,u){let l=o.children(a),d=o.node(a),f=d?d.borderLeft:void 0,h=d?d.borderRight:void 0,p={};f&&(l=l.filter(w=>w!==f&&w!==h));let m=t(o,l);m.forEach(w=>{if(o.children(w.v).length){let E=r(o,w.v,c,u);p[w.v]=E,Object.hasOwn(E,"barycenter")&&s(w,E)}});let y=e(m,c);i(y,p);let g=n(y,u);if(f&&(g.vs=[f,g.vs,h].flat(!0),o.predecessors(f).length)){let w=o.node(o.predecessors(f)[0]),E=o.node(o.predecessors(h)[0]);Object.hasOwn(g,"barycenter")||(g.barycenter=0,g.weight=0),g.barycenter=(g.barycenter*g.weight+w.order+E.order)/(g.weight+2),g.weight+=2}return g}function i(o,a){o.forEach(c=>{c.vs=c.vs.flatMap(u=>a[u]?a[u].vs:u)})}function s(o,a){o.barycenter!==void 0?(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight):(o.barycenter=a.barycenter,o.weight=a.weight)}return bw}var Ew,Y_;function aV(){if(Y_)return Ew;Y_=1;let t=yr().Graph,e=At();Ew=n;function n(i,s,o){let a=r(i),c=new t({compound:!0}).setGraph({root:a}).setDefaultNodeLabel(u=>i.node(u));return i.nodes().forEach(u=>{let l=i.node(u),d=i.parent(u);(l.rank===s||l.minRank<=s&&s<=l.maxRank)&&(c.setNode(u),c.setParent(u,d||a),i[o](u).forEach(f=>{let h=f.v===u?f.w:f.v,p=c.edge(h,u),m=p!==void 0?p.weight:0;c.setEdge(h,u,{weight:i.edge(f).weight+m})}),Object.hasOwn(l,"minRank")&&c.setNode(u,{borderLeft:l.borderLeft[s],borderRight:l.borderRight[s]}))}),c}function r(i){for(var s;i.hasNode(s=e.uniqueId("_root")););return s}return Ew}var Dw,X_;function cV(){if(X_)return Dw;X_=1,Dw=t;function t(e,n,r){let i={},s;r.forEach(o=>{let a=e.parent(o),c,u;for(;a;){if(c=e.parent(a),c?(u=i[c],i[c]=a):(u=s,s=a),u&&u!==a){n.setEdge(u,a);return}a=c}})}return Dw}var Tw,J_;function uV(){if(J_)return Tw;J_=1;let t=tV(),e=nV(),n=oV(),r=aV(),i=cV(),s=yr().Graph,o=At();Tw=a;function a(d,f){if(f&&typeof f.customOrder=="function"){f.customOrder(d,a);return}let h=o.maxRank(d),p=c(d,o.range(1,h+1),"inEdges"),m=c(d,o.range(h-1,-1,-1),"outEdges"),y=t(d);if(l(d,y),f&&f.disableOptimalOrderHeuristic)return;let g=Number.POSITIVE_INFINITY,w;for(let E=0,k=0;k<4;++E,++k){u(E%2?p:m,E%4>=2),y=o.buildLayerMatrix(d);let A=e(d,y);A<g&&(k=0,w=Object.assign({},y),g=A)}l(d,w)}function c(d,f,h){return f.map(function(p){return r(d,p,h)})}function u(d,f){let h=new s;d.forEach(function(p){let m=p.graph().root,y=n(p,m,h,f);y.vs.forEach((g,w)=>p.node(g).order=w),i(p,h,y.vs)})}function l(d,f){Object.values(f).forEach(h=>h.forEach((p,m)=>d.node(p).order=m))}return Tw}var Rw,Z_;function lV(){if(Z_)return Rw;Z_=1;let t=yr().Graph,e=At();Rw={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:s,hasConflict:o,verticalAlignment:a,horizontalCompaction:c,alignCoordinates:d,findSmallestWidthAlignment:l,balance:f};function n(y,g){let w={};function E(k,A){let I=0,x=0,_=k.length,P=A[A.length-1];return A.forEach((O,C)=>{let D=i(y,O),R=D?y.node(D).order:_;(D||O===P)&&(A.slice(x,C+1).forEach(L=>{y.predecessors(L).forEach(W=>{let V=y.node(W),Z=V.order;(Z<I||R<Z)&&!(V.dummy&&y.node(L).dummy)&&s(w,W,L)})}),x=C+1,I=R)}),A}return g.length&&g.reduce(E),w}function r(y,g){let w={};function E(A,I,x,_,P){let O;e.range(I,x).forEach(C=>{O=A[C],y.node(O).dummy&&y.predecessors(O).forEach(D=>{let R=y.node(D);R.dummy&&(R.order<_||R.order>P)&&s(w,D,O)})})}function k(A,I){let x=-1,_,P=0;return I.forEach((O,C)=>{if(y.node(O).dummy==="border"){let D=y.predecessors(O);D.length&&(_=y.node(D[0]).order,E(I,P,C,x,_),P=C,x=_)}E(I,P,I.length,_,A.length)}),I}return g.length&&g.reduce(k),w}function i(y,g){if(y.node(g).dummy)return y.predecessors(g).find(w=>y.node(w).dummy)}function s(y,g,w){if(g>w){let k=g;g=w,w=k}let E=y[g];E||(y[g]=E={}),E[w]=!0}function o(y,g,w){if(g>w){let E=g;g=w,w=E}return!!y[g]&&Object.hasOwn(y[g],w)}function a(y,g,w,E){let k={},A={},I={};return g.forEach(x=>{x.forEach((_,P)=>{k[_]=_,A[_]=_,I[_]=P})}),g.forEach(x=>{let _=-1;x.forEach(P=>{let O=E(P);if(O.length){O=O.sort((D,R)=>I[D]-I[R]);let C=(O.length-1)/2;for(let D=Math.floor(C),R=Math.ceil(C);D<=R;++D){let L=O[D];A[P]===P&&_<I[L]&&!o(w,P,L)&&(A[L]=P,A[P]=k[P]=k[L],_=I[L])}}})}),{root:k,align:A}}function c(y,g,w,E,k){let A={},I=u(y,g,w,k),x=k?"borderLeft":"borderRight";function _(C,D){let R=I.nodes(),L=R.pop(),W={};for(;L;)W[L]?C(L):(W[L]=!0,R.push(L),R=R.concat(D(L))),L=R.pop()}function P(C){A[C]=I.inEdges(C).reduce((D,R)=>Math.max(D,A[R.v]+I.edge(R)),0)}function O(C){let D=I.outEdges(C).reduce((L,W)=>Math.min(L,A[W.w]-I.edge(W)),Number.POSITIVE_INFINITY),R=y.node(C);D!==Number.POSITIVE_INFINITY&&R.borderType!==x&&(A[C]=Math.max(A[C],D))}return _(P,I.predecessors.bind(I)),_(O,I.successors.bind(I)),Object.keys(E).forEach(C=>A[C]=A[w[C]]),A}function u(y,g,w,E){let k=new t,A=y.graph(),I=p(A.nodesep,A.edgesep,E);return g.forEach(x=>{let _;x.forEach(P=>{let O=w[P];if(k.setNode(O),_){var C=w[_],D=k.edge(C,O);k.setEdge(C,O,Math.max(I(y,P,_),D||0))}_=P})}),k}function l(y,g){return Object.values(g).reduce((w,E)=>{let k=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY;Object.entries(E).forEach(([x,_])=>{let P=m(y,x)/2;k=Math.max(_+P,k),A=Math.min(_-P,A)});const I=k-A;return I<w[0]&&(w=[I,E]),w},[Number.POSITIVE_INFINITY,null])[1]}function d(y,g){let w=Object.values(g),E=e.applyWithChunking(Math.min,w),k=e.applyWithChunking(Math.max,w);["u","d"].forEach(A=>{["l","r"].forEach(I=>{let x=A+I,_=y[x];if(_===g)return;let P=Object.values(_),O=E-e.applyWithChunking(Math.min,P);I!=="l"&&(O=k-e.applyWithChunking(Math.max,P)),O&&(y[x]=e.mapValues(_,C=>C+O))})})}function f(y,g){return e.mapValues(y.ul,(w,E)=>{if(g)return y[g.toLowerCase()][E];{let k=Object.values(y).map(A=>A[E]).sort((A,I)=>A-I);return(k[1]+k[2])/2}})}function h(y){let g=e.buildLayerMatrix(y),w=Object.assign(n(y,g),r(y,g)),E={},k;["u","d"].forEach(I=>{k=I==="u"?g:Object.values(g).reverse(),["l","r"].forEach(x=>{x==="r"&&(k=k.map(C=>Object.values(C).reverse()));let _=(I==="u"?y.predecessors:y.successors).bind(y),P=a(y,k,w,_),O=c(y,k,P.root,P.align,x==="r");x==="r"&&(O=e.mapValues(O,C=>-C)),E[I+x]=O})});let A=l(y,E);return d(E,A),f(E,y.graph().align)}function p(y,g,w){return(E,k,A)=>{let I=E.node(k),x=E.node(A),_=0,P;if(_+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":P=-I.width/2;break;case"r":P=I.width/2;break}if(P&&(_+=w?P:-P),P=0,_+=(I.dummy?g:y)/2,_+=(x.dummy?g:y)/2,_+=x.width/2,Object.hasOwn(x,"labelpos"))switch(x.labelpos.toLowerCase()){case"l":P=x.width/2;break;case"r":P=-x.width/2;break}return P&&(_+=w?P:-P),P=0,_}}function m(y,g){return y.node(g).width}return Rw}var Sw,Q_;function dV(){if(Q_)return Sw;Q_=1;let t=At(),e=lV().positionX;Sw=n;function n(i){i=t.asNonCompoundGraph(i),r(i),Object.entries(e(i)).forEach(([s,o])=>i.node(s).x=o)}function r(i){let s=t.buildLayerMatrix(i),o=i.graph().ranksep,a=0;s.forEach(c=>{const u=c.reduce((l,d)=>{const f=i.node(d).height;return l>f?l:f},0);c.forEach(l=>i.node(l).y=a+u/2),a+=u+o})}return Sw}var kw,eA;function fV(){if(eA)return kw;eA=1;let t=VH(),e=KH(),n=XH(),r=At().normalizeRanks,i=JH(),s=At().removeEmptyRanks,o=ZH(),a=QH(),c=eV(),u=uV(),l=dV(),d=At(),f=yr().Graph;kw=h;function h(H,Y){let ee=Y&&Y.debugTiming?d.time:d.notime;ee("layout",()=>{let ne=ee(" buildLayoutGraph",()=>_(H));ee(" runLayout",()=>p(ne,ee,Y)),ee(" updateInputGraph",()=>m(H,ne))})}function p(H,Y,ee){Y(" makeSpaceForEdgeLabels",()=>P(H)),Y(" removeSelfEdges",()=>Fe(H)),Y(" acyclic",()=>t.run(H)),Y(" nestingGraph.run",()=>o.run(H)),Y(" rank",()=>n(d.asNonCompoundGraph(H))),Y(" injectEdgeLabelProxies",()=>O(H)),Y(" removeEmptyRanks",()=>s(H)),Y(" nestingGraph.cleanup",()=>o.cleanup(H)),Y(" normalizeRanks",()=>r(H)),Y(" assignRankMinMax",()=>C(H)),Y(" removeEdgeLabelProxies",()=>D(H)),Y(" normalize.run",()=>e.run(H)),Y(" parentDummyChains",()=>i(H)),Y(" addBorderSegments",()=>a(H)),Y(" order",()=>u(H,ee)),Y(" insertSelfEdges",()=>se(H)),Y(" adjustCoordinateSystem",()=>c.adjust(H)),Y(" position",()=>l(H)),Y(" positionSelfEdges",()=>K(H)),Y(" removeBorderNodes",()=>Z(H)),Y(" normalize.undo",()=>e.undo(H)),Y(" fixupEdgeLabelCoords",()=>W(H)),Y(" undoCoordinateSystem",()=>c.undo(H)),Y(" translateGraph",()=>R(H)),Y(" assignNodeIntersects",()=>L(H)),Y(" reversePoints",()=>V(H)),Y(" acyclic.undo",()=>t.undo(H))}function m(H,Y){H.nodes().forEach(ee=>{let ne=H.node(ee),fe=Y.node(ee);ne&&(ne.x=fe.x,ne.y=fe.y,ne.rank=fe.rank,Y.children(ee).length&&(ne.width=fe.width,ne.height=fe.height))}),H.edges().forEach(ee=>{let ne=H.edge(ee),fe=Y.edge(ee);ne.points=fe.points,Object.hasOwn(fe,"x")&&(ne.x=fe.x,ne.y=fe.y)}),H.graph().width=Y.graph().width,H.graph().height=Y.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],g={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},w=["acyclicer","ranker","rankdir","align"],E=["width","height"],k={width:0,height:0},A=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},x=["labelpos"];function _(H){let Y=new f({multigraph:!0,compound:!0}),ee=ut(H.graph());return Y.setGraph(Object.assign({},g,Te(ee,y),d.pick(ee,w))),H.nodes().forEach(ne=>{let fe=ut(H.node(ne));const Ee=Te(fe,E);Object.keys(k).forEach(ge=>{Ee[ge]===void 0&&(Ee[ge]=k[ge])}),Y.setNode(ne,Ee),Y.setParent(ne,H.parent(ne))}),H.edges().forEach(ne=>{let fe=ut(H.edge(ne));Y.setEdge(ne,Object.assign({},I,Te(fe,A),d.pick(fe,x)))}),Y}function P(H){let Y=H.graph();Y.ranksep/=2,H.edges().forEach(ee=>{let ne=H.edge(ee);ne.minlen*=2,ne.labelpos.toLowerCase()!=="c"&&(Y.rankdir==="TB"||Y.rankdir==="BT"?ne.width+=ne.labeloffset:ne.height+=ne.labeloffset)})}function O(H){H.edges().forEach(Y=>{let ee=H.edge(Y);if(ee.width&&ee.height){let ne=H.node(Y.v),Ee={rank:(H.node(Y.w).rank-ne.rank)/2+ne.rank,e:Y};d.addDummyNode(H,"edge-proxy",Ee,"_ep")}})}function C(H){let Y=0;H.nodes().forEach(ee=>{let ne=H.node(ee);ne.borderTop&&(ne.minRank=H.node(ne.borderTop).rank,ne.maxRank=H.node(ne.borderBottom).rank,Y=Math.max(Y,ne.maxRank))}),H.graph().maxRank=Y}function D(H){H.nodes().forEach(Y=>{let ee=H.node(Y);ee.dummy==="edge-proxy"&&(H.edge(ee.e).labelRank=ee.rank,H.removeNode(Y))})}function R(H){let Y=Number.POSITIVE_INFINITY,ee=0,ne=Number.POSITIVE_INFINITY,fe=0,Ee=H.graph(),ge=Ee.marginx||0,ce=Ee.marginy||0;function M(U){let oe=U.x,G=U.y,Le=U.width,yt=U.height;Y=Math.min(Y,oe-Le/2),ee=Math.max(ee,oe+Le/2),ne=Math.min(ne,G-yt/2),fe=Math.max(fe,G+yt/2)}H.nodes().forEach(U=>M(H.node(U))),H.edges().forEach(U=>{let oe=H.edge(U);Object.hasOwn(oe,"x")&&M(oe)}),Y-=ge,ne-=ce,H.nodes().forEach(U=>{let oe=H.node(U);oe.x-=Y,oe.y-=ne}),H.edges().forEach(U=>{let oe=H.edge(U);oe.points.forEach(G=>{G.x-=Y,G.y-=ne}),Object.hasOwn(oe,"x")&&(oe.x-=Y),Object.hasOwn(oe,"y")&&(oe.y-=ne)}),Ee.width=ee-Y+ge,Ee.height=fe-ne+ce}function L(H){H.edges().forEach(Y=>{let ee=H.edge(Y),ne=H.node(Y.v),fe=H.node(Y.w),Ee,ge;ee.points?(Ee=ee.points[0],ge=ee.points[ee.points.length-1]):(ee.points=[],Ee=fe,ge=ne),ee.points.unshift(d.intersectRect(ne,Ee)),ee.points.push(d.intersectRect(fe,ge))})}function W(H){H.edges().forEach(Y=>{let ee=H.edge(Y);if(Object.hasOwn(ee,"x"))switch((ee.labelpos==="l"||ee.labelpos==="r")&&(ee.width-=ee.labeloffset),ee.labelpos){case"l":ee.x-=ee.width/2+ee.labeloffset;break;case"r":ee.x+=ee.width/2+ee.labeloffset;break}})}function V(H){H.edges().forEach(Y=>{let ee=H.edge(Y);ee.reversed&&ee.points.reverse()})}function Z(H){H.nodes().forEach(Y=>{if(H.children(Y).length){let ee=H.node(Y),ne=H.node(ee.borderTop),fe=H.node(ee.borderBottom),Ee=H.node(ee.borderLeft[ee.borderLeft.length-1]),ge=H.node(ee.borderRight[ee.borderRight.length-1]);ee.width=Math.abs(ge.x-Ee.x),ee.height=Math.abs(fe.y-ne.y),ee.x=Ee.x+ee.width/2,ee.y=ne.y+ee.height/2}}),H.nodes().forEach(Y=>{H.node(Y).dummy==="border"&&H.removeNode(Y)})}function Fe(H){H.edges().forEach(Y=>{if(Y.v===Y.w){var ee=H.node(Y.v);ee.selfEdges||(ee.selfEdges=[]),ee.selfEdges.push({e:Y,label:H.edge(Y)}),H.removeEdge(Y)}})}function se(H){var Y=d.buildLayerMatrix(H);Y.forEach(ee=>{var ne=0;ee.forEach((fe,Ee)=>{var ge=H.node(fe);ge.order=Ee+ne,(ge.selfEdges||[]).forEach(ce=>{d.addDummyNode(H,"selfedge",{width:ce.label.width,height:ce.label.height,rank:ge.rank,order:Ee+ ++ne,e:ce.e,label:ce.label},"_se")}),delete ge.selfEdges})})}function K(H){H.nodes().forEach(Y=>{var ee=H.node(Y);if(ee.dummy==="selfedge"){var ne=H.node(ee.e.v),fe=ne.x+ne.width/2,Ee=ne.y,ge=ee.x-fe,ce=ne.height/2;H.setEdge(ee.e,ee.label),H.removeNode(Y),ee.label.points=[{x:fe+2*ge/3,y:Ee-ce},{x:fe+5*ge/6,y:Ee-ce},{x:fe+ge,y:Ee},{x:fe+5*ge/6,y:Ee+ce},{x:fe+2*ge/3,y:Ee+ce}],ee.label.x=ee.x,ee.label.y=ee.y}})}function Te(H,Y){return d.mapValues(d.pick(H,Y),Number)}function ut(H){var Y={};return H&&Object.entries(H).forEach(([ee,ne])=>{typeof ee=="string"&&(ee=ee.toLowerCase()),Y[ee]=ne}),Y}return kw}var $w,tA;function hV(){if(tA)return $w;tA=1;let t=At(),e=yr().Graph;$w={debugOrdering:n};function n(r){let i=t.buildLayerMatrix(r),s=new e({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(o=>{s.setNode(o,{label:o}),s.setParent(o,"layer"+r.node(o).rank)}),r.edges().forEach(o=>s.setEdge(o.v,o.w,{},o.name)),i.forEach((o,a)=>{let c="layer"+a;s.setNode(c,{rank:"same"}),o.reduce((u,l)=>(s.setEdge(u,l,{style:"invis"}),l))}),s}return $w}var Cw,nA;function pV(){return nA||(nA=1,Cw="1.1.4"),Cw}var _w,rA;function mV(){return rA||(rA=1,_w={graphlib:yr(),layout:fV(),debug:hV(),util:{time:At().time,notime:At().notime},version:pV()}),_w}var Th=mV(),Rh={exports:{}},iA;function gV(){return iA||(iA=1,function(t,e){var n=Qk;e=t.exports=r;function r(d,f){return f=o(d,f),c(d,f)}e.sha1=function(d){return r(d)},e.keys=function(d){return r(d,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},e.MD5=function(d){return r(d,{algorithm:"md5",encoding:"hex"})},e.keysMD5=function(d){return r(d,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var i=n.getHashes?n.getHashes().slice():["sha1","md5"];i.push("passthrough");var s=["buffer","hex","binary","base64"];function o(d,f){f=f||{};var h={};if(h.algorithm=f.algorithm||"sha1",h.encoding=f.encoding||"hex",h.excludeValues=!!f.excludeValues,h.algorithm=h.algorithm.toLowerCase(),h.encoding=h.encoding.toLowerCase(),h.ignoreUnknown=f.ignoreUnknown===!0,h.respectType=f.respectType!==!1,h.respectFunctionNames=f.respectFunctionNames!==!1,h.respectFunctionProperties=f.respectFunctionProperties!==!1,h.unorderedArrays=f.unorderedArrays===!0,h.unorderedSets=f.unorderedSets!==!1,h.unorderedObjects=f.unorderedObjects!==!1,h.replacer=f.replacer||void 0,h.excludeKeys=f.excludeKeys||void 0,typeof d>"u")throw new Error("Object argument required.");for(var p=0;p<i.length;++p)i[p].toLowerCase()===h.algorithm.toLowerCase()&&(h.algorithm=i[p]);if(i.indexOf(h.algorithm)===-1)throw new Error('Algorithm "'+h.algorithm+'" not supported. supported values: '+i.join(", "));if(s.indexOf(h.encoding)===-1&&h.algorithm!=="passthrough")throw new Error('Encoding "'+h.encoding+'" not supported. supported values: '+s.join(", "));return h}function a(d){if(typeof d!="function")return!1;var f=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return f.exec(Function.prototype.toString.call(d))!=null}function c(d,f){var h;f.algorithm!=="passthrough"?h=n.createHash(f.algorithm):h=new l,typeof h.write>"u"&&(h.write=h.update,h.end=h.update);var p=u(f,h);if(p.dispatch(d),h.update||h.end(""),h.digest)return h.digest(f.encoding==="buffer"?void 0:f.encoding);var m=h.read();return f.encoding==="buffer"?m:m.toString(f.encoding)}e.writeToStream=function(d,f,h){return typeof h>"u"&&(h=f,f={}),f=o(d,f),u(f,h).dispatch(d)};function u(d,f,h){h=h||[];var p=function(m){return f.update?f.update(m,"utf8"):f.write(m,"utf8")};return{dispatch:function(m){d.replacer&&(m=d.replacer(m));var y=typeof m;return m===null&&(y="null"),this["_"+y](m)},_object:function(m){var y=/\[object (.*)\]/i,g=Object.prototype.toString.call(m),w=y.exec(g);w?w=w[1]:w="unknown:["+g+"]",w=w.toLowerCase();var E=null;if((E=h.indexOf(m))>=0)return this.dispatch("[CIRCULAR:"+E+"]");if(h.push(m),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(m))return p("buffer:"),p(m);if(w!=="object"&&w!=="function"&&w!=="asyncfunction")if(this["_"+w])this["_"+w](m);else{if(d.ignoreUnknown)return p("["+w+"]");throw new Error('Unknown object type "'+w+'"')}else{var k=Object.keys(m);d.unorderedObjects&&(k=k.sort()),d.respectType!==!1&&!a(m)&&k.splice(0,0,"prototype","__proto__","constructor"),d.excludeKeys&&(k=k.filter(function(I){return!d.excludeKeys(I)})),p("object:"+k.length+":");var A=this;return k.forEach(function(I){A.dispatch(I),p(":"),d.excludeValues||A.dispatch(m[I]),p(",")})}},_array:function(m,y){y=typeof y<"u"?y:d.unorderedArrays!==!1;var g=this;if(p("array:"+m.length+":"),!y||m.length<=1)return m.forEach(function(k){return g.dispatch(k)});var w=[],E=m.map(function(k){var A=new l,I=h.slice(),x=u(d,A,I);return x.dispatch(k),w=w.concat(I.slice(h.length)),A.read().toString()});return h=h.concat(w),E.sort(),this._array(E,!1)},_date:function(m){return p("date:"+m.toJSON())},_symbol:function(m){return p("symbol:"+m.toString())},_error:function(m){return p("error:"+m.toString())},_boolean:function(m){return p("bool:"+m.toString())},_string:function(m){p("string:"+m.length+":"),p(m.toString())},_function:function(m){p("fn:"),a(m)?this.dispatch("[native]"):this.dispatch(m.toString()),d.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(m.name)),d.respectFunctionProperties&&this._object(m)},_number:function(m){return p("number:"+m.toString())},_xml:function(m){return p("xml:"+m.toString())},_null:function(){return p("Null")},_undefined:function(){return p("Undefined")},_regexp:function(m){return p("regex:"+m.toString())},_uint8array:function(m){return p("uint8array:"),this.dispatch(Array.prototype.slice.call(m))},_uint8clampedarray:function(m){return p("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(m))},_int8array:function(m){return p("int8array:"),this.dispatch(Array.prototype.slice.call(m))},_uint16array:function(m){return p("uint16array:"),this.dispatch(Array.prototype.slice.call(m))},_int16array:function(m){return p("int16array:"),this.dispatch(Array.prototype.slice.call(m))},_uint32array:function(m){return p("uint32array:"),this.dispatch(Array.prototype.slice.call(m))},_int32array:function(m){return p("int32array:"),this.dispatch(Array.prototype.slice.call(m))},_float32array:function(m){return p("float32array:"),this.dispatch(Array.prototype.slice.call(m))},_float64array:function(m){return p("float64array:"),this.dispatch(Array.prototype.slice.call(m))},_arraybuffer:function(m){return p("arraybuffer:"),this.dispatch(new Uint8Array(m))},_url:function(m){return p("url:"+m.toString())},_map:function(m){p("map:");var y=Array.from(m);return this._array(y,d.unorderedSets!==!1)},_set:function(m){p("set:");var y=Array.from(m);return this._array(y,d.unorderedSets!==!1)},_file:function(m){return p("file:"),this.dispatch([m.name,m.size,m.type,m.lastModfied])},_blob:function(){if(d.ignoreUnknown)return p("[blob]");throw Error(`Hashing Blob objects is currently not supported
1722
+ (see https://github.com/puleos/object-hash/issues/26)
1723
+ Use "options.replacer" or "options.ignoreUnknown"
1724
+ `)},_domwindow:function(){return p("domwindow")},_bigint:function(m){return p("bigint:"+m.toString())},_process:function(){return p("process")},_timer:function(){return p("timer")},_pipe:function(){return p("pipe")},_tcp:function(){return p("tcp")},_udp:function(){return p("udp")},_tty:function(){return p("tty")},_statwatcher:function(){return p("statwatcher")},_securecontext:function(){return p("securecontext")},_connection:function(){return p("connection")},_zlib:function(){return p("zlib")},_context:function(){return p("context")},_nodescript:function(){return p("nodescript")},_httpparser:function(){return p("httpparser")},_dataview:function(){return p("dataview")},_signal:function(){return p("signal")},_fsevent:function(){return p("fsevent")},_tlswrap:function(){return p("tlswrap")}}}function l(){return{buf:"",write:function(d){this.buf+=d},end:function(d){this.buf+=d},read:function(){return this.buf}}}}(Rh,Rh.exports)),Rh.exports}var yV=gV();function vV(t,e){return t.rules.reduce((n,r)=>{if(bE(r)){const i=e.predicates[r.predicateId];return at(i)?(Je.warn(`Global predicate not found: ${r.predicateId}`),n):n.concat(i)}if(EE(r)){const i=e.styles[r.styleId];return at(i)?(Je.warn(`Global style not found: ${r.styleId}`),n):n.concat(i)}return n.push(r),n},[])}function wV(t,e){return t.rules.reduce((n,r)=>{if(bE(r)){const i=e.dynamicPredicates[r.predicateId];return at(i)?(Je.warn(`Global predicate not found: ${r.predicateId}`),n):n.concat(i)}if(EE(r)){const i=e.styles[r.styleId];return at(i)?(Je.warn(`Global style not found: ${r.styleId}`),n):n.concat(i)}return n.push(r),n},[])}function sA(t){const e={id:t.id,__:t.__??"element",autoLayout:t.autoLayout,nodes:Ye(t.nodes,Et(ov(["id","title","description","technology","shape","icon","children"])),vi(({id:n,icon:r,...i})=>[n,{...i,icon:ae(r)?"Y":"N"}])),edges:Ye(t.edges,Et(ov(["source","target","label","description","technology","dir","head","tail","line"])),vi(({source:n,target:r,...i})=>[`${n}:${r}`,i]))};return t.hash=yV(e,{ignoreUnknown:!0,respectType:!1}),t}function $n(t){if(ye.isElementWhere(t)){const e=$n(t.where.expr),n=Ds(t.where.condition);return r=>e(r)&&n(r)}if(ye.isWildcard(t))return()=>!0;if(ye.isElementKindExpr(t))return t.isEqual?e=>e.kind===t.elementKind:e=>e.kind!==t.elementKind;if(ye.isElementTagExpr(t))return t.isEqual?({tags:e})=>!!e&&e.includes(t.elementTag):({tags:e})=>at(e)||!e.includes(t.elementTag);if(ye.isExpandedElementExpr(t))return e=>e.id===t.expanded||kt(e.id)===t.expanded;if(ye.isElementRef(t)){const{element:e,isDescedants:n}=t;return n?r=>r.id.startsWith(e+"."):r=>r.id===e}if(ye.isCustomElement(t))return $n(t.custom.expr);Ie(t)}function Aw(t){return e=>Cm(e)?e.groupRules.flatMap(Aw(t)):wE(e)?"include"in e?e.include.filter(t):[]:[]}function oA(t,e){const n=t.flatMap(Aw(ye.isCustomElement));if(n.length===0)return e;const r=[...e];for(const{custom:{expr:i,...s}}of n){const{border:o,opacity:a,...c}=xk(s,at),u=!Ki(c),l=$n(i);r.forEach((d,f)=>{if(bd.isNodesGroup(d)||!l(d))return;u&&(d={...d,isCustomized:!0,...c});let h;o!==void 0&&(h={border:o}),a!==void 0&&(h={...h,opacity:a}),h&&(d={...d,isCustomized:!0,style:{...d.style,...h}}),r[f]=d})}return r}function aA(t){switch(!0){case ye.isRelationWhere(t):const e=aA(t.where.expr),n=Ds(t.where.condition);return r=>e(r)&&n(r);case ye.isRelation(t):{const r=$n(t.source),i=$n(t.target);return s=>r(s.source)&&i(s.target)||!!t.isBidirectional&&r(s.target)&&i(s.source)}case ye.isInOut(t):{const r=$n(t.inout);return i=>r(i.source)||r(i.target)}case ye.isIncoming(t):{const r=$n(t.incoming);return i=>r(i.target)}case ye.isOutgoing(t):{const r=$n(t.outgoing);return i=>r(i.source)}default:Ie(t)}}function bV(t,e,n){const r=t.flatMap(Aw(ye.isCustomRelationExpr)),i=Array.from(n);if(r.length===0||i.length===0)return i;for(const{customRelation:{relation:s,title:o,...a}}of r){const c=xk(a,at),u=aA(s);i.forEach((l,d)=>{const f=e.find(p=>p.id===l.source),h=e.find(p=>p.id===l.target);!f||!h||u({source:f,target:h,...ov(l,["kind","tags"])})&&(i[d]={...l,...c,label:o??l.label,isCustomized:!0})})}return i}function cA(t,e){const n=t.filter(cO);if(n.length===0)return e;for(const r of n){const i=[];for(const s of r.targets)i.push($n(s));Ye(e,nt(uU(bd.isNodesGroup)),nt(lv(i)),mU(s=>{s.shape=r.style.shape??s.shape,s.color=r.style.color??s.color,Ft(r.style.icon)&&(s.icon=r.style.icon),Ft(r.notation)&&(s.notation=r.notation);let o;Ft(r.style.border)&&(o={border:r.style.border}),Ft(r.style.opacity)&&(o={...o,opacity:r.style.opacity}),o&&(s.style={...s.style,...o})}))}return e}function EV(t,e){let n;for(;t.parent&&(n=e.get(t.parent));){const r=n.depth??1;if(n.depth=Math.max(r,(t.depth??0)+1),n.depth===r)break;t=n}}function uA(t,e){const n=new Map,r=new Map;return e?.forEach(({id:i,parent:s,viewRule:o,explicits:a})=>{s&&Qe(n.get(s),`Parent group node ${s} not found`).children.push(i),n.set(i,{id:i,parent:s,kind:To.Group,title:o.title??"",color:o.color??"muted",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,description:null,technology:null,tags:null,links:null,style:{border:o.border??"dashed",opacity:o.opacity??0}});for(const c of a)r.set(c.id,i)}),Array.from(t).sort(za).reduce((i,{id:s,color:o,shape:a,style:c,kind:u,title:l,...d})=>{let f=kt(s),h=0,p;for(;f&&(p=i.get(f),!p);)f=kt(f);!p&&r.has(s)&&(f=r.get(s),p=i.get(f)),p&&(p.children.length==0&&(p.depth=1,EV(p,i)),p.children.push(s),h=p.level+1);const m={id:s,parent:f,kind:u,title:l,color:o??Oa,shape:a??Tm,children:[],inEdges:[],outEdges:[],level:h,...d,style:{...c}};return i.set(s,m),i},n)}function lA(t){return Ye(t,lh(yi("notation")),Hi(av(lh(yi("shape")),Hi(av(lh(yi("color")),Hi(av(Et(yi("kind")),zr())),oa(),Et(([e,n])=>({kinds:n,color:e})))),oa(),wi(([e,n])=>n.map(({color:r,kinds:i})=>({shape:e,color:r,kinds:i}))))),oa(),wi(([e,n])=>n.map(({shape:r,color:i,kinds:s})=>({title:e,shape:r,color:i,kinds:s}))),K9(yi("shape"),yi("title"),[e=>e.kinds.length,"desc"]))}const dA=Th.graphlib.Graph,fA=Th.graphlib.alg.postorder,DV=Th.graphlib.alg.findCycles,TV=Th.graphlib.alg.isAcyclic;function hA(t){t.forEach(e=>{e.children.length>0&&(e.children=t.flatMap(n=>n.parent===e.id?n.id:[]))})}function RV({nodes:t,edges:e}){if(t.length<2)return t;if(e.length===0)return Ye(t,ra(za),W9(hA));const n=new dA({compound:!1,directed:!0,multigraph:!1}),r=a=>Qe(t.find(c=>c.id===a),"Edge not found"),i=a=>Qe(e.find(c=>c.id===a),"Edge not found");for(const a of[...e].sort(Ga))n.setEdge(a.source,a.target);for(const a of t)n.setNode(a.id,a.id),a.children.length>0&&a.inEdges.forEach(c=>{const u=i(c);u.target!==a.id&&r(u.source).children.length===0&&n.setEdge(u.source,a.id)}),a.parent&&n.setEdge(a.parent,a.id);let s=n.sources();s.length===0&&(s=Ye(t,nt(a=>a.inEdges.length===0||a.parent===null),ra(za),Et(a=>a.id)));const o=fA(n,s).reverse().map(r);if(o.length<t.length){const a=Ok(t,o).sort(za);o.push(...a)}return we(o.length===t.length,"Not all nodes were processed by graphlib"),hA(o),o}function SV(t){const e=Ye(t,wi(n=>n.tags??[]),zr(),ra(Td));return Ed(e,1)?e:null}const vr=()=>!0,xw=t=>t,Iw=t=>t===vr?xw:nt(t),kV=t=>t===vr?xw:e=>t(e)?e:null;function $V(t,e=vr){const n=[...this.resolvedElements],r=Iw(e)(t.isDescedants===!0?this.graph.childrenOrElement(t.element):[this.graph.element(t.element)]);if(r.length!==0&&(this.addElement(...r),r.length>1&&this.addEdges(this.graph.edgesWithin(r)),n.length>0&&r.length>0))for(const i of r)this.addEdges(this.graph.anyEdgesBetween(i,n))}function CV(t,e=vr){const n=[...this.resolvedElements].filter(Fk([$n(t),e]));this.excludeElement(...n)}function _V(t,e=vr){const n=this.root;if(!n){const u=this.graph.rootElements.filter(e);if(u.length<=0)return;const l=[...this.resolvedElements];if(this.addElement(...u),this.addEdges(this.graph.edgesWithin(u)),l.length>0)for(const d of u)this.addEdges(this.graph.anyEdgesBetween(d,l));return}const r=[...this.resolvedElements],i=kV(e)(this.graph.element(n));i&&this.addElement(i);const s=Iw(e),o=s(this.graph.children(n)),a=o.length>0;a?(this.addElement(...o),this.addEdges(this.graph.edgesWithin(o))):i&&o.push(i);const c=[...r,...s([...this.graph.siblings(n),...this.graph.ancestors(n).flatMap(u=>this.graph.siblings(u.id))])];for(const u of o)this.addEdges(this.graph.anyEdgesBetween(u,c)).forEach(l=>{this.addImplicit(l.source,l.target)});if(!a&&i&&this.graph.anyEdgesBetween(i,this.graph.siblings(n)).length===0){const u=kt(n),l=u&&this.graph.element(u);l&&e(l)&&this.addElement(l)}}function AV(t,e=vr){if(e!==vr){const r=[...this.resolvedElements].filter(e);this.excludeElement(...r);return}const n=this.root;n?(this.excludeElement(this.graph.element(n),...this.graph.children(n)),this.excludeRelation(...this.graph.connectedRelations(n))):this.reset()}function xV(t,e=vr){const n=Iw(e),r=[...this.resolvedElements],i=this.graph.element(t.expanded);if(e(i)){this.addElement(i);const o=this.graph.anyEdgesBetween(i,r);this.addEdges(o)}const s=[];for(const o of n(this.graph.children(t.expanded))){this.addImplicit(o);const a=this.graph.anyEdgesBetween(o,r);a.length>0&&(this.addEdges(a),s.push(o))}s.length>1&&this.addEdges(this.graph.edgesWithin(s))}function IV(t,e=vr){const n=[...this.resolvedElements].filter(Fk([$n(t),e]));this.excludeElement(...n)}const pA=t=>t.isEqual?ye.isElementKindExpr(t)?e=>e.kind===t.elementKind:({tags:e})=>!!e&&e.includes(t.elementTag):ye.isElementKindExpr(t)?e=>e.kind!==t.elementKind:({tags:e})=>at(e)||e.length===0||!e.includes(t.elementTag);function PV(t,e=vr){const n=this.graph.elements.filter(pA(t)).filter(e);if(n.length>0){const r=[...this.resolvedElements];this.addElement(...n),this.addEdges(this.graph.edgesWithin(n));for(const i of n)this.addEdges(this.graph.anyEdgesBetween(i,r))}}function NV(t,e=vr){const n=[...this.resolvedElements].filter(pA(t)).filter(e);n.length>0&&this.excludeElement(...n)}function Ou(t){return ye.isElementRef(t)?this.graph.ascendingSiblings(t.element):this.root?this.graph.ascendingSiblings(this.root):this.graph.rootElements}function Sh(t){return ye.isWildcard(t)?this.root?[...this.graph.children(this.root),this.graph.element(this.root)]:this.graph.rootElements:ye.isElementKindExpr(t)?this.graph.elements.filter(e=>t.isEqual?e.kind===t.elementKind:e.kind!==t.elementKind):ye.isElementTagExpr(t)?this.graph.elements.filter(e=>{const n=e.tags;return t.isEqual?!!n&&n.includes(t.elementTag):at(n)||n.length===0||!n.includes(t.elementTag)}):ye.isExpandedElementExpr(t)?[this.graph.element(t.expanded)]:ye.isElementRef(t)?this.root===t.element&&t.isDescedants!==!0?[...this.graph.children(this.root),this.graph.element(this.root)]:t.isDescedants?this.graph.childrenOrElement(t.element):[this.graph.element(t.element)]:Ie(t)}function mA(t){if(ye.isWildcard(t)){if(!this.root)return[];const r=this.graph.ascendingSiblings(this.root),i=[...this.graph.children(this.root),this.graph.element(this.root)];return this.graph.edgesBetween(r,i)}const e=Sh.call(this,t);if(e.length===0)return[];let n=[...this.resolvedElements];if(ye.isElementRef(t)||ye.isExpandedElementExpr(t)){const r=t.element??t.expanded,i=t.isDescedants??!1;n=n.filter(s=>!$r(r,s.id)||i&&kt(s.id)===r)}return n.length===0&&(n=Ou.call(this,t)),this.graph.edgesBetween(n,e)}const Fu=(t,e)=>e?Ye(t,Et(n=>({...n,relations:n.relations.filter(e)})),nt(n=>n.relations.length>0)):t,Pw=(t,e)=>Ye(t,wi(n=>n.relations),e?nt(e):xw,zr());function OV(t,e){const n=Fu(mA.call(this,t.incoming),e);n.length!==0&&this.addEdges(n).forEach(r=>{this.addImplicit(r.target)})}function FV(t,e){let n=Pw(mA.call(this,t.incoming),e);this.excludeRelation(...n)}function gA(t){if(ye.isWildcard(t)){if(!this.root)return[];const r=this.graph.ascendingSiblings(this.root),i=[...this.graph.children(this.root),this.graph.element(this.root)];return this.graph.edgesBetween(i,r)}const e=Sh.call(this,t);if(e.length===0)return[];let n=[...this.resolvedElements];if(ye.isElementRef(t)||ye.isExpandedElementExpr(t)){const r=t.element??t.expanded,i=t.isDescedants??!1;n=n.filter(s=>!$r(r,s.id)||i&&kt(s.id)===r)}return n.length===0&&(n=Ou.call(this,t)),this.graph.edgesBetween(e,n)}function LV(t,e){const n=Fu(gA.call(this,t.outgoing),e);n.length!==0&&this.addEdges(n).forEach(r=>{this.addImplicit(r.source)})}function MV(t,e){const n=Pw(gA.call(this,t.outgoing),e);this.excludeRelation(...n)}var kh;(t=>{t.Empty={implicits:[],edges:[]}})(kh||(kh={}));function yA({inout:t},e){if(ye.isWildcard(t)){if(!this.root)return kh.Empty;const i=this.graph.ascendingSiblings(this.root);return{edges:Fu(this.graph.anyEdgesBetween(this.graph.element(this.root),i),e),implicits:[]}}const n=Sh.call(this,t);if(n.length===0)return kh.Empty;let r=[...this.resolvedElements];if(ye.isElementRef(t)||ye.isExpandedElementExpr(t)){const i=t.element??t.expanded,s=t.isDescedants??!1;r=r.filter(o=>!$r(i,o.id)||s&&kt(o.id)===i)}return r.length===0&&(r=Ou.call(this,t)),n.reduce((i,s)=>{const o=Fu(this.graph.anyEdgesBetween(s,r),e);return o.length>0&&(i.implicits.push(s),i.edges.push(...o)),i},{implicits:[],edges:[]})}function zV(t,e){const{implicits:n,edges:r}=yA.call(this,t,e);this.addEdges(r),this.addImplicit(...n)}function BV(t,e){const{edges:n}=yA.call(this,t,e);this.excludeRelation(...n.flatMap(r=>r.relations))}function $h(t){return ye.isElementRef(t)&&this.root===t.element&&t.isDescedants!==!0?[...this.graph.children(t.element),this.graph.element(t.element)]:ye.isExpandedElementExpr(t)&&this.root===t.expanded?[...this.graph.children(t.expanded),this.graph.element(t.expanded)]:Sh.call(this,t)}function qV(t,e){let n,r;ye.isWildcard(t.source)&&!ye.isWildcard(t.target)?(n=Ou.call(this,t.target),r=$h.call(this,t.target)):!ye.isWildcard(t.source)&&ye.isWildcard(t.target)?(n=$h.call(this,t.source),r=Ou.call(this,t.source)):(n=$h.call(this,t.source),r=$h.call(this,t.target));const i=this.graph.edgesBetween(n,r);t.isBidirectional===!0&&i.push(...this.graph.edgesBetween(r,n)),this.addEdges(Fu(i,e)).forEach(s=>{this.activeGroup.addImplicit(s.source,s.target)})}function jV(t,e){const n=$n(t.source),r=$n(t.target),i=a=>{let c=n(a.source)&&r(a.target);return!c&&t.isBidirectional&&(c=n(a.target)&&r(a.source)),c},s=this.edges.filter(i),o=Pw(s,e);this.excludeRelation(...o)}function UV(t,e){return Ga({source:t.source.id,target:t.target.id},{source:e.source.id,target:e.target.id})}let Nw=class B0{constructor(e,n,r=null){this.id=e,this.viewRule=n,this.parent=r}static kind=To.Group;static root(){return new B0("@root",{title:null,groupRules:[]})}static is(e){return e.kind===B0.kind}explicits=new Set;implicits=new Set;addElement(...e){for(const n of e)this.explicits.add(n),this.implicits.add(n)}addImplicit(...e){for(const n of e)this.implicits.add(n)}excludeElement(...e){for(const n of e)this.explicits.delete(n),this.implicits.delete(n)}isEmpty(){return this.explicits.size===0&&this.implicits.size===0}},GV=class f2{constructor(e,n){this.view=e,this.graph=n}explicits=new Set;implicits=new Set;ctxEdges=[];__rootGroup=Nw.root();groups=[];activeGroupStack=[];get activeGroup(){return this.activeGroupStack[0]??this.__rootGroup}get includedElements(){return new Set([...this.explicits,...this.ctxEdges.flatMap(e=>[e.source,e.target])])}get resolvedElements(){return new Set([...this.explicits,...this.implicits,...this.ctxEdges.flatMap(e=>[e.source,e.target])])}get edges(){return this.ctxEdges}get root(){return _m(this.view)?this.view.viewOf:null}static elementView(e,n){return new f2(e,n).compute()}compute(){this.reset();const{docUri:e,rules:n,...r}=this.view,i=vV(this.view,this.graph.globals),s=i.filter(lv([wE,Cm]));this.root&&s.length==0&&this.addElement(this.graph.element(this.root)),this.processPredicates(s),this.removeRedundantImplicitEdges(),this.groups.length>0&&this.cleanGroupElements();const o=[...this.includedElements],a=uA(o,this.groups),c=this.computeEdges(),u=new Map(c.map(m=>[m.id,m]));this.linkNodesAndEdges(a,c);let l=o.map(m=>Qe(a.get(m.id),`Node ${m.id} not found in nodesMap`));this.groups.length>0&&(l=CU(this.groups.map(m=>Qe(a.get(m.id),`Node ${m.id} not found in nodesMap`)),l));const d=oA(i,cA(i,RV({nodes:l,edges:c}))),f=new Set([...d.flatMap(m=>m.children.length===0?m.outEdges.flatMap(y=>u.get(y)??[]):[]),...c]),h=this.view.rules.findLast(DE),p=lA(d);return sA({...r,autoLayout:{direction:h?.direction??"TB",...h?.nodeSep&&{nodeSep:h.nodeSep},...h?.rankSep&&{rankSep:h.rankSep}},nodes:Et(d,Ak(["notation"])),edges:bV(i,d,f),...p.length>0&&{notation:{elements:p}}})}computeEdges(){return this.ctxEdges.map(e=>{we(Br(e.relations,1),"Edge must have at least one relation");const n=ra(e.relations,Ga),r=e.source.id,i=e.target.id,s={id:`${r}:${i}`,parent:ks(r,i),source:r,target:i,label:null,relations:n.map(c=>c.id)};let o;if(o=kn(n)??Ye(n,nt(c=>c.source===r&&c.target===i),kn()),!o){const c=Ye(n,_k((u,l)=>(ae(l.title)&&!u.title.includes(l.title)&&u.title.push(l.title),ae(l.description)&&!u.description.includes(l.description)&&u.description.push(l.description),ae(l.technology)&&!u.technology.includes(l.technology)&&u.technology.push(l.technology),ae(l.kind)&&!u.kind.includes(l.kind)&&u.kind.push(l.kind),ae(l.color)&&!u.color.includes(l.color)&&u.color.push(l.color),ae(l.line)&&!u.line.includes(l.line)&&u.line.push(l.line),ae(l.head)&&!u.head.includes(l.head)&&u.head.push(l.head),ae(l.tail)&&!u.tail.includes(l.tail)&&u.tail.push(l.tail),ae(l.navigateTo)&&!u.navigateTo.includes(l.navigateTo)&&u.navigateTo.push(l.navigateTo),u),{title:[],description:[],technology:[],kind:[],head:[],tail:[],color:[],line:[],navigateTo:[]}));o={title:kn(c.title)??"[...]",description:kn(c.description),technology:kn(c.technology),kind:kn(c.kind),head:kn(c.head),tail:kn(c.tail),color:kn(c.color),line:kn(c.line),navigateTo:kn(c.navigateTo)}}const a=SV(n);return Object.assign(s,this.getEdgeLabel(o),ae(o.description)&&{description:o.description},ae(o.technology)&&{technology:o.technology},ae(o.kind)&&{kind:o.kind},o.color&&{color:o.color},o.line&&{line:o.line},o.head&&{head:o.head},o.tail&&{tail:o.tail},o.navigateTo&&{navigateTo:o.navigateTo},a&&{tags:a})})}linkNodesAndEdges(e,n){for(const r of n){const i=e.get(r.source),s=e.get(r.target);we(i,`Source node ${r.source} not found`),we(s,`Target node ${r.target} not found`);const o=this.ancestorsOf(i,e),a=this.ancestorsOf(s,e),c=ia(QL(ch(o),ch(a)));r.parent=c?.id??null,i.outEdges.push(r.id),s.inEdges.push(r.id);for(const u of o){if(u===c)break;u.outEdges.push(r.id)}for(const u of a){if(u===c)break;u.inEdges.push(r.id)}}}addEdges(e){const n=[];for(const r of e){if(!Br(r.relations,1))continue;const i=this.ctxEdges.find(s=>s.source.id===r.source.id&&s.target.id===r.target.id);if(i){i.relations=zr([...i.relations,...r.relations]),n.push(i);continue}n.push(r),this.ctxEdges.push(r)}return n}addElement(...e){for(const n of e)this.explicits.has(n)?this.activeGroup!==this.__rootGroup&&(this.groups.forEach(r=>{r.implicits.delete(n)}),this.activeGroup.addImplicit(n)):this.activeGroup.addElement(n),this.explicits.add(n),this.implicits.add(n)}addImplicit(...e){for(const n of e)this.implicits.add(n),this.activeGroup!==this.__rootGroup&&this.groups.forEach(r=>{r.implicits.delete(n)});this.activeGroup.addImplicit(...e)}excludeElement(...e){for(const n of e)this.ctxEdges=this.ctxEdges.filter(r=>r.source.id!==n.id&&r.target.id!==n.id),this.explicits.delete(n),this.implicits.delete(n);this.__rootGroup.excludeElement(...e),this.groups.forEach(n=>{n.excludeElement(...e)})}excludeRelation(...e){if(e.length===0)return;const n=new Set,r=Ye(this.ctxEdges,Et(s=>{const o=s.relations.filter(a=>!e.includes(a));return o.length===0?(n.add(s.source),n.add(s.target),null):o.length!==s.relations.length?{...s,relations:o}:s}),nt(cU));this.ctxEdges=r;const i=this.includedElements;if(i.size===0){this.implicits.clear(),this.__rootGroup.implicits.clear(),this.groups.forEach(s=>s.implicits.clear());return}for(const s of n)i.has(s)||(this.implicits.delete(s),this.__rootGroup.implicits.delete(s),this.groups.forEach(o=>o.implicits.delete(s)))}reset(){this.explicits.clear(),this.implicits.clear(),this.ctxEdges=[],this.__rootGroup=Nw.root(),this.groups=[],this.activeGroupStack=[]}removeRedundantImplicitEdges(){const e=new Set,n=s=>s.reduce((o,a)=>(e.has(a)||(o.push(a),e.add(a)),o),[]),r=s=>{const{source:o,target:a}=s;return c=>{const u=o.id===c.source.id,l=a.id===c.target.id;if(u&&l)return!0;const d=$r(o.id,c.source.id),f=$r(a.id,c.target.id);return d&&f||u&&f||l&&d}},i=[...this.ctxEdges].sort(UV).reverse();this.ctxEdges=i.reduce((s,o)=>{const a=n(o.relations);return a.length===0||s.length>0&&s.some(r(o))||s.push({source:o.source,target:o.target,relations:a}),s},[])}cleanGroupElements(){const e=new Set(Ok([...this.includedElements],[...this.__rootGroup.explicits]));for(const n of this.groups){const r=[...n.explicits];n.explicits.clear();for(const i of r)e.delete(i)&&n.explicits.add(i)}for(const n of this.groups){for(const r of n.implicits)e.delete(r)&&n.explicits.add(r);n.implicits.clear()}}processPredicates(e){for(const n of e){if(Cm(n)){const s=sa(this.activeGroupStack),o=`@gr${this.groups.length+1}`,a=new Nw(o,n,s?.id??null);this.groups.push(a),this.activeGroupStack.unshift(a),this.processPredicates(n.groupRules),this.activeGroupStack.shift();continue}const r="include"in n,i=n.include??n.exclude;for(const s of i){if(ye.isElementPredicateExpr(s)){this.processElementPredicate(s,r);continue}if(ye.isRelationPredicateExpr(s)){this.processRelationPredicate(s,r);continue}Ie(s)}}return this}processElementPredicate(e,n,r){if(ye.isCustomElement(e))return n&&this.processElementPredicate(e.custom.expr,n),this;if(ye.isElementWhere(e)){const i=Ds(e.where.condition);return this.processElementPredicate(e.where.expr,n,i),this}if(ye.isExpandedElementExpr(e))return n?xV.call(this,e,r):IV.call(this,e,r),this;if(ye.isElementKindExpr(e)||ye.isElementTagExpr(e))return n?PV.call(this,e,r):NV.call(this,e,r),this;if(ye.isElementRef(e))return n?$V.call(this,e,r):CV.call(this,e,r),this;if(ye.isWildcard(e))return n?_V.call(this,e,r):AV.call(this,e,r),this;Ie(e)}processRelationPredicate(e,n,r){if(ye.isCustomRelationExpr(e))return n&&this.processRelationPredicate(e.customRelation.relation,n),this;if(ye.isRelationWhere(e)){const i=Ds(e.where.condition);return this.processRelationPredicate(e.where.expr,n,i),this}if(ye.isIncoming(e))return n?OV.call(this,e,r):FV.call(this,e,r),this;if(ye.isOutgoing(e))return n?LV.call(this,e,r):MV.call(this,e,r),this;if(ye.isInOut(e))return n?zV.call(this,e,r):BV.call(this,e,r),this;if(ye.isRelation(e))return n?qV.call(this,e,r):jV.call(this,e,r),this;Ie(e)}ancestorsOf(e,n){const r=[];let i=e.parent;for(;i;){const s=n.get(i);if(!s)break;r.push(s),i=s.parent}return r}getEdgeLabel(e){const n=[];return ae(e.title)&&n.push(e.title),ae(e.technology)&&n.push(`[${e.technology}]`),n.length>0?{label:n.join(`
1725
+ `)}:{}}};function WV(t,e){return GV.elementView(t,e)}function vA(t,e){try{return{isSuccess:!0,view:WV(t,e)}}catch(n){return{isSuccess:!1,error:n instanceof Error?n:new Error(`Unknown error: ${n}`),view:void 0}}}let HV=class h2{constructor(e,n){this.view=e,this.graph=n}explicits=new Set;steps=[];static compute(e,n){return new h2(e,n).compute()}addStep({source:e,target:n,title:r,isBackward:i,navigateTo:s,...o},a,c){const u=c?RE(c,a):RE(a),l=this.graph.element(e),d=this.graph.element(n);this.explicits.add(l),this.explicits.add(d);const{title:f,relations:h,tags:p,navigateTo:m}=this.findRelations(l,d),y=ae(s)&&s!==this.view.id?s:m;this.steps.push({id:u,...o,source:l,target:d,title:r??f,relations:h??[],isBackward:i??!1,...y?{navigateTo:y}:{},...p?{tags:p}:{}})}compute(){const{docUri:e,rules:n,steps:r,...i}=this.view;let s=1;for(const h of r){if(dO(h)){if(h.__parallel.length===0)continue;h.__parallel.length===1?this.addStep(h.__parallel[0],s):h.__parallel.forEach((p,m)=>this.addStep(p,m+1,s))}else this.addStep(h,s);s++}const o=wV(this.view,this.graph.globals);for(const h of o)if(lO(h))for(const p of h.include){const m=$n(p);this.graph.elements.filter(m).forEach(y=>this.explicits.add(y))}const a=[...this.explicits],c=uA(a),u=this.steps.map(({source:h,target:p,relations:m,title:y,isBackward:g,...w})=>{const E=Qe(c.get(h.id),`Source node ${h.id} not found`),k=Qe(c.get(p.id),`Target node ${p.id} not found`),A={parent:ks(h.id,p.id),source:h.id,target:p.id,label:y,relations:m,color:Ts,line:yE,head:Ro,...w};for(g&&(A.dir="back");A.parent&&!c.has(A.parent);)A.parent=kt(A.parent);E.outEdges.push(A.id),k.inEdges.push(A.id);for(const I of Zr(A.source)){if(I===A.parent)break;c.get(I)?.outEdges.push(A.id)}for(const I of Zr(A.target)){if(I===A.parent)break;c.get(I)?.inEdges.push(A.id)}return A}),l=oA(o,cA(o,a.map(h=>Qe(c.get(h.id))))),d=o.findLast(DE),f=lA(l);return sA({...i,autoLayout:{direction:d?.direction??"LR",...d?.nodeSep&&{nodeSep:d.nodeSep},...d?.rankSep&&{rankSep:d.rankSep}},nodes:Et(l,Ak(["notation"])),edges:u,...f.length>0&&{notation:{elements:f}}})}findRelations(e,n){const r=zr(this.graph.edgesBetween(e,n).flatMap(l=>l.relations));if(r.length===0)return{title:null,tags:null,relations:null,navigateTo:null};const i=Ye(r,wi(l=>l.tags),nt(ae),zr()),s=Br(i,1)?i:null,o=Br(r,1)?Et(r,l=>l.id):null,a=kn(r)||r.find(l=>l.source===e.id&&l.target===n.id),c=ae(a?.title)?a.title:Ye(r,Et(l=>l.title),nt(ae),zr(),kn()),u=a?.navigateTo&&a.navigateTo!==this.view.id?a.navigateTo:Ye(r,Et(l=>l.navigateTo),nt(ae),nt(l=>l!==this.view.id),zr(),kn());return{title:c??null,tags:s,relations:o,navigateTo:u??null}}};function wA(t,e){try{return{isSuccess:!0,view:HV.compute(t,e)}}catch(n){return{isSuccess:!1,error:n instanceof Error?n:new Error(`Unknown error: ${n}`),view:void 0}}}const Ow=Set,Fw=Map;function Lw(t,e){return t.size===0||e.size===0?new Set:new Set([...t].filter(n=>e.has(n)))}let bA=class{#e=new Map;#t=new Map;#n=new Map;#r=new Set;#s=new Map;#i=new Fw;#o=new Fw;#a=new Fw;#c=new Map;globals;constructor({elements:e,relations:n,globals:r}){this.globals=r??{predicates:{},dynamicPredicates:{},styles:{}};for(const i of Object.values(e))this.addElement(i);for(const i of Object.values(n))this.addRelation(i)}get rootElements(){return[...this.#r]}get elements(){return[...this.#e.values()]}element(e){const n=this.#e.get(e);return we(n,`Element ${e} not found`),n}connectedRelations(e){return[...this._incomingTo(e),...this._outgoingFrom(e),...this._internalOf(e)]}children(e){return this._childrenOf(e).slice()}childrenOrElement(e){const n=this.children(e);return n.length>0?n:[this.element(e)]}siblings(e){const n=Vi(e)?e:e.id,r=kt(n);return(r?this._childrenOf(r):this.rootElements).filter(i=>i.id!==n)}ancestors(e){let n=Vi(e)?e:e.id;const r=[];let i;for(;i=this.#t.get(n);)r.push(i),n=i.id;return r}ascendingSiblings(e){const n=Vi(e)?e:e.id;let r=this.#c.get(n);return r||(r=[...this.siblings(n),...this.ancestors(n).flatMap(i=>this.siblings(i.id))],this.#c.set(n,r)),r.slice()}anyEdgesBetween(e,n){if(n.length===0)return[];const r=Vi(e)?this.element(e):e,i=this._incomingTo(r.id),s=this._outgoingFrom(r.id);if(i.size===0&&s.size===0)return[];const o=[];for(const a of n){const c=Vi(a)?this.element(a):a;if(!Ma(r,c)){if(s.size>0){const u=Lw(this._incomingTo(c.id),s);u.size>0&&o.push({source:r,target:c,relations:[...u]})}if(i.size>0){const u=Lw(this._outgoingFrom(c.id),i);u.size>0&&o.push({source:c,target:r,relations:[...u]})}}}return o}edgesWithin(e){return e.length<2?[]:e.reduce((n,r,i,s)=>(i===s.length-1||n.push(...this.anyEdgesBetween(r,s.slice(i+1))),n),[])}edgesBetween(e,n){const r=Ik(e)?e:[e],i=Ik(n)?n:[n];if(r.length===0||i.length===0)return[];const s=[];for(const o of r){const a=Vi(o)?this.element(o):o,c=this._outgoingFrom(a.id);if(c.size!==0)for(const u of i){const l=Vi(u)?this.element(u):u;if(Ma(a,l))continue;const d=this._incomingTo(l.id),f=Lw(c,d);f.size>0&&s.push({source:a,target:l,relations:[...f]})}}return s}addElement(e){if(this.#e.has(e.id))throw new Error(`Element ${e.id} already exists`);this.#e.set(e.id,e);const n=kt(e.id);n?(this.#t.set(e.id,this.element(n)),this._childrenOf(n).push(e)):this.#r.add(e)}addRelation(e){if(this.#s.has(e.id))throw new Error(`Relation ${e.id} already exists`);this.#s.set(e.id,e),this._incomingTo(e.target).add(e),this._outgoingFrom(e.source).add(e);const n=ks(e.source,e.target);if(n)for(const r of[n,...Zr(n)])this._internalOf(r).add(e);for(const r of Zr(e.source)){if(r===n)break;this._outgoingFrom(r).add(e)}for(const r of Zr(e.target)){if(r===n)break;this._incomingTo(r).add(e)}}_childrenOf(e){let n=this.#n.get(e);return n||(n=[],this.#n.set(e,n)),n}_incomingTo(e){let n=this.#i.get(e);return n||(n=new Ow,this.#i.set(e,n)),n}_outgoingFrom(e){let n=this.#o.get(e);return n||(n=new Ow,this.#o.set(e,n)),n}_internalOf(e){let n=this.#a.get(e);return n||(n=new Ow,this.#a.set(e,n)),n}};const VV=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,KV=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,YV=/^([/\\]\s*){2,}[^/\\]/;function EA(t){return["./","../"].some(e=>t.startsWith(e))}function Mw(t,e={}){return typeof e=="boolean"&&(e={acceptRelative:e}),e.strict?VV.test(t):KV.test(t)||(e.acceptRelative?YV.test(t):!1)}function XV(t="",e){return t.endsWith("/")}function JV(t="",e){return(XV(t)?t.slice(0,-1):t)||"/"}function ZV(t="",e){return t.endsWith("/")?t:t+"/"}function Ch(t=""){return t.startsWith("/")}function DA(t=""){return(Ch(t)?t.slice(1):t)||"/"}function QV(t=""){return Ch(t)?t:"/"+t}function eK(t,e){if(tK(e))return t;const n=JV(e);if(!t.startsWith(n))return t;const r=t.slice(n.length);return r[0]==="/"?r:"/"+r}function tK(t){return!t||t==="/"}function _h(t=""){const[e="",n="",r=""]=(t.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:e,search:n,hash:r}}const Ah="DynamicViewRule";function zw(t){return Q.isInstance(t,Ah)}const xh="ElementExpression";function Bw(t){return Q.isInstance(t,xh)}const Ih="ElementPredicate";function nK(t){return Q.isInstance(t,Ih)}const Ph="ElementPredicateOrWhere";function rK(t){return Q.isInstance(t,Ph)}const ro="ElementProperty";function iK(t){return Q.isInstance(t,ro)}const io="LikeC4View";function qw(t){return Q.isInstance(t,io)}const Nh="MetadataProperty";function TA(t){return Q.isInstance(t,Nh)}const RA="Predicate",Oh="RelationExpression";function jw(t){return Q.isInstance(t,Oh)}const Fh="RelationPredicate";function sK(t){return Q.isInstance(t,Fh)}const Lh="RelationPredicateOrWhere";function oK(t){return Q.isInstance(t,Lh)}const la="RelationProperty";function aK(t){return Q.isInstance(t,la)}const Mh="RelationshipStyleProperty";function cK(t){return Q.isInstance(t,Mh)}const da="StringProperty";function uK(t){return Q.isInstance(t,da)}const Lu="StyleProperty";function SA(t){return Q.isInstance(t,Lu)}const zh="ViewProperty";function lK(t){return Q.isInstance(t,zh)}const Bh="ViewRule";function dK(t){return Q.isInstance(t,Bh)}const qh="ViewRulePredicate";function jh(t){return Q.isInstance(t,qh)}const Uh="ViewRuleStyleOrGlobalRef";function kA(t){return Q.isInstance(t,Uh)}const Mu="WhereElement";function $A(t){return Q.isInstance(t,Mu)}const zu="WhereElementExpression";function fK(t){return Q.isInstance(t,zu)}const CA="WhereExpression",Gh="WhereKindEqual";function hK(t){return Q.isInstance(t,Gh)}const Bu="WhereRelation";function _A(t){return Q.isInstance(t,Bu)}const qu="WhereRelationExpression";function pK(t){return Q.isInstance(t,qu)}const Wh="WhereTagEqual";function mK(t){return Q.isInstance(t,Wh)}const ju="ArrowProperty";function Uu(t){return Q.isInstance(t,ju)}const Gu="BorderProperty";function Hh(t){return Q.isInstance(t,Gu)}const Wu="ColorProperty";function so(t){return Q.isInstance(t,Wu)}const oo="CustomColor",Vh="CustomElementProperties";function gK(t){return Q.isInstance(t,Vh)}const Kh="CustomRelationProperties";function yK(t){return Q.isInstance(t,Kh)}const Hu="DirectedRelationExpression";function Uw(t){return Q.isInstance(t,Hu)}const fa="DynamicView";function vK(t){return Q.isInstance(t,fa)}const Yh="DynamicViewBody";function AA(t){return Q.isInstance(t,Yh)}const Vu="DynamicViewGlobalPredicateRef";function wK(t){return Q.isInstance(t,Vu)}const Ku="DynamicViewIncludePredicate";function bK(t){return Q.isInstance(t,Ku)}const Xh="DynamicViewParallelSteps";function Gw(t){return Q.isInstance(t,Xh)}const Jh="DynamicViewPredicateIterator";function xA(t){return Q.isInstance(t,Jh)}const Ww="DynamicViewRef",Zh="DynamicViewStep";function Hw(t){return Q.isInstance(t,Zh)}const Gr="Element";function Wr(t){return Q.isInstance(t,Gr)}const Qh="ElementBody";function ha(t){return Q.isInstance(t,Qh)}const Yu="ElementDescedantsExpression";function Vw(t){return Q.isInstance(t,Yu)}const ep="ElementExpressionsIterator";function EK(t){return Q.isInstance(t,ep)}const Zi="ElementKind";function DK(t){return Q.isInstance(t,Zi)}const Xu="ElementKindExpression";function tp(t){return Q.isInstance(t,Xu)}const Ju="ElementPredicateWhere";function Kw(t){return Q.isInstance(t,Ju)}const Zu="ElementPredicateWith";function np(t){return Q.isInstance(t,Zu)}const Qu="ElementRef";function el(t){return Q.isInstance(t,Qu)}const tl="ElementStringProperty";function Yw(t){return Q.isInstance(t,tl)}const nl="ElementStyleProperty";function rl(t){return Q.isInstance(t,nl)}const il="ElementTagExpression";function rp(t){return Q.isInstance(t,il)}const pa="ElementView";function ip(t){return Q.isInstance(t,pa)}const sp="ElementViewBody";function Xw(t){return Q.isInstance(t,sp)}const Jw="ElementViewRef",sl="ExcludePredicate";function op(t){return Q.isInstance(t,sl)}const ol="ExpandElementExpression";function IA(t){return Q.isInstance(t,ol)}const ma="ExtendElement";function ga(t){return Q.isInstance(t,ma)}const ap="ExtendElementBody";function Zw(t){return Q.isInstance(t,ap)}const cp="FqnElementRef";function PA(t){return Q.isInstance(t,cp)}const ya="GlobalDynamicPredicateGroup";function NA(t){return Q.isInstance(t,ya)}const va="GlobalPredicateGroup";function OA(t){return Q.isInstance(t,va)}const up="Globals";function Qw(t){return Q.isInstance(t,up)}const lp="GlobalStyle";function al(t){return Q.isInstance(t,lp)}const dp="GlobalStyleGroup";function cl(t){return Q.isInstance(t,dp)}const ul="GlobalStyleId",ll="IconProperty";function Qi(t){return Q.isInstance(t,ll)}const dl="IncludePredicate";function eb(t){return Q.isInstance(t,dl)}const fl="IncomingRelationExpression";function FA(t){return Q.isInstance(t,fl)}const hl="InOutRelationExpression";function tb(t){return Q.isInstance(t,hl)}const ao="LibIcon";function TK(t){return Q.isInstance(t,ao)}const nb="LikeC4Grammar",fp="LikeC4Lib";function LA(t){return Q.isInstance(t,fp)}const pl="LineProperty";function ml(t){return Q.isInstance(t,pl)}const gl="LinkProperty";function hp(t){return Q.isInstance(t,gl)}const yl="MetadataAttribute";function RK(t){return Q.isInstance(t,yl)}const vl="MetadataBody";function SK(t){return Q.isInstance(t,vl)}const wa="Model";function rb(t){return Q.isInstance(t,wa)}const ba="ModelViews";function pp(t){return Q.isInstance(t,ba)}const mp="NavigateToProperty";function ib(t){return Q.isInstance(t,mp)}const wl="NotationProperty";function bl(t){return Q.isInstance(t,wl)}const El="NotesProperty";function MA(t){return Q.isInstance(t,El)}const Dl="OpacityProperty";function gp(t){return Q.isInstance(t,Dl)}const Tl="OutgoingRelationExpression";function sb(t){return Q.isInstance(t,Tl)}const yp="Predicates";function zA(t){return Q.isInstance(t,yp)}const vp="Relation";function es(t){return Q.isInstance(t,vp)}const wp="RelationBody";function BA(t){return Q.isInstance(t,wp)}const Rl="RelationNavigateToProperty";function bp(t){return Q.isInstance(t,Rl)}const Sl="RelationPredicateWhere";function qA(t){return Q.isInstance(t,Sl)}const kl="RelationPredicateWith";function ob(t){return Q.isInstance(t,kl)}const ts="RelationshipKind";function kK(t){return Q.isInstance(t,ts)}const $l="RelationStringProperty";function Ep(t){return Q.isInstance(t,$l)}const Cl="RelationStyleProperty";function ab(t){return Q.isInstance(t,Cl)}const _l="ShapeProperty";function Dp(t){return Q.isInstance(t,_l)}const Tp="SpecificationColor";function Rp(t){return Q.isInstance(t,Tp)}const Ea="SpecificationElementKind";function Da(t){return Q.isInstance(t,Ea)}const Al="SpecificationElementStringProperty";function jA(t){return Q.isInstance(t,Al)}const Ta="SpecificationRelationshipKind";function Ra(t){return Q.isInstance(t,Ta)}const xl="SpecificationRelationshipStringProperty";function UA(t){return Q.isInstance(t,xl)}const Sa="SpecificationRule";function cb(t){return Q.isInstance(t,Sa)}const ka="SpecificationTag";function Sp(t){return Q.isInstance(t,ka)}const ns="Tag";function GA(t){return Q.isInstance(t,ns)}const kp="Tags";function ub(t){return Q.isInstance(t,kp)}const lb="ViewRef",Il="ViewRuleAutoLayout";function $p(t){return Q.isInstance(t,Il)}const Pl="ViewRuleGlobalPredicateRef";function $K(t){return Q.isInstance(t,Pl)}const Nl="ViewRuleGlobalStyle";function WA(t){return Q.isInstance(t,Nl)}const Ol="ViewRuleGroup";function Cp(t){return Q.isInstance(t,Ol)}const Fl="ViewRuleStyle";function Ll(t){return Q.isInstance(t,Fl)}const Ml="ViewStringProperty";function CK(t){return Q.isInstance(t,Ml)}const zl="WhereBinaryExpression";function _K(t){return Q.isInstance(t,zl)}const Bl="WhereElementKind";function AK(t){return Q.isInstance(t,Bl)}const ql="WhereElementNegation";function HA(t){return Q.isInstance(t,ql)}const jl="WhereElementTag";function xK(t){return Q.isInstance(t,jl)}const Ul="WhereRelationKind";function VA(t){return Q.isInstance(t,Ul)}const Gl="WhereRelationNegation";function KA(t){return Q.isInstance(t,Gl)}const Wl="WhereRelationTag";function IK(t){return Q.isInstance(t,Wl)}const Hl="WildcardExpression";function $a(t){return Q.isInstance(t,Hl)}class YA extends ND{getAllTypes(){return[ju,Gu,Wu,oo,Vh,Kh,Hu,fa,Yh,Vu,Ku,Xh,Jh,Ww,Ah,Zh,Gr,Qh,Yu,xh,ep,Zi,Xu,Ih,Ph,Ju,Zu,ro,Qu,tl,nl,il,pa,sp,Jw,sl,ol,ma,ap,cp,ya,va,lp,dp,ul,up,ll,hl,dl,fl,ao,nb,fp,io,pl,gl,yl,vl,Nh,wa,ba,mp,wl,El,Dl,Tl,RA,yp,vp,wp,Oh,Rl,Fh,Lh,Sl,kl,la,$l,Cl,ts,Mh,_l,Tp,Ea,Al,Ta,xl,Sa,ka,da,Lu,ns,kp,zh,lb,Bh,Il,Pl,Nl,Ol,qh,Fl,Uh,Ml,zl,Mu,zu,Bl,ql,jl,CA,Gh,Bu,qu,Ul,Gl,Wl,Wh,Hl]}computeIsSubtype(e,n){switch(e){case ju:case pl:return this.isSubtype(Mh,n);case Gu:case Dl:case _l:return this.isSubtype(Lu,n);case Wu:return this.isSubtype(Mh,n)||this.isSubtype(Lu,n);case Hu:case fl:case hl:case Tl:return this.isSubtype(Oh,n);case fa:case pa:return this.isSubtype(io,n);case Vu:case Ku:return this.isSubtype(Ah,n);case Yu:case Xu:case Qu:case il:case ol:case Hl:return this.isSubtype(xh,n);case xh:case Ju:return this.isSubtype(Ph,n);case Ih:case Fh:return this.isSubtype(RA,n);case Ph:case Zu:return this.isSubtype(Ih,n);case tl:return this.isSubtype(ro,n)||this.isSubtype(da,n);case nl:return this.isSubtype(ro,n);case sl:case dl:return this.isSubtype(qh,n);case ll:return this.isSubtype(ro,n)||this.isSubtype(Lu,n);case gl:return this.isSubtype(ro,n)||this.isSubtype(la,n)||this.isSubtype(zh,n);case yl:case wl:case El:case Al:case xl:return this.isSubtype(da,n);case vl:return this.isSubtype(Nh,n);case Nh:return this.isSubtype(ro,n)||this.isSubtype(la,n);case Oh:case Sl:return this.isSubtype(Lh,n);case Rl:case Cl:return this.isSubtype(la,n);case Lh:case kl:return this.isSubtype(Fh,n);case $l:return this.isSubtype(la,n)||this.isSubtype(da,n);case Il:case Uh:return this.isSubtype(Ah,n)||this.isSubtype(Bh,n);case Pl:case Ol:case qh:return this.isSubtype(Bh,n);case Nl:case Fl:return this.isSubtype(Uh,n);case Ml:return this.isSubtype(da,n)||this.isSubtype(zh,n);case zl:return this.isSubtype(zu,n)||this.isSubtype(qu,n);case Mu:case ql:return this.isSubtype(zu,n);case zu:case qu:return this.isSubtype(CA,n);case Bl:return this.isSubtype(Mu,n)||this.isSubtype(Gh,n);case jl:return this.isSubtype(Mu,n)||this.isSubtype(Wh,n);case Bu:case Gl:return this.isSubtype(qu,n);case Ul:return this.isSubtype(Gh,n)||this.isSubtype(Bu,n);case Wl:return this.isSubtype(Bu,n)||this.isSubtype(Wh,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"ColorProperty:customColor":return oo;case"DynamicViewGlobalPredicateRef:predicate":return ya;case"DynamicViewRef:view":return fa;case"DynamicViewStep:kind":case"OutgoingRelationExpression:kind":case"Relation:kind":case"WhereRelationKind:value":return ts;case"Element:kind":case"ElementKindExpression:kind":case"WhereElementKind:value":return Zi;case"ElementRef:el":case"FqnElementRef:el":return Gr;case"ElementTagExpression:tag":case"Tags:values":case"WhereElementTag:value":case"WhereRelationTag:value":return ns;case"ElementViewRef:view":return pa;case"IconProperty:libicon":return ao;case"ViewRef:view":return io;case"ViewRuleGlobalPredicateRef:predicate":return va;case"ViewRuleGlobalStyle:style":return ul;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case ju:return{name:ju,properties:[{name:"key"},{name:"value"}]};case Gu:return{name:Gu,properties:[{name:"key"},{name:"value"}]};case Wu:return{name:Wu,properties:[{name:"customColor"},{name:"key"},{name:"themeColor"}]};case oo:return{name:oo,properties:[{name:"name"}]};case Vh:return{name:Vh,properties:[{name:"props",defaultValue:[]}]};case Kh:return{name:Kh,properties:[{name:"props",defaultValue:[]}]};case Hu:return{name:Hu,properties:[{name:"source"},{name:"target"}]};case fa:return{name:fa,properties:[{name:"body"},{name:"name"}]};case Yh:return{name:Yh,properties:[{name:"props",defaultValue:[]},{name:"rules",defaultValue:[]},{name:"steps",defaultValue:[]},{name:"tags"}]};case Vu:return{name:Vu,properties:[{name:"predicate"}]};case Ku:return{name:Ku,properties:[{name:"predicates"}]};case Xh:return{name:Xh,properties:[{name:"steps",defaultValue:[]}]};case Jh:return{name:Jh,properties:[{name:"prev"},{name:"value"}]};case Ww:return{name:Ww,properties:[{name:"view"}]};case Zh:return{name:Zh,properties:[{name:"custom"},{name:"isBackward",defaultValue:!1},{name:"kind"},{name:"source"},{name:"target"},{name:"title"}]};case Gr:return{name:Gr,properties:[{name:"body"},{name:"kind"},{name:"name"},{name:"props",defaultValue:[]}]};case Qh:return{name:Qh,properties:[{name:"elements",defaultValue:[]},{name:"props",defaultValue:[]},{name:"tags"}]};case Yu:return{name:Yu,properties:[{name:"parent"}]};case ep:return{name:ep,properties:[{name:"prev"},{name:"value"}]};case Zi:return{name:Zi,properties:[{name:"name"}]};case Xu:return{name:Xu,properties:[{name:"isEqual",defaultValue:!1},{name:"kind"}]};case Ju:return{name:Ju,properties:[{name:"subject"},{name:"where"}]};case Zu:return{name:Zu,properties:[{name:"custom"},{name:"subject"}]};case Qu:return{name:Qu,properties:[{name:"el"},{name:"parent"}]};case tl:return{name:tl,properties:[{name:"key"},{name:"value"}]};case nl:return{name:nl,properties:[{name:"key"},{name:"props",defaultValue:[]}]};case il:return{name:il,properties:[{name:"isEqual",defaultValue:!1},{name:"tag"}]};case pa:return{name:pa,properties:[{name:"body"},{name:"extends"},{name:"name"},{name:"viewOf"}]};case sp:return{name:sp,properties:[{name:"props",defaultValue:[]},{name:"rules",defaultValue:[]},{name:"tags"}]};case Jw:return{name:Jw,properties:[{name:"view"}]};case sl:return{name:sl,properties:[{name:"predicates"}]};case ol:return{name:ol,properties:[{name:"expand"}]};case ma:return{name:ma,properties:[{name:"body"},{name:"element"}]};case ap:return{name:ap,properties:[{name:"elements",defaultValue:[]}]};case cp:return{name:cp,properties:[{name:"el"},{name:"parent"}]};case ya:return{name:ya,properties:[{name:"name"},{name:"predicates",defaultValue:[]}]};case va:return{name:va,properties:[{name:"name"},{name:"predicates",defaultValue:[]}]};case up:return{name:up,properties:[{name:"name"},{name:"predicates",defaultValue:[]},{name:"styles",defaultValue:[]}]};case lp:return{name:lp,properties:[{name:"id"},{name:"props",defaultValue:[]},{name:"target"}]};case dp:return{name:dp,properties:[{name:"id"},{name:"styles",defaultValue:[]}]};case ul:return{name:ul,properties:[{name:"name"}]};case ll:return{name:ll,properties:[{name:"key"},{name:"libicon"},{name:"value"}]};case dl:return{name:dl,properties:[{name:"predicates"}]};case fl:return{name:fl,properties:[{name:"to"}]};case hl:return{name:hl,properties:[{name:"inout"}]};case ao:return{name:ao,properties:[{name:"name"}]};case nb:return{name:nb,properties:[{name:"globals",defaultValue:[]},{name:"likec4lib",defaultValue:[]},{name:"models",defaultValue:[]},{name:"specifications",defaultValue:[]},{name:"views",defaultValue:[]}]};case fp:return{name:fp,properties:[{name:"icons",defaultValue:[]}]};case pl:return{name:pl,properties:[{name:"key"},{name:"value"}]};case gl:return{name:gl,properties:[{name:"key"},{name:"title"},{name:"value"}]};case yl:return{name:yl,properties:[{name:"key"},{name:"value"}]};case vl:return{name:vl,properties:[{name:"props",defaultValue:[]}]};case wa:return{name:wa,properties:[{name:"elements",defaultValue:[]},{name:"name"}]};case ba:return{name:ba,properties:[{name:"name"},{name:"styles",defaultValue:[]},{name:"views",defaultValue:[]}]};case mp:return{name:mp,properties:[{name:"key"},{name:"value"}]};case wl:return{name:wl,properties:[{name:"key"},{name:"value"}]};case El:return{name:El,properties:[{name:"key"},{name:"value"}]};case Dl:return{name:Dl,properties:[{name:"key"},{name:"value"}]};case Tl:return{name:Tl,properties:[{name:"from"},{name:"isBidirectional",defaultValue:!1},{name:"kind"}]};case yp:return{name:yp,properties:[{name:"prev"},{name:"value"}]};case vp:return{name:vp,properties:[{name:"body"},{name:"kind"},{name:"source"},{name:"tags"},{name:"target"},{name:"technology"},{name:"title"}]};case wp:return{name:wp,properties:[{name:"props",defaultValue:[]},{name:"tags"}]};case Rl:return{name:Rl,properties:[{name:"key"},{name:"value"}]};case Sl:return{name:Sl,properties:[{name:"subject"},{name:"where"}]};case kl:return{name:kl,properties:[{name:"custom"},{name:"subject"}]};case ts:return{name:ts,properties:[{name:"name"}]};case $l:return{name:$l,properties:[{name:"key"},{name:"value"}]};case Cl:return{name:Cl,properties:[{name:"key"},{name:"props",defaultValue:[]}]};case _l:return{name:_l,properties:[{name:"key"},{name:"value"}]};case Tp:return{name:Tp,properties:[{name:"color"},{name:"name"}]};case Ea:return{name:Ea,properties:[{name:"kind"},{name:"props",defaultValue:[]}]};case Al:return{name:Al,properties:[{name:"key"},{name:"value"}]};case Ta:return{name:Ta,properties:[{name:"kind"},{name:"props",defaultValue:[]}]};case xl:return{name:xl,properties:[{name:"key"},{name:"value"}]};case Sa:return{name:Sa,properties:[{name:"colors",defaultValue:[]},{name:"elements",defaultValue:[]},{name:"name"},{name:"relationships",defaultValue:[]},{name:"tags",defaultValue:[]}]};case ka:return{name:ka,properties:[{name:"tag"}]};case ns:return{name:ns,properties:[{name:"name"}]};case kp:return{name:kp,properties:[{name:"prev"},{name:"values",defaultValue:[]}]};case lb:return{name:lb,properties:[{name:"view"}]};case Il:return{name:Il,properties:[{name:"direction"},{name:"nodeSep"},{name:"rankSep"}]};case Pl:return{name:Pl,properties:[{name:"predicate"}]};case Nl:return{name:Nl,properties:[{name:"style"}]};case Ol:return{name:Ol,properties:[{name:"groupRules",defaultValue:[]},{name:"props",defaultValue:[]},{name:"title"}]};case Fl:return{name:Fl,properties:[{name:"props",defaultValue:[]},{name:"target"}]};case Ml:return{name:Ml,properties:[{name:"key"},{name:"value"}]};case zl:return{name:zl,properties:[{name:"left"},{name:"operator"},{name:"right"}]};case Bl:return{name:Bl,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case ql:return{name:ql,properties:[{name:"value"}]};case jl:return{name:jl,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case Ul:return{name:Ul,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case Gl:return{name:Gl,properties:[{name:"value"}]};case Wl:return{name:Wl,properties:[{name:"not",defaultValue:!1},{name:"operator"},{name:"value"}]};case Hl:return{name:Hl,properties:[{name:"isWildcard",defaultValue:!1}]};default:return{name:e,properties:[]}}}}const Q=new YA;let XA;const PK=()=>XA??(XA=I9(`{"$type":"Grammar","isDeclared":true,"name":"LikeC4","rules":[{"$type":"ParserRule","name":"LikeC4Grammar","entry":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"specifications","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"models","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Assignment","feature":"views","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]}},{"$type":"Assignment","feature":"globals","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@93"},"arguments":[]}},{"$type":"Assignment","feature":"likec4lib","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LikeC4Lib","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"likec4lib"},{"$type":"Keyword","value":"{"},{"$type":"Keyword","value":"icons"},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"icons","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},"cardinality":"+"},{"$type":"Keyword","value":"}"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LibIcon","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@116"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementKind","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Tag","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationshipKind","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomColor","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@120"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRule","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"specification"}},{"$type":"Keyword","value":"{"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"relationships","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"colors","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationElementKind","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"element"},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@107"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationElementStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"notation"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationTag","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"tag"},{"$type":"Assignment","feature":"tag","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationColor","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"color"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"color","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@115"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRelationshipKind","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"relationship"},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRelationshipStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"notation"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Model","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"model"}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":true},"calledByName":false}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Element","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false}},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@137"},"arguments":[]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false}}]}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}],"cardinality":"?"}],"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"cardinality":"*"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":false},"calledByName":false}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@107"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@99"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@102"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"description"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ExtendElement","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"extend"},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ExtendElementBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[{"$type":"NamedArgument","value":{"$type":"BooleanLiteral","true":true},"calledByName":false}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"FqnElementRef","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"FqnElementRef"},"feature":"parent","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@134"},"arguments":[]},{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]},"deprecatedSyntax":false}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementRef","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementRef"},"feature":"parent","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@134"},"arguments":[]},{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@15"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]},"deprecatedSyntax":false}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Tags","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"values","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@118"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"+"},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"Tags"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"values","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@118"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"*"}],"cardinality":"*"},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Relation","parameters":[{"$type":"Parameter","name":"isExplicit"}],"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","guardCondition":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@24/parameters@0"}},"elements":[{"$type":"Assignment","feature":"source","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}]},{"$type":"Group","guardCondition":{"$type":"Negation","value":{"$type":"ParameterReference","parameter":{"$ref":"#/rules@24/parameters@0"}}},"elements":[{"$type":"Assignment","feature":"source","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},"cardinality":"?"}]}]},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@119"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-["},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false}},{"$type":"Keyword","value":"]->"}]},{"$type":"Keyword","value":"->"}]},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Assignment","feature":"technology","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"wildcard":false},{"$type":"ParserRule","name":"RelationBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@92"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@99"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"description"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationStyleProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"style"}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"MetadataProperty","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"metadata"},{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"MetadataBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"MetadataAttribute","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@140"},"arguments":[]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ModelViews","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"views"}},{"$type":"Keyword","value":"{"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"views","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]}},{"$type":"Assignment","feature":"styles","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@85"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LikeC4ViewRule","returnType":{"$ref":"#/types@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementView","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"view"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"extends"},{"$type":"Assignment","feature":"extends","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"of"},{"$type":"Assignment","feature":"viewOf","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}]}],"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicView","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"dynamic"},{"$type":"Keyword","value":"view"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@40"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRef","definition":{"$type":"Assignment","feature":"view","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/types@0"},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementViewRef","definition":{"$type":"Assignment","feature":"view","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@34"},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewRef","definition":{"$type":"Assignment","feature":"view","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@35"},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementViewBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]},"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewBody","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]},"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"steps","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}]}},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@42"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@99"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"description"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewLayoutDirection","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"TopBottom"},{"$type":"Keyword","value":"LeftRight"},{"$type":"Keyword","value":"BottomTop"},{"$type":"Keyword","value":"RightLeft"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRule","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@85"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@86"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleGroup","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]},"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@100"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@105"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@101"},"arguments":[]}]},"cardinality":"*"},{"$type":"Assignment","feature":"groupRules","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewRule","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@80"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@81"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@85"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@86"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewParallelSteps","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"parallel"},{"$type":"Keyword","value":"par"}]},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"steps","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewStep","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"source","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"isBackward","operator":"?=","terminal":{"$type":"Keyword","value":"<-"}},{"$type":"Keyword","value":"->"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-["},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false}},{"$type":"Keyword","value":"]->"}]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@119"},"arguments":[]},"deprecatedSyntax":false}}]},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"custom","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@90"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRulePredicate","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"IncludePredicate"}},{"$type":"Keyword","value":"include"},{"$type":"Assignment","feature":"predicates","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ExcludePredicate"}},{"$type":"Keyword","value":"exclude"},{"$type":"Assignment","feature":"predicates","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Predicates","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"Predicates"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},"cardinality":"?"}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Predicate","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@65"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleGlobalPredicateRef","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"global"},{"$type":"Keyword","value":"predicate"},{"$type":"Assignment","feature":"predicate","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@94"},"deprecatedSyntax":false}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementPredicate","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@54"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementPredicates","inferredType":{"$type":"InferredType","name":"ElementPredicate"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@55"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementPredicateWith"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"with"},{"$type":"Assignment","feature":"custom","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@89"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementPredicateOrWhere","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementPredicateWhere"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"where"},{"$type":"Assignment","feature":"where","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@56"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementExpression","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@57"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementOr","inferredType":{"$type":"InferredType","name":"WhereElementExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@58"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"or"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@58"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementAnd","inferredType":{"$type":"InferredType","name":"WhereElementExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@59"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"and"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@59"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementPrimary","inferredType":{"$type":"InferredType","name":"WhereElementExpression"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@56"},"arguments":[]},{"$type":"Keyword","value":")"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@60"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@61"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElementNegation","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"not"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@56"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereElement","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereElementTag"}},{"$type":"Keyword","value":"tag"},{"$type":"RuleCall","rule":{"$ref":"#/rules@122"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@118"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereElementKind"}},{"$type":"Keyword","value":"kind"},{"$type":"RuleCall","rule":{"$ref":"#/rules@122"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementExpression","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@63"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@64"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementSelectorExpression","inferredType":{"$type":"InferredType","name":"ElementExpression"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WildcardExpression"}},{"$type":"Assignment","feature":"isWildcard","operator":"?=","terminal":{"$type":"Keyword","value":"*"}}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementTagExpression"}},{"$type":"Keyword","value":"element.tag"},{"$type":"RuleCall","rule":{"$ref":"#/rules@123"},"arguments":[]},{"$type":"Assignment","feature":"tag","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@118"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementKindExpression"}},{"$type":"Keyword","value":"element.kind"},{"$type":"RuleCall","rule":{"$ref":"#/rules@123"},"arguments":[]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"deprecatedSyntax":false},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementDescedantsExpression","inferredType":{"$type":"InferredType","name":"ElementExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ExpandElementExpression"},"feature":"expand","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@131"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementDescedantsExpression"},"feature":"parent","operator":"="},{"$type":"RuleCall","rule":{"$ref":"#/rules@132"},"arguments":[]}]}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationPredicate","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationPredicates","inferredType":{"$type":"InferredType","name":"RelationPredicate"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"RelationPredicateWith"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"with"},{"$type":"Assignment","feature":"custom","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@90"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationPredicateOrWhere","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"RelationPredicateWhere"},"feature":"subject","operator":"="},{"$type":"Keyword","value":"where"},{"$type":"Assignment","feature":"where","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@68"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationExpression","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@69"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationOr","inferredType":{"$type":"InferredType","name":"WhereRelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"or"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationAnd","inferredType":{"$type":"InferredType","name":"WhereRelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereBinaryExpression"},"feature":"left","operator":"="},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"and"}},{"$type":"Assignment","feature":"right","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationPrimary","inferredType":{"$type":"InferredType","name":"WhereRelationExpression"},"definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"RuleCall","rule":{"$ref":"#/rules@68"},"arguments":[]},{"$type":"Keyword","value":")"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelationNegation","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"not"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@68"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"WhereRelation","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereRelationTag"}},{"$type":"Keyword","value":"tag"},{"$type":"RuleCall","rule":{"$ref":"#/rules@122"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@4"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@118"},"arguments":[]},"deprecatedSyntax":false},"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WhereRelationKind"}},{"$type":"Keyword","value":"kind"},{"$type":"RuleCall","rule":{"$ref":"#/rules@122"},"arguments":[]},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationExpression","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@77"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"InOutRelationExpressions","inferredType":{"$type":"InferredType","name":"RelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@76"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"InOutRelationExpression"},"feature":"inout","operator":"="},{"$type":"Keyword","value":"->"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IncomingRelationExpression","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"->"},{"$type":"Assignment","feature":"to","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DirectedRelationExpressions","inferredType":{"$type":"InferredType","name":"RelationExpression"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@78"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"DirectedRelationExpression"},"feature":"source","operator":"="},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"OutgoingRelationExpression","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"from","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"isBidirectional","operator":"?=","terminal":{"$type":"Keyword","value":"<->"}},{"$type":"Keyword","value":"->"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-["},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"deprecatedSyntax":false}},{"$type":"Keyword","value":"]->"}]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@5"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@119"},"arguments":[]},"deprecatedSyntax":false}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementExpressionsIterator","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementExpressionsIterator"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@62"},"arguments":[]},"cardinality":"?"}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewIncludePredicate","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"include"},{"$type":"Assignment","feature":"predicates","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@82"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewGlobalPredicateRef","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"global"},{"$type":"Keyword","value":"predicate"},{"$type":"Assignment","feature":"predicate","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@95"},"deprecatedSyntax":false}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DynamicViewPredicateIterator","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"DynamicViewPredicateIterator"},"feature":"prev","operator":"="},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},"cardinality":"?"}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleStyle","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"style"},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@79"},"arguments":[]}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@106"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@87"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleGlobalStyle","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"global"},{"$type":"Keyword","value":"style"},{"$type":"Assignment","feature":"style","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@96"},"deprecatedSyntax":false}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleStyleOrGlobalRef","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@83"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@84"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleAutoLayout","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"autoLayout"},{"$type":"Assignment","feature":"direction","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@43"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"rankSep","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@141"},"arguments":[]}},{"$type":"Assignment","feature":"nodeSep","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@141"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NotationProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"notation"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NotesProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"notes"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomElementProperties","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@91"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@87"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@106"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomRelationProperties","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@92"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@87"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@88"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@110"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NavigateToProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"navigateTo"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@36"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationNavigateToProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"navigateTo"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@38"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Globals","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"global"}},{"$type":"Keyword","value":"{"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"predicates","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@94"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@95"},"arguments":[]}]},"cardinality":"*"},{"$type":"Assignment","feature":"styles","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@97"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@98"},"arguments":[]}]},"cardinality":"*"}],"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"GlobalPredicateGroup","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"predicateGroup"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@140"},"arguments":[]}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"predicates","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"GlobalDynamicPredicateGroup","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"dynamicPredicateGroup"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@140"},"arguments":[]}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"predicates","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@80"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"GlobalStyleId","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@140"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"GlobalStyle","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"style"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@96"},"arguments":[]}},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@79"},"arguments":[]}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@106"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@87"},"arguments":[]}]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"GlobalStyleGroup","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"styleGroup"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@96"},"arguments":[]}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"styles","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@83"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LinkProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"link"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@117"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@139"},"arguments":[]},"cardinality":"?"},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ColorProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"color"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"themeColor","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@113"},"arguments":[]}},{"$type":"Assignment","feature":"customColor","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@6"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@120"},"arguments":[]},"deprecatedSyntax":false}}]},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"OpacityProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"opacity"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@138"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IconProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"icon"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"libicon","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@116"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@117"},"arguments":[]}}]},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ShapeProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"shape"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@114"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"BorderStyleValue","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]},{"$type":"Keyword","value":"none"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"BorderProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"border"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@104"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StyleProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@100"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@103"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@105"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@101"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@102"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementStyleProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"style"}},{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@106"},"arguments":[]},"cardinality":"*"},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LineProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"line"}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArrowProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"head"},{"$type":"Keyword","value":"tail"}]}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@112"},"arguments":[]}},{"$type":"Keyword","value":";","cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationshipStyleProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@100"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@108"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@109"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LineOptions","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"solid"},{"$type":"Keyword","value":"dashed"},{"$type":"Keyword","value":"dotted"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArrowType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"none"},{"$type":"Keyword","value":"normal"},{"$type":"Keyword","value":"onormal"},{"$type":"Keyword","value":"dot"},{"$type":"Keyword","value":"odot"},{"$type":"Keyword","value":"diamond"},{"$type":"Keyword","value":"odiamond"},{"$type":"Keyword","value":"crow"},{"$type":"Keyword","value":"open"},{"$type":"Keyword","value":"vee"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ThemeColor","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"primary"},{"$type":"Keyword","value":"secondary"},{"$type":"Keyword","value":"muted"},{"$type":"Keyword","value":"slate"},{"$type":"Keyword","value":"blue"},{"$type":"Keyword","value":"indigo"},{"$type":"Keyword","value":"sky"},{"$type":"Keyword","value":"red"},{"$type":"Keyword","value":"gray"},{"$type":"Keyword","value":"green"},{"$type":"Keyword","value":"amber"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementShape","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rectangle"},{"$type":"Keyword","value":"person"},{"$type":"Keyword","value":"browser"},{"$type":"Keyword","value":"mobile"},{"$type":"Keyword","value":"cylinder"},{"$type":"Keyword","value":"storage"},{"$type":"Keyword","value":"queue"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomColorValue","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@133"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@142"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@141"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IconId","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@128"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Uri","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@129"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@130"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TagId","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@133"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DotId","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@135"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@121"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CustomColorId","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@140"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@114"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@112"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]},{"$type":"Keyword","value":"element"},{"$type":"Keyword","value":"model"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Id","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@140"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@114"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@113"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@112"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@111"},"arguments":[]},{"$type":"Keyword","value":"element"},{"$type":"Keyword","value":"model"},{"$type":"Keyword","value":"group"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EqOperator","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@137"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@136"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"is"}},{"$type":"Assignment","feature":"not","operator":"?=","terminal":{"$type":"Keyword","value":"not"},"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IsEqual","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"isEqual","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@137"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@136"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","hidden":true,"name":"BLOCK_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\/[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/[\\\\r\\\\n]+/"},"fragment":false},{"$type":"TerminalRule","name":"LIB_ICON","definition":{"$type":"RegexToken","regex":"/(aws|azure|gcp|tech):[-\\\\w]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"URI_WITH_SCHEMA","definition":{"$type":"RegexToken","regex":"/\\\\w+:\\\\/\\\\/\\\\S+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"URI_RELATIVE","definition":{"$type":"RegexToken","regex":"/\\\\.{0,2}\\\\/[^\\\\/]\\\\S+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"DotUnderscore","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\._/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"DotWildcard","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\.\\\\*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Hash","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"#"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"StickyDot","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\./"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Dot","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"."}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NotEqual","definition":{"$type":"RegexToken","regex":"/\\\\!\\\\={1,2}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Eq","definition":{"$type":"RegexToken","regex":"/\\\\={1,2}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Percent","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\d+%/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"String","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"IdTerminal","definition":{"$type":"RegexToken","regex":"/[_]*[a-zA-Z][-\\\\w]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Number","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/\\\\b\\\\d+\\\\b/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Hex","definition":{"$type":"RegexToken","regex":"/\\\\b[a-zA-Z0-9]+\\\\b/"},"fragment":false,"hidden":false}],"types":[{"$type":"Type","name":"LikeC4View","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@34"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@35"}}]}},{"$type":"Type","name":"StringProperty","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@18"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@42"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@27"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@31"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@9"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@13"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@87"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@88"}}]}},{"$type":"Type","name":"WhereTagEqual","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@61/definition/elements@0/elements@0/inferredType"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@73/definition/elements@0/elements@0/inferredType"}}]}},{"$type":"Type","name":"WhereKindEqual","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@61/definition/elements@1/elements@0/inferredType"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@73/definition/elements@1/elements@0/inferredType"}}]}},{"$type":"Type","name":"WhereExpression","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@56"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@68"}}]}}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"interfaces":[],"usedGrammars":[]}`)),JA={languageId:"likec4",fileExtensions:[".c4",".likec4",".like-c4"],caseInsensitive:!1},NK={skipValidations:!0,recoveryEnabled:!0,nodeLocationTracking:"full"},OK={AstReflection:()=>new YA},FK={Grammar:()=>PK(),LanguageMetaData:()=>JA,parser:{ParserConfig:()=>NK}},Ne=Je.withTag("lsp");function Bt(t){Ne.error(t)}function ct(t){if(t instanceof Error){Ne.warn(t.stack??t.message);return}Ne.warn(t)}function LK(t){Ne.level=Xe[t]}function MK(t){const e={log:({level:n,...r},i)=>{if(n!==Xe.error&&n!==Xe.fatal)return;const s=r.tag||"",o=r.args.map(c=>cv(c)?c.stack??c.message:typeof c=="string"?c:""+c);s&&o.unshift(`[${s}]`);const a=o.join(" ");t.telemetry.logEvent({eventName:"error",error:a})}};Je.addReporter(e),Ne.setReporters(Je.options.reporters)}function zK(t){const e={log:({level:n,...r},i)=>{const s=r.tag||"",o=r.args.map(c=>cv(c)?c.stack??c.message:typeof c=="string"?c:""+c);s&&o.unshift(`[${s}]`);const a=o.join(" ");switch(!0){case n>=Xe.debug:{t.console.debug(a);break}case n>=Xe.log:{t.console.info(a);break}case n>=Xe.warn:{t.console.warn(a);break}case n>=Xe.fatal:{t.console.error(a);break}default:t.console.log(a)}}};Je.setReporters([e]),Ne.setReporters(Je.options.reporters)}function Cn(t){return t.el.ref}function _p(t){const e=[t.el.$refText];let n=t.parent;for(;n;)e.push(n.el.$refText),n=n.parent;return e.length===1?e[0]:e.reverse().join(".")}const Vl=Symbol.for("idattr"),db={writeId(t,e){return t[Vl]=e,t},readId(t){return t[Vl]}},ZA={writeId(t,e){return at(e)?t[Vl]=void 0:t[Vl]=e,t},readId(t){return t[Vl]}};function BK(t){return Object.assign(t,{c4Specification:{tags:new Set,elements:{},relationships:{},colors:{}},c4Elements:[],c4Relations:[],c4Globals:{predicates:{},dynamicPredicates:{},styles:{}},c4Views:[]})}function Ap(t){return t.textDocument.languageId===JA.languageId}function QA(t){return Ap(t)&&t.state>=Ve.IndexedContent&&!!t.c4fqnIndex}function Kl(t){return Ap(t)&&t.state==Ve.Validated&&!!t.c4Specification&&!!t.c4Elements&&!!t.c4Relations&&!!t.c4Views&&!!t.c4fqnIndex}function qK(t){return e=>t.some(n=>n(e))}const jK=qK([Qw,OA,NA,al,cl,xA,np,ob,Bw,jw,Gw,Hw,lK,SA,ub,dK,zw,Xw,AA,qw,aK,BA,es,iK,ha,Wr,Zw,ga,Da,Ra,Sp,Rp,cb,pp,rb]),UK=t=>{let e=t;for(;e;){if(jK(e))return e;e=e.$container}};function GK(t){const e=t.diagnostics?.filter(r=>r.severity===Xc.Error)??[],n=new WeakSet(e.flatMap(r=>UK(r.node)??[]));return{isValid:r=>!n.has(r),invalidNodes:n}}function*WK(t,e){const n=t.parseResult.value.models.flatMap(s=>s.elements),r=[];let i;for(;i=n.shift();)if(e(i)){if(es(i)){r.push(i);continue}if(ga(i)){i.body&&i.body.elements.length>0&&n.push(...i.body.elements);continue}i.body&&i.body.elements.length>0&&n.push(...i.body.elements),yield i}for(const s of r)yield s}function HK(t){const e=Cn(t.target);if(!e)throw new Error("RelationRefError: Invalid reference to target");if(Ft(t.source)){const n=Cn(t.source);if(!n)throw new Error("RelationRefError: Invalid reference to source");return{source:n,target:e}}if(!ha(t.$container))throw new Error("RelationRefError: Invalid container for sourceless relation");return{source:t.$container.$container,target:e}}function ex({value:t}){const e=parseFloat(t);return isNaN(e)?100:Lk(e,{min:0,max:100})}function xp(t,e){const n={};if(!t||t.length===0)return n;for(const r of t)if(e(r))switch(!0){case Hh(r):{ae(r.value)&&(n.border=r.value);break}case so(r):{const i=Yl(r);ae(i)&&(n.color=i);break}case Dp(r):{ae(r.value)&&(n.shape=r.value);break}case Qi(r):{const i=r.libicon?.ref?.name??r.value;ae(i)&&(n.icon=i);break}case gp(r):{n.opacity=ex(r);break}default:Ie(r.$type)}return n}function VK(t){const e={};if(!t||t.length===0)return e;for(const n of t){if(so(n)){const r=Yl(n);ae(r)&&(e.color=r);continue}if(ml(n)){e.line=n.value;continue}if(Uu(n)){switch(n.key){case"head":{e.head=n.value;break}case"tail":{e.tail=n.value;break}default:Ie(n)}continue}Ie(n)}return e}function tx(t){const{color:e,line:n,head:r,tail:i}=VK(t?.filter(cK));return{...e&&e!==Ts?{color:e}:{},...n&&n!==yE?{line:n}:{},...r&&r!==Ro?{head:r}:{},...i?{tail:i}:{}}}function Yl(t){return t?.themeColor??t?.customColor?.$refText}function nx(t){const e=t.rankSep,n=t.nodeSep;let r;switch(t.direction){case"TopBottom":{r="TB";break}case"BottomTop":{r="BT";break}case"LeftRight":{r="LR";break}case"RightLeft":{r="RL";break}default:Ie(t.direction)}return{direction:r,...n&&{nodeSep:n},...e&&{rankSep:e}}}function KK(t){switch(t){case"TB":return"TopBottom";case"BT":return"BottomTop";case"LR":return"LeftRight";case"RL":return"RightLeft";default:Ie(t)}}function rx(t){if(Bw(t))return t;if(Kw(t))return t.subject;if(np(t))return rx(t.subject);Ie(t)}class YK{constructor(e){this.services=e}async provideCodeLens(e,n,r){return e.state!==Ve.Validated&&(Ne.debug(`Waiting for document ${e.uri.path} to be validated`),await this.services.shared.workspace.DocumentBuilder.waitUntil(Ve.Validated,e.uri,r),Ne.debug(`Document ${e.uri.path} is validated`)),Kl(e)?e.parseResult.value.views.flatMap(i=>i.views).flatMap(i=>{const s=db.readId(i),o=i.$cstNode?.range;return!o||!s?[]:{range:{start:o.start,end:{line:o.start.line,character:o.start.character+4}},command:{command:"likec4.open-preview",arguments:[s],title:"open preview"}}}):void 0}}class XK extends dC{completionOptions={triggerCharacters:["."]};completionForKeyword(e,n,r){if(this.filterKeyword(e,n)){if(["title","description","technology"].includes(n.value))return r(e,{label:n.value,kind:Ot.Property,insertTextFormat:pr.Snippet,insertText:`${n.value} '\${0}'`});if(["views","specification","model","with"].includes(n.value))return r(e,{label:n.value,detail:`Insert ${n.value} block`,kind:Ot.Module,insertTextFormat:pr.Snippet,insertText:`${n.value} {
1726
+ $0
1727
+ }`});if(n.value==="group")return r(e,{label:n.value,detail:"Insert group block",kind:Ot.Class,insertTextFormat:pr.Snippet,insertText:["group '${1:Title}' {"," $0","}"].join(`
1728
+ `)});if(n.value==="dynamic")return r(e,{label:n.value,detail:"Insert dynamic view",kind:Ot.Class,insertTextFormat:pr.Snippet,insertText:["dynamic view ${1:view_${TM_FILENAME_BASE}_${CURRENT_SECOND}} {"," title '${2:Untitled}'"," "," $0","}"].join(`
1729
+ `)});if(n.value==="style"&&e.node)return Sc(e.node,al)?r(e,{label:n.value,detail:`Insert ${n.value} block`,kind:Ot.Module,insertTextFormat:pr.Snippet,insertText:`${n.value} \${1:name} \${2:*} {
1730
+ \${3|color,shape,border,opacity,icon|} $0
1731
+ }`}):Sc(e.node,lv([pp,cl]))?r(e,{label:n.value,detail:`Insert ${n.value} block`,kind:Ot.Module,insertTextFormat:pr.Snippet,insertText:`${n.value} \${1:*} {
1732
+ \${2|color,shape,border,opacity,icon|} $0
1733
+ }`}):r(e,{label:n.value,detail:`Insert ${n.value} block`,kind:Ot.Module,insertTextFormat:pr.Snippet,insertText:`${n.value} {
1734
+ \${1|color,shape,border,opacity,icon|} $0
1735
+ }`});if(n.value==="extend")return r(e,{label:n.value,detail:"Extend another view",kind:Ot.Class,insertTextFormat:pr.Snippet,insertText:`extend \${1:element} {
1736
+ $0
1737
+ }`});if(n.value==="autoLayout")return r(e,{label:n.value,kind:Ot.Class,insertTextFormat:pr.Snippet,insertText:"autoLayout ${1|TopBottom,BottomTop,LeftRight,RightLeft|}$0"});r(e,{label:n.value,kind:this.getKeywordCompletionItemKind(n),detail:"Keyword",sortText:"1"})}}}class JK extends fC{createDocumentHighlight(e){return me.DocumentHighlight.create(e.segment.range,me.DocumentHighlightKind.Read)}}class ZK{constructor(e){this.services=e}getDocumentLinks(e,n){return Kl(e)?Ir(e.parseResult.value).filter(hp).map(r=>{try{const i=An(r.$cstNode,"value")?.range,s=this.resolveLink(e,r.value);if(i&&Mw(s))return{range:i,target:s}}catch(i){ct(i)}return null}).nonNullable().toArray():[]}resolveLink(e,n){if(Mw(n)||Ch(n))return n;const r=EA(n)?new URL(e.uri.toString(!0)):this.services.shared.workspace.WorkspaceManager.workspaceURL;return new URL(n,r).toString()}relativeLink(e,n){if(Ch(n))return DA(n);if(EA(n)){const r=new URL(e.uri.toString(!0)),i=new URL(n,r).toString();return DA(eK(i,this.services.shared.workspace.WorkspaceManager.workspaceURL.toString()))}return null}}class QK{constructor(e){this.services=e,this.nodeKindProvider=e.shared.lsp.NodeKindProvider}nodeKindProvider;getSymbols({parseResult:{value:{specifications:e,models:n,views:r,likec4lib:i}}}){return[...i.map(s=>()=>this.getLikec4LibSymbol(s)),...e.map(s=>()=>this.getSpecSymbol(s)),...n.map(s=>()=>this.getModelSymbol(s)),...r.map(s=>()=>this.getModelViewsSymbol(s))].flatMap(s=>{try{return s()??[]}catch(o){return Bt(o),[]}})}getLikec4LibSymbol(e){const n=e?.$cstNode;if(!n)return[];const r=e.icons.map(i=>this.getLibIconSymbol(i)).filter(ae);return r.length===0?[]:[{kind:mr.Namespace,name:"icons",range:n.range,selectionRange:Cc(n,"icons")?.range??n.range,children:r}]}getSpecSymbol(e){const n=e?.$cstNode;if(!n)return[];const r=An(n,"name");if(!r)return[];const i=Ye([...e.elements,...e.tags,...e.relationships],Et(s=>{try{if(Da(s)||Ra(s))return this.getKindSymbol(s);if(Sp(s))return this.getTagSymbol(s)}catch(o){return Bt(o),null}Ie(s)}),nt(ae));return i.length===0?[]:[{kind:mr.Namespace,name:e.name,range:n.range,selectionRange:r.range,children:i}]}getModelSymbol(e){const n=e.$cstNode;if(!n)return[];const r=An(n,"name");return r?[{kind:this.symbolKind(e),name:e.name,range:n.range,selectionRange:r.range,children:e.elements.flatMap(i=>this.getElementsSymbol(i))}]:[]}getElementsSymbol(e){try{if(ga(e))return this.getExtendElementSymbol(e);if(Wr(e))return this.getElementSymbol(e)}catch(n){Bt(n)}return[]}getExtendElementSymbol(e){const n=e.$cstNode,r=e.element.$cstNode,i=e.body;return!n||!r?[]:[{kind:this.symbolKind(e),name:_p(e.element),range:n.range,selectionRange:r.range,children:i.elements.flatMap(s=>this.getElementsSymbol(s))}]}getElementSymbol(e){const n=e.$cstNode,r=An(n,"name");if(!r||!n)return[];const i=e.name,s=e.kind.$refText;return[{kind:this.symbolKind(e),name:i,range:n.range,selectionRange:r.range,detail:s,children:e.body?.elements.flatMap(o=>this.getElementsSymbol(o))??[]}]}getModelViewsSymbol(e){const n=e.$cstNode,r=An(n,"name");return!r||!n?[]:[{kind:this.symbolKind(e),name:e.name,range:n.range,selectionRange:r.range,children:e.views.flatMap(i=>this.getViewSymbol(i))}]}getKindSymbol(e){return!e.$cstNode||!e.kind.$cstNode||Ki(e.kind.name)?null:{kind:this.symbolKind(e),name:e.kind.name,range:e.$cstNode.range,selectionRange:e.kind.$cstNode.range}}getTagSymbol(e){return!e.$cstNode||!e.tag.$cstNode||Ki(e.tag.name)?null:{kind:this.symbolKind(e),name:"#"+e.tag.name,range:e.$cstNode.range,selectionRange:e.tag.$cstNode.range}}getLibIconSymbol(e){return!e.$cstNode||Ki(e.name)?null:{kind:this.symbolKind(e),name:e.name,range:e.$cstNode.range,selectionRange:e.$cstNode.range}}getViewSymbol(e){const n=e?.$cstNode;if(!n)return[];const r=e.name?An(n,"name"):null;return r?[{kind:this.symbolKind(e),name:r.text,range:n.range,selectionRange:r.range,children:[]}]:[]}symbolKind(e){return this.nodeKindProvider.getSymbolKind(e)}}class eY extends gC{locator;constructor(e){super(e),this.locator=e.likec4.ModelLocator}getAstNodeHoverContent(e){if(GA(e))return{contents:{kind:"markdown",value:Nv(`
1738
+ tag: \`${e.name}\`
1739
+ `)}};if(Wr(e)){const n=this.locator.getParsedElement(e);return n?{contents:{kind:"markdown",value:[n.id,`### ${n.title}`,"`"+n.kind+"` "].join(`
1740
+ `)}}:void 0}}}class tY extends rG{highlightElement(e,n){if(kK(e))return n({node:e,property:"name",type:We.function});if(TK(e))return n({node:e,property:"name",type:We.type,modifier:[pt.definition]}),"prune";if(sb(e)&&"kind"in e){n({node:e,property:"kind",type:We.function});return}if(es(e)&&"kind"in e&&n({node:e,property:"kind",type:We.function}),ib(e)||bp(e))return n({node:e,property:"key",type:We.property}),n({node:e,property:"value",type:We.variable,modifier:[pt.definition,pt.readonly]}),"prune";if((Vw(e)||$a(e))&&e.$cstNode)return n({cst:e.$cstNode,type:We.variable,modifier:[pt.definition,pt.readonly]}),"prune";if(VA(e)&&ae(e.value)){n({node:e,property:"value",type:We.function});return}if(($A(e)||_A(e))&&ae(e.value)){n({node:e,property:"value",type:We.type,modifier:[pt.definition,pt.readonly]});return}if(tp(e)&&ae(e.kind))return n({node:e,property:"kind",type:We.type,modifier:[pt.definition]}),"prune";if(rp(e)&&ae(e.tag))return n({node:e,property:"tag",type:We.type,modifier:[pt.definition]}),"prune";if(el(e)||PA(e))return n({node:e,property:"el",type:e.parent?We.property:We.variable,modifier:[pt.definition,pt.readonly]}),e.parent?void 0:"prune";if(Rp(e)){n({node:e,keyword:"color",type:We.keyword}),n({node:e,property:"name",type:We.type,modifier:[pt.declaration,pt.readonly]});return}if((Da(e)||Ra(e))&&n({node:e,property:"kind",type:We.type,modifier:[pt.declaration,pt.readonly]}),ub(e))return n({node:e,property:"values",type:We.interface});if(GA(e))return n({node:e,property:"name",type:We.type,modifier:[pt.definition]});if((ab(e)||rl(e)&&ha(e.$container))&&n({node:e,property:"key",type:We.property}),gp(e))return n({node:e,property:"key",type:We.property}),n({node:e,property:"value",type:We.number}),"prune";if(hp(e)||Qi(e)||uK(e))return n({node:e,property:"key",type:We.property}),"value"in e&&e.value&&n({node:e,property:"value",type:We.string}),Qi(e)&&e.libicon&&n({node:e,property:"libicon",type:We.enum,modifier:[pt.defaultLibrary]}),"prune";if(so(e)||Dp(e)||Uu(e)||ml(e)||Hh(e))return n({node:e,property:"key",type:We.property}),"value"in e&&n({node:e,property:"value",type:We.enum}),"prune";if(Wr(e))return this.highlightAstElement(e,n);if(qw(e))return this.highlightView(e,n)}highlightAstElement(e,n){n({node:e,property:"name",type:We.variable,modifier:[pt.declaration,pt.readonly]}),n({node:e,property:"kind",type:We.keyword,modifier:[]})}highlightView(e,n){e.name&&n({node:e,property:"name",type:We.variable,modifier:[pt.declaration,pt.readonly,"local"]})}}const{findNodeForProperty:nY}=of,{toDocumentSegment:ix}=sM;function rY(t,e,n){const r=nY(e.$cstNode,"name");return{documentUri:n.uri,name:e.name,...e.$cstNode&&{selectionSegment:ix(e.$cstNode)},...r&&{nameSegment:ix(r)},path:t.getAstNodePath(e),type:Gr}}function iY(t,e){const n=t.c4fqnIndex=new Mr,r=t.parseResult.value.models.flatMap(a=>a.elements);if(r.length===0)return;const i=e.workspace.AstNodeLocator,s=r.map(a=>[a,null]);let o;for(;o=s.shift();)try{const[a,c]=o;if(es(a))continue;if(ga(a)){if(Ft(a.body)&&!Ki(a.body.elements)){const u=_p(a.element);for(const l of a.body.elements)s.push([l,u])}continue}if(Wr(a)){const u=eO(a.name,c);if(n.add(u,{...rY(i,a,t),fqn:u}),ZA.writeId(a,u),Ft(a.body)&&!Ki(a.body.elements))for(const l of a.body.elements)s.push([l,u]);continue}Ie(a)}catch(a){Bt(a)}}class sY{constructor(e){this.services=e,this.langiumDocuments=e.shared.workspace.LangiumDocuments,e.shared.workspace.DocumentBuilder.onBuildPhase(Ve.IndexedContent,async(n,r)=>{for(const i of n)if(Ap(i)){delete i.c4fqnIndex,delete i.c4Elements,delete i.c4Specification,delete i.c4Relations,delete i.c4Views;try{iY(i,e)}catch(s){ct(s)}}return await Promise.resolve()}),Ne.debug("[FqnIndex] Created")}langiumDocuments;get documents(){return this.langiumDocuments.all.filter(QA)}entries(e){return this.documents.flatMap(n=>n.c4fqnIndex.keys().filter(e).flatMap(r=>n.c4fqnIndex.get(r)))}getFqn(e){return ZA.readId(e)??null}byFqn(e){return this.documents.flatMap(n=>n.c4fqnIndex.get(e))}directChildrenOf(e){return et([e]).flatMap(n=>{const r=this.entries(i=>kt(i)===n).map(i=>[i.name,i]).toArray();return r.length===0?[]:new Mr(r).entriesGroupedByKey().flatMap(([i,s])=>s.length===1?s:[]).iterator()})}uniqueDescedants(e){return new xt(()=>{const n=`${e}.`,r=new Set,i=[],s=new Mr;if(this.entries(o=>o.startsWith(n)).forEach(o=>{const a=So(o.fqn),c={...o,name:a};kt(o.fqn)===e?(r.add(a),s.add(a,c)):i.push(c)}),s.size+i.length===0)return null;for(const o of i)r.has(o.name)||s.add(o.name,o);return s.entriesGroupedByKey().flatMap(([o,a])=>a.length===1?a:[]).iterator()},n=>n?n.next():Yt)}}function oY(t){const e=new Map;for(const n of t)if(fO(n)&&n.viewOf&&at(n.extends)){const r=e.get(n.viewOf)??[];r.push(n.id),e.set(n.viewOf,r)}for(const{id:n,nodes:r}of t)for(const i of r){if(i.navigateTo)continue;const s=Nk(e.get(i.id)??[],o=>o!==n);s&&(i.navigateTo=s)}return t}function aY(t){const e=new dA({directed:!0,multigraph:!1,compound:!1});for(const n of ah(t))e.setNode(n.id,n.id),TE(n)&&e.setEdge(n.id,n.extends);if(e.edgeCount()===0)return t;for(;!TV(e);){const n=sa(DV(e));if(!n)break;const r=ia(n);if(!r)break;e.removeNode(r)}return fA(e,e.sources()).reduce((n,r)=>{const i=t[r];if(!i)return n;if(TE(i)){const s=n[i.extends];return s?Object.assign(n,{[i.id]:{...s,...i,rules:[...s.rules,...i.rules]}}):(Je.debug(`View "${i.id}" extends from "${i.extends}" which does not exist`),n)}return Object.assign(n,{[i.id]:i})},{})}function cY(t,e="/"){const n=Ye(t,Et(c=>c.docUri),nt(ae),zr());if(n.length===0)return"";if(n.length===1){const c=_h(n[0]).pathname.split(e);return c.length<=1?e:(c.pop(),c.join(e)+e)}we(Br(n,2),"Expected at least 2 unique URIs");const[r,...i]=n,s=_h(r).pathname.split(e);let o=s.length;for(const c of i){if(c===r)continue;const u=_h(c).pathname.split(e);for(let l=0;l<o;l++)u[l]!==s[l]&&(o=l);if(o===0)return""}const a=s.slice(0,o).join(e);return a.endsWith(e)?a:a+e}function uY(t){const e="/",n=cY(t,e);return t.map(r=>{if(!r.docUri)return{view:r,parts:[]};let i=_h(r.docUri).pathname;return n.length>0?(we(i.startsWith(n),`Expect path "${i}" to start with common prefix: "${n}"`),i=i.slice(n.length)):i=i.includes(e)?i.slice(i.lastIndexOf(e)+1):i,{view:r,parts:i.split(e)}}).sort((r,i)=>{if(r.parts.length!==i.parts.length)return r.parts.length-i.parts.length;for(let s=0;s<r.parts.length;s++){const o=Td(r.parts[s],i.parts[s]);if(o!==0)return o}return Td(r.view.title??r.view.id,i.view.title??i.view.id)}).map(({parts:r,view:i})=>({...i,relativePath:r.join(e)}))}function lY(t,e){const n={tags:new Set,elements:{},relationships:{},colors:{}},r={predicates:{},dynamicPredicates:{},styles:{}};for(const h of e){const{c4Specification:p,c4Globals:m}=h;p.tags.forEach(y=>n.tags.add(y)),Object.assign(n.elements,p.elements),Object.assign(n.relationships,p.relationships),Object.assign(n.colors,p.colors),Object.assign(r.predicates,m.predicates),Object.assign(r.dynamicPredicates,m.dynamicPredicates),Object.assign(r.styles,m.styles)}function i(h,p){return Et(p,m=>{try{const y=t.lsp.DocumentLinkProvider.relativeLink(h,m.url);if(y&&y!==m.url)return{...m,relative:y}}catch(y){ct(y)}return m})}const s=Hi(n.colors,h=>ZL(h.color));function o(h){return({tags:p,links:m,style:{color:y,shape:g,icon:w,opacity:E,border:k},id:A,kind:I,title:x,description:_,technology:P,metadata:O})=>{try{const C=n.elements[I];if(!C)return Ne.warn(`No kind '${I}' found for ${A}`),null;const D=m?i(h,m):null;return y??=C.style.color,g??=C.style.shape,w??=C.style.icon,E??=C.style.opacity,k??=C.style.border,P??=C.technology,{...y&&{color:y},...g&&{shape:g},...w&&{icon:w},...O&&!Ki(O)&&{metadata:O},...C.notation&&{notation:C.notation},style:{...k&&{border:k},...uh(E)&&{opacity:E}},links:D,tags:p??null,technology:P??null,description:_??null,title:x,kind:I,id:A}}catch(C){ct(C)}return null}}const a=Ye(e,wi(h=>Et(h.c4Elements,o(h))),nt(ae),zO,_k((h,p)=>{const m=kt(p.id);return m&&at(h[m])?(ct(`No parent found for ${p.id}`),h):(h[p.id]=p,h)},{}));function c(h){return({astPath:p,source:m,target:y,kind:g,links:w,id:E,...k})=>{if(at(a[m])||at(a[y]))return Ne.warn(`Invalid relation ${E}, source: ${m}(${!!a[m]}), target: ${y}(${!!a[y]})`),null;const A=w?i(h,w):null;return qr(g)&&g in n.relationships?{...n.relationships[g],...k,...A&&{links:A},source:m,target:y,kind:g,id:E}:{...A&&{links:A},...k,source:m,target:y,id:E}}}const u=Ye(e,wi(h=>Et(h.c4Relations,c(h))),nt(ae),ra(Ga),ch(),uv(yi("id")));function l(h){const p=h.uri.toString();return m=>{let{id:y,title:g,description:w,tags:E,links:k,astPath:A,...I}=m;m.__==="element"&&at(g)&&"viewOf"in m&&(g=a[m.viewOf]?.title??null),at(g)&&y==="index"&&(g="Landscape view");const x=k?i(h,k):null;return{...I,customColorDefinitions:s,tags:E,links:x,docUri:p,description:w,title:g,id:y}}}const d=Ye(e,wi(h=>Et(h.c4Views,l(h))),uY);d.some(h=>h.id==="index")||d.unshift({__:"element",id:"index",title:"Landscape view",description:null,tags:null,links:null,customColorDefinitions:s,rules:[{include:[{wildcard:!0}]}]});const f=Ye(d,uv(yi("id")),aY);return{specification:{tags:Array.from(n.tags),elements:n.elements,relationships:n.relationships},elements:a,relations:u,globals:r,views:f}}const fb="ParsedLikeC4Model",hb="ComputedLikeC4Model";class dY{constructor(e){this.services=e,this.langiumDocuments=e.shared.workspace.LangiumDocuments;const n=e.likec4.ModelParser;e.shared.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.notifyListeners(i)}),e.shared.workspace.DocumentBuilder.onBuildPhase(Ve.Validated,async(r,i)=>{let s=[];try{Ne.debug(`[ModelBuilder] onValidated (${r.length} docs)`);for(const o of n.parse(r))s.push(o.uri)}catch(o){ct(o)}return s.length>0&&this.notifyListeners(s),await Promise.resolve()}),Ne.debug("[ModelBuilder] Created")}langiumDocuments;listeners=[];unsafeSyncBuildModel(){return this.services.WorkspaceCache.get(fb,()=>{const e=this.documents();return e.length===0?(Ne.debug("[ModelBuilder] No documents to build model from"),null):(Ne.debug(`[ModelBuilder] buildModel (${e.length} docs)`),lY(this.services,e))})}async buildModel(e){const n=this.services.WorkspaceCache;return n.has(fb)?n.get(fb):await this.services.shared.workspace.WorkspaceLock.read(async()=>(e&&await zt(e),this.unsafeSyncBuildModel()))}previousViews={};unsafeSyncBuildComputedModel(e){const n=this.services.WorkspaceCache,r=this.services.WorkspaceCache;return n.get(hb,()=>{const i=new bA(e),s=[];for(const a of ah(e.views)){const c=wd(a)?vA(a,i):wA(a,i);if(!c.isSuccess){ct(c.error);continue}s.push(c.view)}oY(s);const o=vi(s,a=>{const c=this.previousViews[a.id],u=c&&i_(a,c)?c:a;return r.set(sx(a.id),u),[a.id,u]});return this.previousViews={...o},{specification:e.specification,elements:e.elements,relations:e.relations,globals:e.globals,views:o}})}async buildComputedModel(e){const n=this.services.WorkspaceCache;return n.has(hb)?n.get(hb):await this.services.shared.workspace.WorkspaceLock.read(async()=>{e&&await zt(e);const r=this.unsafeSyncBuildModel();return r?this.unsafeSyncBuildComputedModel(r):null})}async computeView(e,n){const r=this.services.WorkspaceCache,i=sx(e);return r.has(i)?r.get(i):await this.services.shared.workspace.WorkspaceLock.read(async()=>(n&&await zt(n),r.get(i,()=>{const s=this.unsafeSyncBuildModel(),o=s?.views[e];if(!o)return Ne.warn(`[ModelBuilder] Cannot find view ${e}`),null;const a=new bA(s),c=wd(o)?vA(o,a):wA(o,a);if(!c.isSuccess)return Bt(c.error),null;let u=c.view;const l=Ye(s.views,ah(),nt(_m),nt(f=>f.id!==e),lh(f=>f.viewOf));for(const f of u.nodes)if(!f.navigateTo){const h=l[f.id];h&&(f.navigateTo=h[0].id)}const d=this.previousViews[e];return u=d&&i_(u,d)?d:u,this.previousViews[e]=u,u})))}onModelParsed(e){return this.listeners.push(e),Us.create(()=>{const n=this.listeners.indexOf(e);n>=0&&this.listeners.splice(n,1)})}documents(){return this.langiumDocuments.all.filter(Kl).toArray()}notifyListeners(e){for(const n of this.listeners)try{n(e)}catch(r){Bt(r)}}}function sx(t){return`computed-view-${t}`}const{findNodeForKeyword:fY,findNodeForProperty:Ip}=of,{getDocument:hY}=Jd;class pY{constructor(e){this.services=e,this.fqnIndex=e.likec4.FqnIndex,this.langiumDocuments=e.shared.workspace.LangiumDocuments}fqnIndex;langiumDocuments;documents(){return this.langiumDocuments.all.filter(Kl)}getParsedElement(e){const n=this.fqnIndex.getFqn(e);if(!n)return null;const r=hY(e);return Kl(r)?r.c4Elements.find(i=>i.id===n)??null:null}locateElement(e,n){const r=this.fqnIndex.byFqn(e).head(),i=r?.nameSegment??r?.selectionSegment;return!r||!i?null:{uri:r.documentUri.toString(),range:i.range}}locateRelation(e){for(const n of this.documents()){const r=n.c4Relations.find(o=>o.id===e);if(!r)continue;const i=this.services.workspace.AstNodeLocator.getAstNode(n.parseResult.value,r.astPath);if(!es(i))continue;let s=i.title?Ip(i.$cstNode,"title"):void 0;if(s??=i.kind?Ip(i.$cstNode,"kind"):void 0,s??=Ip(i.$cstNode,"target"),s??=i.$cstNode,!!s)return{uri:n.uri.toString(),range:s.range}}return null}locateViewAst(e){for(const n of this.documents()){const r=n.c4Views.find(s=>s.id===e);if(!r)continue;const i=this.services.workspace.AstNodeLocator.getAstNode(n.parseResult.value,r.astPath);if(qw(i))return{doc:n,view:r,viewAst:i}}return null}locateView(e){const n=this.locateViewAst(e);if(!n)return null;const r=n.viewAst;let i=r.name?Ip(r.$cstNode,"name"):void 0;return i??=fY(r.$cstNode,"view"),i??=r.$cstNode,i?{uri:n.doc.uri.toString(),range:i.range}:null}}function pb(...t){var e=t.length>1?t.join(":::"):t[0];return cH(e).toString(36)}function mY({nodes:t,edges:e,...n}){return{...n,nodes:Hi(t,({x:r,y:i,width:s,height:o,isCompound:a,...c})=>({...c,b:[r,i,s,o],c:a})),edges:Hi(e,({points:r,controlPoints:i,labelBBox:s,dotpos:o,...a})=>({...!!i&&{cp:i},...!!s&&{l:s},...!!o&&{dp:o},...a,p:r}))}}function gY({nodes:t,edges:e,autoLayout:n,...r}){return{...r,autoLayout:uO(n)?{direction:n}:n,nodes:Hi(t,({b:i,c:s,...o})=>({x:i[0],y:i[1],width:i[2],height:i[3],isCompound:s,...o})),edges:Hi(e,({p:i,cp:s,l:o,dp:a,...c})=>({...!!s&&{controlPoints:s},...!!o&&{labelBBox:o},...!!a&&{dotpos:a},...c,points:i}))}}const ox=500;function yY(t){const e=IW(mY(t)),n=YW(e),r=[];let i=0;for(;i<n.length;)r.push(" * "+n.slice(i,Math.min(i+ox,n.length))),i+=ox;return r.unshift("/**"," * @likec4-generated(v1)"),r.push(" */"),r.join(`
1741
+ `)}function ax(t){return t.includes("@likec4-generated")}function vY(t){if(!ax(t))throw new Error(`Not a likec4-generated comment: ${t}`);const e=t.trim().split(`
1742
+ `).filter(r=>!r.includes("**")&&!r.includes("@likec4-")&&!r.includes("*/")).map(r=>r.replaceAll("*","").trim()).join(""),n=VW(e);return gY(UW(n))}const cx=({operator:t,not:e},n)=>t.startsWith("!=")?{neq:n}:t.startsWith("=")?{eq:n}:e?{neq:n}:{eq:n};function Xl(t){switch(!0){case mK(t):{const e=t.value?.ref?.name;return we(e,"Expected tag name"),{tag:cx(t,e)}}case hK(t):{const e=t.value?.ref?.name;return we(e,"Expected kind name"),{kind:cx(t,e)}}case(HA(t)||KA(t)):return{not:Xl(t.value)};case _K(t):{const e=Xl(t.left),n=Xl(t.right),r=t.operator.toLowerCase();switch(r){case"and":{const i=[km(e)?e.and:e,km(n)?n.and:n].flat();return we(Ss(i),"Expected non-empty array"),{and:i}}case"or":{const i=[$m(e)?e.or:e,$m(n)?n.or:n].flat();return we(Ss(i),"Expected non-empty array"),{or:i}}default:Ie(r)}}default:Ie(t)}}const{getDocument:mb}=Jd;function rs(t){return qr(t)?Zt(t).split(`
1743
+ `).join(" "):void 0}function Zt(t){return qr(t)?Nv(t).trim():void 0}class wY{constructor(e){this.services=e,this.fqnIndex=e.likec4.FqnIndex,Ne.debug("[ModelParser] Created")}fqnIndex;parse(e){const n=Array.isArray(e)?e:[e],r=[];for(const i of n){if(!QA(i)){Ne.warn(`Not a FqnIndexedDocument: ${i.uri.toString(!0)}`);continue}try{r.push(this.parseLikeC4Document(i))}catch(s){Bt(new Error(`Error parsing document ${i.uri.toString()}`,{cause:s}))}}return r}parseLikeC4Document(e){const n=BK(e),{isValid:r}=GK(n);return this.parseSpecification(n,r),this.parseModel(n,r),this.parseGlobal(n,r),this.parseViews(n,r),n}parseSpecification(e,n){const{parseResult:r,c4Specification:i}=e,s=r.value.specifications.filter(n),o=s.flatMap(l=>l.elements.filter(n));for(const{kind:l,props:d}of o)try{const f=l.name;if(!ae(f))continue;if(f in i.elements){Ne.warn(`Element kind "${f}" is already defined`);continue}const h=d.find(rl),p=vi(d.filter(jA).filter(m=>qr(m.value))??[],m=>[m.key,Zt(m.value)]);i.elements[f]={...p,style:{...xp(h?.props,n)}}}catch(f){ct(f)}const a=s.flatMap(l=>l.relationships.filter(n));for(const{kind:l,props:d}of a)try{const f=l.name;if(!ae(f))continue;if(f in i.relationships){Ne.warn(`Relationship kind "${f}" is already defined`);continue}const h=vi(d.filter(UA).filter(p=>qr(p.value))??[],p=>[p.key,Zt(p.value)]);i.relationships[f]={...h,...tx(d)}}catch(f){ct(f)}const c=s.flatMap(l=>l.tags.filter(n));for(const l of c){const d=l.tag.name;ae(d)&&i.tags.add(d)}const u=s.flatMap(l=>l.colors.filter(n));for(const{name:l,color:d}of u)try{const f=l.name;if(f in i.colors){Ne.warn(`Custom color "${f}" is already defined`);continue}i.colors[f]={color:d}}catch(f){ct(f)}}parseModel(e,n){for(const r of WK(e,n)){if(Wr(r)){try{e.c4Elements.push(this.parseElement(r,n))}catch(i){ct(i)}continue}if(es(r)){try{e.c4Relations.push(this.parseRelation(r))}catch(i){ct(i)}continue}Ie(r)}}parseElement(e,n){const r=this.resolveFqn(e),i=e.kind.$refText,s=this.convertTags(e.body),o=e.body?.props.find(rl)?.props,a=xp(o,n),c=this.getMetadata(e.body?.props.find(TA)),u=this.getAstNodePath(e);let[l,d,f]=e.props??[];const h=vi(e.body?.props.filter(Yw)??[],y=>[y.key,y.value||void 0]);l=rs(l??h.title),d=Zt(h.description??d),f=rs(h.technology??f);const p=this.convertLinks(e.body),m=e.body?.props.find(Qi);if(m){const y=m.libicon?.ref?.name??m.value;ae(y)&&(a.icon=y)}return{id:r,kind:i,astPath:u,title:l??e.name,...c&&{metadata:c},...s&&{tags:s},...p&&Ss(p)&&{links:p},...ae(f)&&{technology:f},...ae(d)&&{description:d},style:a}}parseRelation(e){const n=HK(e),r=this.resolveFqn(n.target),i=this.resolveFqn(n.source),s=this.convertTags(e)??this.convertTags(e.body),o=this.convertLinks(e.body),a=e.kind?.ref?.name,c=this.getMetadata(e.body?.props.find(TA)),u=this.getAstNodePath(e),l=vi(e.body?.props.filter(Ep).filter(y=>qr(y.value))??[],y=>[y.key,y.value]),d=Ye(e.body?.props??[],nt(bp),Et(y=>y.value.view.ref?.name),nt(ae),sa()),f=Zt(e.title??l.title)??"",h=Zt(l.description),p=Zt(e.technology)??rs(l.technology),m=e.body?.props.find(ab);return{id:pb(u,i,r),astPath:u,source:i,target:r,title:f,...c&&{metadata:c},...ae(p)&&{technology:p},...ae(h)&&{description:h},...a&&{kind:a},...s&&{tags:s},...Ss(o)&&{links:o},...tx(m?.props),...d&&{navigateTo:d}}}parseGlobal(e,n){const{parseResult:r,c4Globals:i}=e,s=r.value.globals.filter(n),o=s.flatMap(c=>c.predicates.filter(n));for(const c of o)try{const u=c.name;if(!ae(u))continue;if(u in i.predicates){Ne.warn(`Global predicate named "${u}" is already defined`);continue}this.parseAndStoreGlobalPredicateGroupOrDynamic(c,u,i,n)}catch(u){ct(u)}const a=s.flatMap(c=>c.styles.filter(n));for(const c of a)try{const u=c.id.name;if(!ae(u))continue;if(u in i.styles){Ne.warn(`Global style named "${u}" is already defined`);continue}const l=this.parseGlobalStyleOrGroup(c,n);l.length>0&&(i.styles[u]=l)}catch(u){ct(u)}}parseAndStoreGlobalPredicateGroupOrDynamic(e,n,r,i){if(OA(e)){const s=this.parseGlobalPredicateGroup(e,i);s.length>0&&(r.predicates[n]=s);return}if(NA(e)){const s=this.parseGlobalDynamicPredicateGroup(e,i);s.length>0&&(r.dynamicPredicates[n]=s);return}Ie(e)}parseGlobalPredicateGroup(e,n){return e.predicates.map(r=>this.parseViewRulePredicate(r,n))}parseGlobalDynamicPredicateGroup(e,n){return e.predicates.map(r=>this.parseDynamicViewIncludePredicate(r,n))}parseGlobalStyleOrGroup(e,n){if(al(e))return[this.parseViewRuleStyle(e,n)];if(cl(e))return e.styles.map(r=>this.parseViewRuleStyle(r,n));Ie(e)}parseViews(e,n){const r=e.parseResult.value.views.filter(i=>n(i));for(const i of r){const s=i.styles.flatMap(o=>{try{return this.parseViewRuleStyleOrGlobalRef(o,n)}catch(a){return ct(a),[]}});for(const o of i.views)try{if(!n(o))continue;e.c4Views.push(ip(o)?this.parseElementView(o,s,n):this.parseDynamicElementView(o,s,n))}catch(a){ct(a)}}}parseViewRulePredicate(e,n){const r=[];let i=e.predicates;for(;i;){try{ae(i.value)&&n(i.value)&&r.unshift(this.parsePredicate(i.value,n))}catch(s){ct(s)}i=i.prev}return eb(e)?{include:r}:{exclude:r}}parsePredicate(e,n){if(nK(e))return this.parseElementPredicate(e,n);if(sK(e))return this.parseRelationPredicate(e,n);Ie(e)}parseElementExpressionsIterator(e){const n=[];let r=e;for(;r;){try{n.unshift(this.parseElementExpr(r.value))}catch(i){ct(i)}r=r.prev}return n}parseElementPredicate(e,n){if(np(e))return this.parseElementPredicateWith(e,n);if(Kw(e))return this.parseElementPredicateWhere(e);if(Bw(e))return this.parseElementExpr(e);Ie(e)}parseElementExpr(e){if($a(e))return{wildcard:!0};if(tp(e))return we(e.kind?.ref,"ElementKindExpr kind is not resolved: "+e.$cstNode?.text),{elementKind:e.kind.ref.name,isEqual:e.isEqual};if(rp(e)){we(e.tag?.ref,"ElementTagExpr tag is not resolved: "+e.$cstNode?.text);let n=e.tag.$refText;return n.startsWith("#")&&(n=n.slice(1)),{elementTag:n,isEqual:e.isEqual}}if(IA(e)){const n=Cn(e.expand);return we(n,"Element not found "+e.expand.$cstNode?.text),{expanded:this.resolveFqn(n)}}if(Vw(e)){const n=Cn(e.parent);return we(n,"Element not found "+e.parent.$cstNode?.text),{element:this.resolveFqn(n),isDescedants:!0}}if(el(e)){const n=Cn(e);return we(n,"Element not found "+e.$cstNode?.text),{element:this.resolveFqn(n)}}Ie(e)}parseElementPredicateWith(e,n){const r=this.parseElementPredicate(e.subject,n);return(e.custom?.props??[]).reduce((i,s)=>{if(ib(s)){const o=s.value.view.$refText;return ae(o)&&(i.custom.navigateTo=o),i}if(Yw(s)){if(Ft(s.value)){let o=s.key==="description"?Zt(s.value):rs(s.value);i.custom[s.key]=o||""}return i}if(Qi(s)){const o=s.libicon?.ref?.name??s.value;return Ft(o)&&(i.custom[s.key]=o),i}if(so(s)){const o=Yl(s);return Ft(o)&&(i.custom[s.key]=o),i}if(Dp(s)||Hh(s))return Ft(s.value)&&(i.custom[s.key]=s.value),i;if(gp(s))return Ft(s.value)&&(i.custom[s.key]=ex(s)),i;if(bl(s))return ae(s.value)&&(i.custom[s.key]=Zt(s.value)),i;Ie(s)},{custom:{expr:r}})}parseElementPredicateWhere(e){return{where:{expr:this.parseElementExpr(e.subject),condition:e.where?Xl(e.where):{kind:{neq:"--always-true--"}}}}}parseRelationPredicate(e,n){if(ob(e)){let r=qA(e.subject)?this.parseRelationPredicateWhere(e.subject):this.parseRelationExpr(e.subject);return this.parseRelationPredicateWith(e,r)}if(qA(e))return this.parseRelationPredicateWhere(e);if(jw(e))return this.parseRelationExpr(e);Ie(e)}parseRelationPredicateWhere(e){return{where:{expr:this.parseRelationExpr(e.subject),condition:e.where?Xl(e.where):{kind:{neq:"--always-true--"}}}}}parseRelationPredicateWith(e,n){return(e.custom?.props??[]).reduce((r,i)=>{if(Ep(i)||bl(i)||MA(i))return Ft(i.value)&&(r.customRelation[i.key]=Zt(i.value)??""),r;if(Uu(i))return ae(i.value)&&(r.customRelation[i.key]=i.value),r;if(so(i)){const s=Yl(i);return ae(s)&&(r.customRelation[i.key]=s),r}if(ml(i))return ae(i.value)&&(r.customRelation[i.key]=i.value),r;if(bp(i)){const s=i.value.view.ref?.name;return ae(s)&&(r.customRelation.navigateTo=s),r}Ie(i)},{customRelation:{relation:n}})}parseRelationExpr(e){if(Uw(e))return{source:this.parseElementExpr(e.source.from),target:this.parseElementExpr(e.target),isBidirectional:e.source.isBidirectional};if(tb(e))return{inout:this.parseElementExpr(e.inout.to)};if(sb(e))return{outgoing:this.parseElementExpr(e.from)};if(FA(e))return{incoming:this.parseElementExpr(e.to)};Ie(e)}parseViewRule(e,n){if(jh(e))return this.parseViewRulePredicate(e,n);if($K(e))return this.parseViewRuleGlobalPredicateRef(e,n);if(kA(e))return this.parseViewRuleStyleOrGlobalRef(e,n);if($p(e))return nx(e);if(Cp(e))return this.parseViewRuleGroup(e,n);Ie(e)}parseViewRuleGlobalPredicateRef(e,n){return{predicateId:e.predicate.$refText}}parseViewRuleStyleOrGlobalRef(e,n){if(Ll(e))return this.parseViewRuleStyle(e,n);if(WA(e))return this.parseViewRuleGlobalStyle(e,n);Ie(e)}parseViewRuleStyle(e,n){const r=e.props.filter(SA),i=e.target,s=e.props.find(bl);return this.parseRuleStyle(r,i,n,s)}parseViewRuleGroup(e,n){const r=[];for(const i of e.groupRules)try{if(!n(i))continue;if(jh(i)){r.push(this.parseViewRulePredicate(i,n));continue}if(Cp(i)){r.push(this.parseViewRuleGroup(i,n));continue}Ie(i)}catch(s){ct(s)}return{title:rs(e.title)??null,groupRules:r,...xp(e.props,n)}}parseRuleStyle(e,n,r,i){const s=xp(e,r),o=Zt(i?.value);return{targets:this.parseElementExpressionsIterator(n),...o&&{notation:o},style:{...s}}}parseViewRuleGlobalStyle(e,n){return{styleId:e.style.$refText}}parseViewManualLaout(e){const n=Md(e.$cstNode,["BLOCK_COMMENT"]);if(!(!n||!ax(n.text)))try{return vY(n.text)}catch(r){const i=mb(e);Ne.warn(r),Ne.warn(`Ignoring manual layout of "${e.name??"unnamed"}" at ${i.uri.fsPath}:${1+(n.range.start.line||0)}`);return}}parseDynamicParallelSteps(e){return{__parallel:e.steps.map(n=>this.parseDynamicStep(n))}}parseDynamicStep(e){const n=Cn(e.source);if(!n)throw new Error("Invalid reference to source");const r=Cn(e.target);if(!r)throw new Error("Invalid reference to target");let i=this.resolveFqn(n),s=this.resolveFqn(r);const o=Zt(e.title)??null;let a={source:i,target:s,title:o};if(e.isBackward&&(a={source:s,target:i,title:o,isBackward:!0}),Array.isArray(e.custom?.props))for(const c of e.custom.props)try{if(Ep(c)||bl(c)||MA(c)){Ft(c.value)&&(a[c.key]=Zt(c.value)??"");continue}if(Uu(c)){Ft(c.value)&&(a[c.key]=c.value);continue}if(so(c)){const u=Yl(c);Ft(u)&&(a[c.key]=u);continue}if(ml(c)){Ft(c.value)&&(a[c.key]=c.value);continue}if(bp(c)){const u=c.value.view.ref?.name;ae(u)&&(a.navigateTo=u);continue}Ie(c)}catch(u){ct(u)}return a}parseElementView(e,n,r){const i=e.body;we(i,"ElementView body is not defined");const s=this.getAstNodePath(e);let o=null;if("viewOf"in e){const p=Cn(e.viewOf),m=p&&this.resolveFqn(p);m?o=m:Ne.warn("viewOf is not resolved: "+e.$cstNode?.text)}let a=e.name;a||(a="view_"+pb(mb(e).uri.toString(),s,o??""));const c=rs(i.props.find(p=>p.key==="title")?.value)??null,u=Zt(i.props.find(p=>p.key==="description")?.value)??null,l=this.convertTags(i),d=this.convertLinks(i),f=this.parseViewManualLaout(e),h={__:"element",id:a,astPath:s,title:c,description:u,tags:l,links:Ss(d)?d:null,rules:[...n,...i.rules.flatMap(p=>{try{return r(p)?this.parseViewRule(p,r):[]}catch(m){return ct(m),[]}})],...o&&{viewOf:o},...f&&{manualLayout:f}};if(db.writeId(e,h.id),"extends"in e){const p=e.extends.view.ref;return we(p?.name,"view extends is not resolved: "+e.$cstNode?.text),Object.assign(h,{extends:p.name})}return h}parseDynamicElementView(e,n,r){const i=e.body;we(i,"DynamicElementView body is not defined");const s=i.props.filter(r),o=this.getAstNodePath(e);let a=e.name;a||(a="dynamic_"+pb(mb(e).uri.toString(),o));const c=rs(s.find(h=>h.key==="title")?.value)??null,u=Zt(s.find(h=>h.key==="description")?.value)??null,l=this.convertTags(i),d=this.convertLinks(i);db.writeId(e,a);const f=this.parseViewManualLaout(e);return{__:"dynamic",id:a,astPath:o,title:c,description:u,tags:l,links:Ss(d)?d:null,rules:[...n,...i.rules.flatMap(h=>{try{return r(h)?this.parseDynamicViewRule(h,r):[]}catch(p){return ct(p),[]}},[])],steps:i.steps.reduce((h,p)=>{try{r(p)&&(Gw(p)?h.push(this.parseDynamicParallelSteps(p)):h.push(this.parseDynamicStep(p)))}catch(m){ct(m)}return h},[]),...f&&{manualLayout:f}}}parseDynamicViewRule(e,n){if(bK(e))return this.parseDynamicViewIncludePredicate(e,n);if(wK(e))return this.parseViewRuleGlobalPredicateRef(e,n);if(kA(e))return this.parseViewRuleStyleOrGlobalRef(e,n);if($p(e))return nx(e);Ie(e)}parseDynamicViewIncludePredicate(e,n){const r=[];let i=e.predicates;for(;i;){try{if(n(i.value)){const s=this.parseElementPredicate(i.value,n);r.unshift(s)}}catch(s){ct(s)}i=i.prev}return{include:r}}resolveFqn(e){if(ga(e))return _p(e.element);const n=this.fqnIndex.getFqn(e);return we(n,`Not indexed element: ${this.getAstNodePath(e)}`),n}getAstNodePath(e){return this.services.workspace.AstNodeLocator.getAstNodePath(e)}getMetadata(e){return e?.props!=null?vi(e.props,n=>[n.key,Zt(n.value)]):void 0}convertTags(e){let n=e?.tags;if(!n)return null;const r=[];for(;n;){try{const i=n.values.map(s=>s.ref?.name).filter(ae);i.length>0&&r.unshift(...i)}catch{}n=n.prev}return Ss(r)?r:null}convertLinks(e){if(!(!e?.props||e.props.length===0))return Ye(e.props,nt(hp),wi(n=>{const r=n.value;if(ae(r)){const i=ae(n.title)?rs(n.title):void 0;return i?{url:r,title:i}:{url:r}}return[]}))}}const{findNodeForKeyword:bY,findNodeForProperty:qae}=of,EY=(t,e,n=0)=>{const r=n>0?" ".repeat(n):"";return[r+`style ${t} {`,...oa(e).map(([i,s])=>r+` ${i} ${i==="opacity"?s.toString()+"%":s}`),r+"}"]},DY=(t,e)=>n=>{if(!Ll(n))return!1;const r=n.target.value;if(!r||ae(n.target.prev)||!el(r))return!1;const i=r.el.ref;return(i?e.getFqn(i):null)===t};function TY(t,{view:e,viewAst:n,targets:r,style:i}){we(n.body,`View ${e.id} has no body`);const s=n.$cstNode;we(s,"viewCstNode");const o=ia(n.body.rules)?.$cstNode?.range.end??n.body.$cstNode?.range.end;we(o,"insertPos is not defined");const a=s.range.start.character+2,c=t.likec4.FqnIndex,u=nt(n.body.rules,Ll),l=e.__==="element"?e.viewOf:null,d=[],f=[];r.forEach(y=>{const g=TU(u,DY(y,c)),w=l&&$r(l,y)?y.substring(l.length+1):y;g?d.push({fqn:w,rule:g}):f.push({fqn:w})});const h={start:o,end:o},p=y=>{y.start.line<=h.start.line&&(y.start.line==h.start.line?h.start.character=Math.min(y.start.character,h.start.character):h.start=y.start),y.end.line>=h.end.line&&(y.end.line==h.end.line?h.end.character=Math.max(y.end.character,h.end.character):h.end=y.end)},m=[];if(f.length>0){const y=f.flatMap(({fqn:g})=>EY(g,i,a));m.push(Sn.insert(o,`
1744
+ `+y.join(`
1745
+ `))),h.start={line:o.line+1,character:a},h.end={line:o.line+y.length,character:ia(y)?.length??0}}if(d.length>0)for(const{rule:y}of d){const g=y.$cstNode;we(g,"RuleCstNode not found");for(const[w,E]of oa(i)){const k=w==="opacity"?E.toString()+"%":E,A=y.props.find(P=>P.key===w);if(A&&A.$cstNode){const{range:{start:P,end:O}}=A.$cstNode;p({start:P,end:O}),m.push(Sn.replace({start:P,end:O},w+" "+k));continue}const I=bY(g,"{")?.range.end;we(I,"Opening brace not found");const x=" ".repeat(2+g.range.start.character),_=x+w+" "+k;m.push(Sn.insert(I,`
1746
+ `+_)),p({start:{line:I.line+1,character:x.length},end:{line:I.line+1,character:_.length}})}}return{modifiedRange:h,edits:m}}const{findNodeForProperty:jae,findNodeForKeyword:RY}=of;function SY(t,{view:e,viewAst:n,layout:r}){we(n.body,`View ${e.id} has no body`);const i=n.$cstNode;we(i,"viewCstNode");const s=KK(r.direction),o=n.body.rules.findLast($p);let a=`autoLayout ${s}`;if(uh(r.rankSep)&&(a+=` ${r.rankSep}`,uh(r.nodeSep)&&(a+=` ${r.nodeSep}`)),o&&o.$cstNode)return Sn.replace(o.$cstNode.range,a);const c=RY(n.body.$cstNode,"}")?.range.start;we(c,"Closing brace not found");const u=` ${a}
1747
+ `;return Sn.insert(c,u)}function kY(t,{viewAst:e,layout:n}){we(e.$cstNode,"invalid view.$cstNode");const r=Md(e.$cstNode,["BLOCK_COMMENT"]);let i=yY(n);return e.$cstNode.range.start.character>0&&(i=iW(i,e.$cstNode.range.start.character)),r?Sn.replace(r.range,i.trimStart()):Sn.insert({line:e.$cstNode.range.start.line,character:0},i+`
1748
+ `)}class $Y{constructor(e){this.services=e,this.locator=e.likec4.ModelLocator}locator;async applyChange(e){const n=this.services.shared.lsp.Connection;we(n,"LSP Connection not available");let r=null;try{await this.services.shared.workspace.WorkspaceLock.write(async()=>{const{doc:i,edits:s,modifiedRange:o}=this.convertToTextEdit(e),a={uri:i.textDocument.uri,version:i.textDocument.version};if(!s.length)return;const c=await n.workspace.applyEdit({label:`LikeC4 - change view ${e.viewId}`,edit:{changes:{[a.uri]:s}}});if(!c.applied){n.window.showErrorMessage(`Failed to apply changes ${c.failureReason}`);return}r={uri:a.uri,range:o}})}catch(i){Je.error(`Failed to apply change ${e.change.op} ${e.viewId}`,i)}return r}convertToTextEdit({viewId:e,change:n}){const r=this.locator.locateViewAst(e);if(!r)throw new Error(`LikeC4ModelChanges: view not found: ${e}`);switch(n.op){case"change-element-style":return{doc:r.doc,...TY(this.services,{...r,targets:n.targets,style:n.style})};case"change-autolayout":{const s=SY(this.services,{...r,layout:n.layout});return{doc:r.doc,modifiedRange:s.range,edits:[s]}}case"save-manual-layout":const i=kY(this.services,{...r,layout:n.layout});return{doc:r.doc,modifiedRange:i.range,edits:[i]};default:Ie(n)}}}class CY extends ek{async computeExports(e,n){const r=[];try{const{specifications:i,models:s,views:o,globals:a,likec4lib:c}=e.parseResult.value;this.exportLibrary(c,r,e),this.exportSpecification(i,r,e),this.exportModel(s,r,e),this.exportViews(o,r,e),this.exportGlobals(a,r,e)}catch(i){Bt(i)}return r}exportViews(e,n,r){if(!(at(e)||e.length===0))for(const i of e.flatMap(s=>s.views))try{ae(i.name)&&n.push(this.descriptions.createDescription(i,i.name,r))}catch(s){Bt(s)}}exportGlobals(e,n,r){if(!(at(e)||e.length===0)){for(const i of e.flatMap(s=>s.predicates))try{const s=i;ae(s.name)&&n.push(this.descriptions.createDescription(s,s.name,r))}catch(s){Bt(s)}for(const i of e.flatMap(s=>s.styles))try{const s=i.id;ae(s.name)&&n.push(this.descriptions.createDescription(s,s.name,r))}catch(s){Bt(s)}}}exportModel(e,n,r){if(!(at(e)||e.length===0))for(const i of e.flatMap(s=>s.elements))try{Wr(i)&&ae(i.name)&&n.push(this.descriptions.createDescription(i,i.name,r))}catch(s){Bt(s)}}exportLibrary(e,n,r){if(!at(e))try{for(const i of e.flatMap(s=>s.icons))n.push(this.descriptions.createDescription(i,i.name,r))}catch(i){Bt(i)}}exportSpecification(e,n,r){if(!(at(e)||e.length===0))for(const i of e.flatMap(s=>[...s.elements,...s.relationships,...s.tags,...s.colors]))try{switch(!0){case Da(i):{ae(i.kind.name)&&n.push(this.descriptions.createDescription(i.kind,i.kind.name,r));continue}case Sp(i):{ae(i.tag.name)&&n.push(this.descriptions.createDescription(i.tag,"#"+i.tag.name,r));continue}case Ra(i):{ae(i.kind.name)&&n.push(this.descriptions.createDescription(i.kind,i.kind.name,r),this.descriptions.createDescription(i.kind,"."+i.kind.name,r));continue}case Rp(i):{ae(i.name.name)&&n.push(this.descriptions.createDescription(i.name,i.name.name,r));continue}default:Ie(i)}}catch(s){Bt(s)}}computeLocalScopes(e,n){return new Promise(r=>{const i=e.parseResult.value,s=new Mr;for(const o of i.models)try{const a=this.processContainer(o,s,e);s.addAll(i,a.values())}catch(a){Bt(a)}r(s)})}processContainer(e,n,r){const i=new Mr,s=new Mr;for(const o of e.elements){if(es(o))continue;let a;if(Wr(o)?(ae(o.name)&&i.add(o.name,this.descriptions.createDescription(o,o.name,r)),a=o.body):ga(o)&&(a=o.body),a&&a.elements.length>0)try{const c=this.processContainer(a,n,r);for(const[u,l]of c)s.add(u,l)}catch(c){Bt(c)}}if(s.size>0)for(const[o,a]of s.entriesGroupedByKey())!i.has(o)&&a.length===1&&i.add(o,a[0]);return n.addAll(e,i.values()),i}}const{getDocument:_Y}=Jd;class AY extends sk{fqnIndex;constructor(e){super(e),this.fqnIndex=e.likec4.FqnIndex}directChildrenOf(e){return this.fqnIndex.directChildrenOf(e)}uniqueDescedants(e){return new xt(()=>{const n=e(),r=n&&this.fqnIndex.getFqn(n);return r?this.fqnIndex.uniqueDescedants(r).iterator():null},n=>n?n.next():Yt)}scopeElementRef(e){return this.uniqueDescedants(()=>e.el.ref)}scopeExtendElement({element:e}){return et([e.el.$nodeDescription]).nonNullable().concat(this.uniqueDescedants(()=>Cn(e)))}scopeElementView({viewOf:e,extends:n}){return e?et([e.el.$nodeDescription]).nonNullable().concat(this.uniqueDescedants(()=>Cn(e))):n?et([n]).flatMap(r=>{const i=r.view.ref;return i?this.scopeElementView(i):Fo}):Fo}getScope(e){try{const n=this.reflection.getReferenceType(e);if(n!==Gr)return this.getGlobalScope(n);try{const r=e.container;if(PA(r)&&e.property==="el"){const i=r.parent;return i?new eu(this.directChildrenOf(_p(i))):this.getGlobalScope(n)}if(el(r)&&e.property==="el"){const i=r.parent;if(i)return new eu(this.scopeElementRef(i));if(e.reference.$refText==="this"||e.reference.$refText==="it"){const s=wn(r,Wr);return s?new tk([this.descriptions.createDescription(s,e.reference.$refText)]):nk}}return this.computeScope(e)}catch(r){return Ne.warn(r),this.getGlobalScope(n)}}catch(n){return Ne.warn(n),nk}}computeScope(e){const n=this.reflection.getReferenceType(e);we(n===Gr,"Invalid reference type");const r=[],i=_Y(e.container).precomputedScopes;if(i){const s=a=>this.reflection.isSubtype(a.type,n);let o=e.container;for(;o;){const a=i.get(o).filter(s);a.length>0&&r.push(et(a)),Zw(o)&&r.push(this.scopeExtendElement(o.$container)),Xw(o)&&r.push(this.scopeElementView(o.$container)),o=o.$container}}return r.reduceRight((s,o)=>this.createScope(o,s),this.getGlobalScope(n))}getGlobalScope(e){return new eu(this.indexManager.allElements(e))}}class xY{constructor(e){this.services=e}disposables=[];init(){const e=this.services.likec4.ModelBuilder,n=this.services.likec4.ModelLocator,r=this.services.likec4.ModelChanges,i=this.services.shared.lsp.Connection;if(!i){Ne.info("[ServerRpc] no connection, not initializing");return}Ne.info("[ServerRpc] init");const s=this.services.shared.workspace.LangiumDocuments,o=this.services.shared.workspace.DocumentBuilder,a=AU(()=>{i.sendNotification(ZW,"").catch(u=>(Ne.error(`[ServerRpc] error sending onDidChangeModel: ${u}`),Promise.resolve()))},{timing:"both",waitMs:300,maxWaitMs:600});let c=!0;this.disposables.push(Us.create(()=>{a.cancel()}),e.onModelParsed(()=>a.call()),i.onRequest(eH,async({cleanCaches:u},l)=>(u&&this.services.WorkspaceCache.clear(),{model:await e.buildComputedModel(l)})),i.onRequest(QW,async u=>({model:await e.buildModel(u)})),i.onRequest(tH,async({viewId:u},l)=>({view:await e.computeView(u,l)})),i.onRequest(nH,async({docs:u},l)=>{const d=u.map(p=>Jt.parse(p)),f=p=>d.every(m=>!Dt.equals(m,p)),h=s.all.filter(p=>Ap(p)&&f(p.uri)&&p.uri.scheme!==WC).map(p=>p.uri).toArray();Ne.debug(`[ServerRpc] received request to build:
1749
+ changed (total ${d.length}):${u.map(p=>`
1750
+ - `+p).join("")}
1751
+ deleted (total ${h.length}):${h.map(p=>`
1752
+ - `+p.toString()).join(`
1753
+ `)}`),!c&&d.length+h.length>0&&(await Promise.allSettled([...d,...h].map(async p=>{const m=p.toString();Ne.debug(`clear diagnostics for ${m}`);try{await i.sendDiagnostics({uri:m,diagnostics:[]})}catch(y){Ne.warn(`error clearing diagnostics for ${m}: ${y}`)}})),await zt(l)),c=!1,await o.update(d,h,l)}),i.onRequest(rH,u=>{if("element"in u)return n.locateElement(u.element,u.property??"name");if("relation"in u)return n.locateRelation(u.relation);if("view"in u)return n.locateView(u.view);Ie(u)}),i.onRequest(iH,async(u,l)=>await r.applyChange(u)))}dispose(){let e;for(;e=this.disposables.pop();)try{e.dispose()}catch(n){Bt(n)}}}class IY{constructor(e){this.services=e}getSymbolKind(e){const n=vt(e)?e.$type:e.type,r=(...i)=>i.some(s=>this.services.AstReflection.isSubtype(n,s));switch(!0){case r(Gr,ma):return mr.Constructor;case r(wa,ba,Sa):return mr.Namespace;case r(io):return mr.Class;case r(ns,ao,oo,ka):return mr.EnumMember;case r(ts,Ta):return mr.Event;case r(Zi,Ea):return mr.TypeParameter}return mr.Field}getCompletionItemKind(e){const n=vt(e)?e.$type:e.type,r=(...i)=>i.some(s=>this.services.AstReflection.isSubtype(n,s));switch(!0){case r(oo):return Ot.Color;case r(Gr,ma):return Ot.Constructor;case r(wa,ba,Sa):return Ot.Module;case r(io):return Ot.Class;case r(ns,ao,oo,ka):return Ot.EnumMember;case r(ts,Ta):return Ot.Event;case r(Zi,Ea):return Ot.TypeParameter;default:return Ot.Reference}}}class PY extends ak{documentFactory;constructor(e){super(e),this.documentFactory=e.workspace.LangiumDocumentFactory}async loadAdditionalDocuments(e,n){n(this.documentFactory.fromString(XW,Jt.parse(JW))),await super.loadAdditionalDocuments(e,n)}workspace(){return this.folders&&Ed(this.folders,1)?this.folders[0]:null}get workspaceUri(){const e=this.workspace();return we(e,"Workspace not initialized"),Jt.parse(e.uri)}get workspaceURL(){const e=this.workspace();return we(e,"Workspace not initialized"),new URL(e.uri)}}class NY extends vC{}const OY=t=>(e,n)=>{const r=rx(e.value);switch(!0){case tp(r):case rp(r):case $a(r):{n("warning","Predicate is ignored, as not supported in dynamic views",{node:e});return}}},FY=t=>{const e=t.likec4.FqnIndex;return(n,r)=>{try{const i=Cn(n.source),s=i&&e.getFqn(i);s||r("error","Source not found (not parsed/indexed yet)",{node:n,property:"source"});const o=Cn(n.target),a=o&&e.getFqn(o);a||r("error","Target not found (not parsed/indexed yet)",{node:n,property:"target"}),s&&a&&($r(s,a)||$r(a,s))&&r("error","Invalid parent-child relationship",{node:n})}catch(i){Bt(i)}}},Pp=["this","it","self","super","likec4lib","global"];function Np(t){return async(e,n,r)=>{r&&await zt(r);try{await t(e,n,r)}catch(i){ct(i)}}}const{getDocument:LY}=Jd,MY=t=>{const e=t.likec4.FqnIndex,n=t.workspace.AstNodeLocator;return Np((r,i)=>{const s=e.getFqn(r);if(!s){i("error","Not indexed element",{node:r,property:"name"});return}Pp.includes(r.name)&&i("error",`Reserved word: ${r.name}`,{node:r,property:"name"});const o=LY(r).uri,a=n.getAstNodePath(r),c=e.byFqn(s).filter(u=>u.documentUri!==o||u.path!==a).head();if(c){const u=c.documentUri!==o;i("error",`Duplicate element name ${r.name!==s?r.name+" ("+s+")":r.name}`,{node:r,property:"name",...u&&{relatedInformation:[{location:{range:c.nameSegment?.range??c.selectionSegment?.range,uri:c.documentUri.toString()},message:"conflicting element"}]}})}})},zY=t=>(e,n)=>{const r=parseFloat(e.value);(isNaN(r)||r<0||r>100)&&n("warning","Value ignored, must be between 0% and 100%",{node:e,property:"value"})},BY=t=>(e,n)=>{const r=e.$container;r.props.some(i=>Qi(i)&&i!==e)&&n("error","Icon must be defined once",{node:e}),rl(r)&&ha(r.$container)&&r.$container.props.some(i=>Qi(i))&&n("warning","Redundant as icon defined on element",{node:e})},qY=t=>(e,n)=>{Sc(e,Hw)||n("error","Notes can be defined only inside dynamic view",{node:e})},jY=t=>{const e=t.likec4.FqnIndex;return Np((n,r)=>{const i=Cn(n.target),s=i&&e.getFqn(i);s||r("error","Target not resolved",{node:n,property:"target"});let o;if(Ft(n.source)){if(o=Cn(n.source),!o)return r("error","Source not resolved",{node:n,property:"source"})}else{if(!ha(n.$container))return r("error","Sourceless relation must be nested",{node:n});o=n.$container.$container}const a=e.getFqn(o);a||r("error","Source not resolved",{node:n}),a&&s&&Ma(a,s)&&r("error","Invalid parent-child relationship",{node:n})})},UY=t=>Np((e,n)=>{e.$container.tags?.values&&e.tags?.values&&n("error","Relation cannot have tags in both header and body",{node:e.tags})}),GY=t=>(e,n)=>{e.$containerIndex&&e.$containerIndex>0&&n("warning","Prefer one specification per document",{node:e,property:"name"})},WY=t=>(e,n)=>{e.$containerIndex&&e.$containerIndex>0&&n("warning","Prefer one model per document",{node:e,property:"name"})},HY=t=>(e,n)=>{e.$containerIndex&&e.$containerIndex>0&&n("warning","Prefer one global block per document",{node:e,property:"name"})},VY=t=>{const e=t.shared.workspace.IndexManager;return Np((n,r)=>{Pp.includes(n.name)&&r("error",`Reserved word: ${n.name}`,{node:n,property:"name"});const i=e.allElements(Zi).filter(s=>s.name===n.name&&s.node!==n).head();if(i){const s=i.documentUri!==sn(n).uri;r("error",`Duplicate element kind '${n.name}'`,{node:n,property:"name",...s&&{relatedInformation:[{location:{range:i.nameSegment.range,uri:i.documentUri.toString()},message:"conflicting definition"}]}})}})},KY=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{const i="#"+n.name,s=e.allElements(ns).filter(o=>o.name===i&&o.node!==n).head();if(s){const o=s.documentUri!==sn(n).uri;r("error",`Duplicate tag '${n.name}'`,{node:n,property:"name",...o&&{relatedInformation:[{location:{range:s.nameSegment.range,uri:s.documentUri.toString()},message:"conflicting definition"}]}})}}},YY=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{Pp.includes(n.name)&&r("error",`Reserved word: ${n.name}`,{node:n,property:"name"}),e.allElements(ts).filter(i=>i.name===n.name).limit(2).count()>1&&r("error",`Duplicate RelationshipKind '${n.name}'`,{node:n,property:"name"})}},ux=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{const i=e.allElements(va),s=e.allElements(ya);i.concat(s).filter(o=>o.name===n.name).limit(2).count()>1&&r("error",`Duplicate GlobalPredicateGroup or GlobalDynamicPredicateGroup name '${n.name}'`,{node:n,property:"name"})}},XY=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{e.allElements(ul).filter(i=>i.name===n.name).limit(2).count()>1&&r("error",`Duplicate GlobalStyleId name '${n.name}'`,{node:n,property:"name"})}},JY=t=>{const e=t.shared.workspace.IndexManager;return(n,r)=>{n.name&&(Pp.includes(n.name)&&r("error",`Reserved word: ${n.name}`,{node:n,property:"name"}),e.allElements(io).filter(i=>i.name===n.name).limit(2).count()>1&&r("error",`Duplicate view '${n.name}'`,{node:n,property:"name"}))}},ZY=t=>(e,n)=>{const r=wn(e,jh);op(r)&&n("error",'Invalid usage inside "exclude"',{node:e});const i=Kw(e.subject)?e.subject.subject:e.subject;switch(!0){case el(i):case Vw(i):case IA(i):case $a(i):return;case tp(i):case rp(i):n("error","Invalid target (expect reference to specific element)",{node:e,property:"subject"});return;default:Ie(i)}},QY=t=>(e,n)=>{Sc(e,jw)&&n("warning","Redundant usage, expand predicate resolves parent element only when used in relations",{node:e})},eX=t=>(e,n)=>{if($a(e.to)&&!tb(e.$container)){const r=wn(e,ip);at(r?.viewOf)&&n("warning","Predicate is ignored as it concerns all relationships",{node:e})}},tX=t=>(e,n)=>{if($a(e.from)&&!Uw(e.$container)){const r=wn(e,ip);at(r?.viewOf)&&n("warning","Predicate is ignored as it concerns all relationships",{node:e})}},nX=t=>(e,n)=>{const r=wn(e,jh);op(r)&&n("error",'Invalid usage inside "exclude"',{node:e})};function rX(t){Ne.info("registerValidationChecks"),t.validation.ValidationRegistry.register({NotesProperty:qY(),OpacityProperty:zY(),IconProperty:BY(),SpecificationRule:GY(),Model:WY(),Globals:HY(),GlobalPredicateGroup:ux(t),GlobalDynamicPredicateGroup:ux(t),GlobalStyleId:XY(t),DynamicViewStep:FY(t),LikeC4View:JY(t),Element:MY(t),ElementKind:VY(t),Relation:jY(t),RelationBody:UY(),Tag:KY(t),DynamicViewPredicateIterator:OY(),ElementPredicateWith:ZY(),RelationPredicateWith:nX(),ExpandElementExpression:QY(),RelationshipKind:YY(t),IncomingRelationExpression:eX(),OutgoingRelationExpression:tX()});const e=t.shared.lsp.Connection;e&&t.shared.workspace.DocumentBuilder.onUpdate((n,r)=>{for(const i of r)Ne.debug(`clear diagnostics for deleted ${i.path}`),e.sendDiagnostics({uri:i.toString(),diagnostics:[]})})}function iX(t,e){return[t,e]=lx(t,e)>0?[e,t]:[t,e],sX(t.range,e.range.start)}function lx(t,e){const n=t.range.start.line-e.range.start.line;return n!==0?n:t.range.start.character-e.range.start.character}function sX(t,e){return!(e.line<t.start.line||e.line>t.end.line||e.line==t.start.line&&e.character<t.start.character||e.line==t.end.line&&e.character>t.end.character)}function dx(t){return t.range.start.line!=t.range.end.line}const ue={newLine:Yi.newLine({allowMore:!0}),oneSpace:Yi.oneSpace(),noSpace:Yi.noSpace(),indent:Yi.indent({allowMore:!0}),noIndent:Yi.noIndent()};class oX extends pG{format(e){this.removeIndentFromTopLevelStatements(e),this.indentContentInBraces(e),this.formatSpecificationRule(e),this.formatGlobals(e),this.formatElementDeclaration(e),this.formatRelation(e),this.formatMetadataProperty(e),this.formatView(e),this.formatViewRuleGroup(e),this.formatViewRuleGlobalStyle(e),this.formatIncludeExcludeExpressions(e),this.formatWhereExpression(e),this.formatAutolayoutProperty(e),this.formatWithPredicate(e),this.formatViewRuleStyle(e),this.formatLeafProperty(e),this.formatLinkProperty(e),this.formatNavigateToProperty(e),this.formatTags(e)}formatTags(e){this.on(e,ub,(n,r)=>{r.cst(Bo(n.$cstNode,"values").slice(1)).prepend(ue.oneSpace),r.keywords(",").prepend(ue.noSpace).append(ue.oneSpace)})}formatRelation(e){this.on(e,es,(n,r)=>{const i=n?.source?.$cstNode?[n?.source?.$cstNode]:[];r.cst(i).append(ue.oneSpace),r.keywords("]->").prepend(ue.noSpace),r.keywords("-[").append(ue.noSpace),r.properties("target","title","technology","tags").prepend(ue.oneSpace)}),this.on(e,Hw,(n,r)=>{r.keywords("->","<-").surround(ue.oneSpace);const i=r.property("kind");i.nodes[0]?.text.startsWith(".")&&i.surround(ue.oneSpace),r.keywords("]->").prepend(ue.noSpace).append(ue.oneSpace),r.keywords("-[").prepend(ue.oneSpace).append(ue.noSpace),r.properties("title").prepend(ue.oneSpace)}),this.on(e,Uw)?.property("target").prepend(ue.oneSpace),this.on(e,sb,(n,r)=>{r.property("from").append(ue.oneSpace),r.keywords("]->").prepend(ue.noSpace),r.keywords("-[").append(ue.noSpace)}),this.on(e,FA)?.keywords("->").append(ue.oneSpace),this.on(e,tb)?.keyword("->").prepend(ue.oneSpace)}removeIndentFromTopLevelStatements(e){(rb(e)||cb(e)||pp(e)||LA(e)||Qw(e))&&this.getNodeFormatter(e).keywords("specification","model","views","likec4lib","global").prepend(ue.noIndent)}indentContentInBraces(e){if(LA(e)||cb(e)||Da(e)||Ra(e)||Qw(e)||al(e)||cl(e)||rb(e)||ha(e)||Zw(e)||BA(e)||ab(e)||SK(e)||pp(e)||Xw(e)||AA(e)||Ll(e)||Cp(e)||gK(e)||yK(e)||rl(e)||Gw(e)){const n=this.getNodeFormatter(e),r=n.keywords("{"),i=n.keywords("}"),s=n.interior(r,i);let o=null;for(const a of s.nodes)(!o||!iX(o,a))&&n.cst([a]).prepend(ue.indent),o=a;r.prepend(ue.noIndent).prepend(ue.oneSpace),i.prepend(ue.noIndent).prepend(Yi.newLine({allowMore:!0}))}}appendKeywordsWithSpace(e){this.on(e,DK)?.keywords("element").append(ue.oneSpace)}formatView(e){this.on(e,ip,(n,r)=>{(n.extends||n.viewOf||n.name)&&r.keywords("view").append(ue.oneSpace),r.keywords("of","extends").surround(ue.oneSpace)}),this.on(e,vK)?.keywords("dynamic","view").append(ue.oneSpace)}formatLeafProperty(e){if(Yw(e)||Ep(e)||CK(e)||bl(e)||jA(e)||UA(e)||so(e)||ml(e)||Uu(e)||Qi(e)||Dp(e)||Hh(e)||gp(e)){const n=this.getNodeFormatter(e),r=n.keyword(":"),i=n.keywords("title","description","technology","notation","color","line","head","tail","icon","shape","border","opacity");r.nodes.length===0?i.append(ue.oneSpace):r.prepend(ue.noSpace).append(ue.oneSpace),n.keyword(";").prepend(ue.noSpace).append(ue.newLine)}}formatLinkProperty(e){this.on(e,hp,(n,r)=>{r.keyword("link").append(ue.oneSpace),r.property("value").append(ue.oneSpace),r.keyword(":").prepend(ue.noSpace).append(ue.oneSpace),r.keyword(";").prepend(ue.noSpace).append(ue.newLine)})}formatNavigateToProperty(e){this.on(e,ib)?.property("key").append(ue.oneSpace)}formatAutolayoutProperty(e){this.on(e,$p,(n,r)=>{r.keyword("autoLayout").append(ue.oneSpace),r.property("rankSep").prepend(ue.oneSpace),r.property("nodeSep").prepend(ue.oneSpace)})}formatMetadataProperty(e){this.on(e,RK,(n,r)=>{r.property("key").append(ue.oneSpace),r.keyword(":").prepend(ue.noSpace).append(ue.oneSpace),r.keyword(";").prepend(ue.noSpace).append(ue.newLine)})}formatElementDeclaration(e){this.on(e,Wr,(n,r)=>{const i=An(n.$cstNode,"kind"),s=An(n.$cstNode,"name");s&&i&&(lx(s,i)>0?r.cst([i]).append(ue.oneSpace):(r.cst([s]).append(ue.oneSpace),r.cst([i]).prepend(ue.oneSpace))),r.properties("props").prepend(ue.oneSpace)})}formatGlobals(e){this.on(e,al,(n,r)=>{r.keyword("style").append(ue.oneSpace),r.property("id").append(ue.oneSpace)}),this.on(e,cl,(n,r)=>{r.keyword("styleGroup").append(ue.oneSpace)})}formatSpecificationRule(e){if((Da(e)||Ra(e)||Sp(e))&&this.getNodeFormatter(e).keywords("element","relationship","tag").append(ue.oneSpace),Rp(e)){const n=this.getNodeFormatter(e);n.keyword("color").append(ue.oneSpace),n.property("name").append(ue.oneSpace)}}formatWithPredicate(e){const n=this.getNodeFormatter(e);(np(e)||ob(e))&&n.keyword("with").prepend(ue.oneSpace)}formatViewRuleGlobalStyle(e){this.on(e,WA,(n,r)=>{r.keywords("global","style").append(ue.oneSpace)})}formatViewRuleGroup(e){this.on(e,Cp,(n,r)=>{r.keyword("group").append(ue.oneSpace)})}formatViewRuleStyle(e){this.on(e,Ll)?.keyword("style").append(ue.oneSpace),this.on(e,EK)?.keyword(",").prepend(ue.noSpace).append(ue.oneSpace)}formatWhereExpression(e){if((oK(e)||rK(e))&&this.getNodeFormatter(e).keyword("where").append(ue.oneSpace),(pK(e)||fK(e))&&this.getNodeFormatter(e).property("operator").surround(ue.oneSpace),(HA(e)||KA(e))&&this.getNodeFormatter(e).keyword("not").append(ue.oneSpace),$A(e)||xK(e)||AK(e)||_A(e)||IK(e)||VA(e)){const n=this.getNodeFormatter(e);n.property("operator").surround(ue.oneSpace),n.property("not").surround(ue.oneSpace)}}formatIncludeExcludeExpressions(e){if(zw(e)||eb(e)||op(e)){const n=this.getNodeFormatter(e);(!e.$cstNode||!dx(e.$cstNode))&&n.keywords("include","exclude").append(ue.oneSpace)}if(xA(e)||zA(e)||zA(e)){const n=this.getNodeFormatter(e),r=this.findPredicateExpressionRoot(e),i=r?.$cstNode&&dx(r?.$cstNode);i&&n.property("value").prepend(ue.indent),n.keyword(",").prepend(ue.noSpace).append(i?ue.newLine:ue.oneSpace)}}findPredicateExpressionRoot(e){let n=e.$container;for(;;){if(!n||zw(n)||eb(n)||op(n))return n;n=n.$container}}on(e,n,r){const i=n(e)?this.getNodeFormatter(e):void 0;return r&&i&&r(e,i),i}}const aX={lsp:{NodeKindProvider:t=>new IY(t),WorkspaceSymbolProvider:t=>new NY(t)},workspace:{WorkspaceManager:t=>new PY(t)}};function Qt(t){return e=>new t(e)}const cX={WorkspaceCache:t=>new ik(t.shared),Rpc:Qt(xY),likec4:{ModelChanges:Qt($Y),FqnIndex:Qt(sY),ModelParser:Qt(wY),ModelBuilder:Qt(dY),ModelLocator:Qt(pY)},lsp:{CompletionProvider:Qt(XK),DocumentHighlightProvider:Qt(JK),DocumentSymbolProvider:Qt(QK),SemanticTokenProvider:Qt(tY),HoverProvider:Qt(eY),CodeLensProvider:Qt(YK),DocumentLinkProvider:Qt(ZK),Formatter:Qt(oX)},references:{ScopeComputation:Qt(CY),ScopeProvider:Qt(AY)}};function uX(t,e,n,r){const i=lX(t),s=[lG({shared:i}),FK,cX,e,n,r].reduce(fx,{}),o=sh(s);return i.ServiceRegistry.register(o),rX(o),t.connection?o.Rpc.init():i.workspace.ConfigurationProvider.initialized({}),{shared:i,likec4:o}}function lX(t={}){const e={...Rk,...t};return t.connection&&(zK(t.connection),MK(t.connection)),sh(fG(e),OK,aX)}function fx(t,e){if(e){for(const[n,r]of Object.entries(e))if(r!==void 0){const i=t[n];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?t[n]=fx(i,r):t[n]=r}}return t}function hx(t){return typeof t=="object"&&t!==null&&typeof t.id=="string"}function gb(t){return typeof t=="object"&&t!==null&&t.$$type==="Node"&&typeof t.id=="string"}function px(t){return gb(t)||hx(t)}function Jl(t){return typeof t=="string"||px(t)}function dX(t){return Array.isArray(t)&&t.every(Jl)}function fX(t){return["n","ne","e","se","s","sw","w","nw","c"].includes(t)}function mx(t){if(px(t))return t;const[e,n,r]=t.split(":");return fX(r)?{id:e,port:n,compass:r}:{id:e,port:n}}function hX(t){if(t.length<2&&(Jl(t[0])&&Jl(t[1]))===!1)throw Error("EdgeTargets must have at least 2 elements.");return t.map(e=>mx(e))}const Op=Object.seal({Graph:null,Digraph:null,Subgraph:null,Node:null,Edge:null});function pX(t){return Object.assign(Object.seal(Object.assign({},Op)),t)}function mX(...t){const[e,...n]=t;return(...r)=>n.reduce((i,s)=>s(i),e(...r))}function Jn(t,...e){return mX(t,...e)}const gX=t=>(...e)=>n=>t(n,...e),yX=t=>({[Symbol.iterator]:t}),wr=gX((t,e)=>Array.from(yX(function*(){for(const n of t)yield e(n)})));class gx{options;getLocation(){return this.options?.locationFunction?.()??null}constructor(e){this.options=e}createElement(e,n,r=[]){return{location:this.getLocation(),...n,type:e,children:r}}}const Ge=gx.prototype.createElement.bind(new gx),vX=/\r?\n/;function br(t){return e=>e.join(t)}function wX(t){return e=>t+e+t}function is(t,e){return n=>t+n+e}function Fp(t){return e=>t+e}const yx=t=>t.replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/"/g,'\\"'),Lp=t=>t.split(vX),Zl=(t,e,n)=>Jn(Lp,wr(Fp(t==="space"?" ".repeat(e):`
1754
+ `)),br(n)),co=t=>{switch(t){case"crlf":return`\r
1755
+ `;case"lf":return`
1756
+ `}},bX={match(t){return t.type==="AttributeList"},print(t,e){if(e.children.length===0)return`${e.kind.toLocaleLowerCase()} [];`;const n=co(t.endOfLine);return Jn(wr(t.print),br(n),Zl(t.indentStyle,t.indentSize,n),is(`${e.kind.toLocaleLowerCase()} [${n}`,`${n}];`))(e.children)}},EX={match(t){return t.type==="Attribute"},print(t,e){return`${t.print(e.key)} = ${t.print(e.value)};`}},DX={match(t){return t.type==="Comment"},print(t,e){const n=co(t.endOfLine);switch(e.kind){case"Block":return Jn(Lp,wr(Fp(" * ")),br(n),is(`/**${n}`,`${n} */`))(e.value);case"Macro":return Jn(Lp,wr(Fp("# ")),br(n))(e.value);case"Slash":default:return Jn(Lp,wr(Fp("// ")),br(n))(e.value)}}},TX={match(t){return t.type==="Dot"},print(t,e){return e.children.map(t.print).join(co(t.endOfLine))}},RX={match(t){return t.type==="Edge"},print(t,e){const n=Jn(wr(t.print),br(t.directed?" -> ":" -- "))(e.targets);if(e.children.length===0)return`${n};`;const r=co(t.endOfLine),i=Jn(wr(t.print),br(r),Zl(t.indentStyle,t.indentSize,r),is(`[${r}`,`${r}];`))(e.children);return`${n} ${i}`}},SX={match(t){return t.type==="Graph"},print(t,e){t.directed=e.directed;const n=[];if(e.strict&&n.push("strict"),n.push(e.directed?"digraph":"graph"),e.id&&n.push(t.print(e.id)),e.children.length===0)return`${n.join(" ")} {}`;const r=co(t.endOfLine),i=Jn(wr(t.print),br(r),Zl(t.indentStyle,t.indentSize,r),is(`{${r}`,`${r}}`))(e.children);return`${n.join(" ")} ${i}`}},kX=Jn(yx,wX('"')),$X=is("<",">"),CX={match(t){return t.type==="Literal"},print(t,e){switch(e.quoted){case"html":return $X(e.value);case!0:return kX(e.value);case!1:default:return yx(e.value)}}},_X={match(t){return t.type==="Node"},print(t,e){const n=t.print(e.id);if(e.children.length===0)return`${n};`;const r=co(t.endOfLine),i=Jn(wr(t.print),br(r),Zl(t.indentStyle,t.indentSize,r),is(`[${r}`,`${r}];`))(e.children);return`${n} ${i}`}},AX={match(t){return t.type==="NodeRefGroup"},print(t,e){return Jn(wr(t.print),br(" "),is("{","}"))(e.children)}},xX={match(t){return t.type==="NodeRef"},print(t,e){const n=[t.print(e.id)];return e.port&&n.push(t.print(e.port)),e.compass&&n.push(t.print(e.compass)),n.join(":")}},IX={match(t){return t.type==="Subgraph"},print(t,e){const n=["subgraph"];if(e.id&&n.push(t.print(e.id)),e.children.length===0)return`${n.join(" ")} {}`;const r=co(t.endOfLine),i=Jn(wr(t.print),br(r),Zl(t.indentStyle,t.indentSize,r),is(`{${r}`,`${r}}`))(e.children);return`${n.join(" ")} ${i}`}},PX=[bX,EX,DX,TX,RX,SX,CX,_X,AX,xX,IX];class NX{options;#e=[...PX];constructor(e={}){this.options=e}print(e){const n=[...this.#e],{indentSize:r=2,indentStyle:i="space",endOfLine:s="lf"}=this.options,o={directed:!0,indentSize:r,indentStyle:i,endOfLine:s,print(a){for(const c of n)if(c.match(a))return c.print(o,a);throw Error()}};return o.print(e)}}function OX(t,e){const n=new NX(e).print(t);if(!n)throw new Error;return n}function Mp(t,e){if(typeof e=="string"){const n=e.trim();return/^<.+>$/ms.test(n)?Ge("Attribute",{key:Ge("Literal",{value:t,quoted:!1},[]),value:Ge("Literal",{value:n.slice(1,n.length-1),quoted:"html"},[])},[]):Ge("Attribute",{key:Ge("Literal",{value:t,quoted:!1},[]),value:Ge("Literal",{value:e,quoted:!0},[])},[])}return Ge("Attribute",{key:Ge("Literal",{value:t,quoted:!1},[]),value:Ge("Literal",{value:String(e),quoted:!1},[])},[])}function uo(t,e){return Ge("Comment",{kind:e,value:t},[])}function vx(t,e){return Array.from(function*(){for(const[n,r]of e.values)yield Mp(n,r);for(const n of Object.values(e.attributes))n.size>0&&(n.comment&&(yield uo(n.comment,t.commentKind)),yield t.convert(n));for(const n of e.nodes)n.comment&&(yield uo(n.comment,t.commentKind)),yield t.convert(n);for(const n of e.subgraphs)n.comment&&(yield uo(n.comment,t.commentKind)),yield t.convert(n);for(const n of e.edges)n.comment&&(yield uo(n.comment,t.commentKind)),yield t.convert(n)}())}const FX={match(t){return t.$$type==="AttributeList"},convert(t,e){return Ge("AttributeList",{kind:e.$$kind},e.values.map(([n,r])=>Mp(n,r)))}},LX={match(t){return t.$$type==="Edge"},convert(t,e){return Ge("Edge",{targets:e.targets.map(n=>gb(n)?Ge("NodeRef",{id:Ge("Literal",{value:n.id,quoted:!0},[])},[]):hx(n)?Ge("NodeRef",{id:Ge("Literal",{value:n.id,quoted:!0},[]),port:n.port?Ge("Literal",{value:n.port,quoted:!0},[]):void 0,compass:n.compass?Ge("Literal",{value:n.compass,quoted:!0},[]):void 0},[]):Ge("NodeRefGroup",{},n.map(r=>gb(r)?Ge("NodeRef",{id:Ge("Literal",{value:r.id,quoted:!0},[])},[]):Ge("NodeRef",{id:Ge("Literal",{value:r.id,quoted:!0},[]),port:r.port?Ge("Literal",{value:r.port,quoted:!0},[]):void 0,compass:r.compass?Ge("Literal",{value:r.compass,quoted:!0},[]):void 0},[]))))},[...e.attributes.comment?[uo(e.attributes.comment,t.commentKind)]:[],...e.attributes.values.map(([n,r])=>Mp(n,r))])}},MX={match(t){return t.$$type==="Graph"},convert(t,e){return Ge("Dot",{},[...e.comment?[uo(e.comment,t.commentKind)]:[],Ge("Graph",{directed:e.directed,strict:e.strict,id:e.id?Ge("Literal",{value:e.id,quoted:!0},[]):void 0},vx(t,e))])}},zX={match(t){return t.$$type==="Node"},convert(t,e){return Ge("Node",{id:Ge("Literal",{value:e.id,quoted:!0},[])},[...e.attributes.comment?[uo(e.attributes.comment,t.commentKind)]:[],...e.attributes.values.map(([n,r])=>Mp(n,r))])}},BX={match(t){return t.$$type==="Subgraph"},convert(t,e){return Ge("Subgraph",{id:e.id?Ge("Literal",{value:e.id,quoted:!0},[]):void 0},vx(t,e))}},qX=[FX,LX,zX,MX,BX];class jX{options;#e=[...qX];constructor(e={}){this.options=e}convert(e){const n=[...this.#e],{commentKind:r="Slash"}=this.options,i={commentKind:r,convert(s){for(const o of n)if(o.match(s))return o.convert(i,s);throw Error()}};return i.convert(e)}}function UX(t,e){return new jX(e).convert(t)}const q=new Proxy(Object.freeze({}),{get:(t,e)=>e});class yb{}class vb extends yb{#e=new Map;constructor(e){super(),e!==void 0&&this.apply(e)}get values(){return Array.from(this.#e.entries())}get size(){return this.#e.size}get(e){return this.#e.get(e)}set(e,n){n!=null&&this.#e.set(e,n)}delete(e){this.#e.delete(e)}apply(e){const n=Array.isArray(e)?e:Object.entries(e);for(const[r,i]of n)this.set(r,i)}clear(){this.#e.clear()}}class wb extends vb{$$kind;get $$type(){return"AttributeList"}comment;constructor(e,n){super(n),this.$$kind=e}}class wx extends vb{#e=Op;id;comment;attributes=Object.freeze({graph:new wb("Graph"),edge:new wb("Edge"),node:new wb("Node")});get nodes(){return Array.from(this.#t.nodes.values())}get edges(){return Array.from(this.#t.edges.values())}get subgraphs(){return Array.from(this.#t.subgraphs.values())}#t={nodes:new Map,edges:new Set,subgraphs:new Set};with(e){this.#e=pX(e)}addNode(e){this.#t.nodes.set(e.id,e)}addEdge(e){this.#t.edges.add(e)}addSubgraph(e){this.#t.subgraphs.add(e)}existNode(e){return this.#t.nodes.has(e)}existEdge(e){return this.#t.edges.has(e)}existSubgraph(e){return this.#t.subgraphs.has(e)}createSubgraph(...e){const n=new this.#e.Subgraph(...e);return n.with(this.#e),this.addSubgraph(n),n}removeNode(e){this.#t.nodes.delete(typeof e=="string"?e:e.id)}removeEdge(e){this.#t.edges.delete(e)}removeSubgraph(e){this.#t.subgraphs.delete(e)}createNode(e,n){const r=new this.#e.Node(e,n);return this.addNode(r),r}getSubgraph(e){return Array.from(this.#t.subgraphs.values()).find(n=>n.id===e)}getNode(e){return this.#t.nodes.get(e)}createEdge(e,n){const r=e.map(s=>dX(s)?hX(s):mx(s)),i=new this.#e.Edge(r,n);return this.addEdge(i),i}subgraph(...e){const n=e.find(o=>typeof o=="string"),r=e.find(o=>typeof o=="object"&&o!==null),i=e.find(o=>typeof o=="function"),s=n?this.getSubgraph(n)??this.createSubgraph(n):this.createSubgraph();return r!==void 0&&s.apply(r),i!==void 0&&i(s),s}node(e,...n){if(typeof e=="string"){const r=e,i=n.find(a=>typeof a=="object"&&a!==null),s=n.find(a=>typeof a=="function"),o=this.getNode(r)??this.createNode(r);return i!==void 0&&o.attributes.apply(i),s!==void 0&&s(o),o}typeof e=="object"&&e!==null&&this.attributes.node.apply(e)}edge(e,...n){if(Array.isArray(e)){const r=e,i=n.find(a=>typeof a=="object"),s=n.find(a=>typeof a=="function"),o=this.createEdge(r,i);return s!==void 0&&s(o),o}typeof e=="object"&&e!==null&&this.attributes.edge.apply(e)}graph(e){this.attributes.graph.apply(e)}}class bx extends wx{get $$type(){return"Graph"}id;strict;constructor(...e){super(),this.id=e.find(r=>typeof r=="string"),this.strict=e.find(r=>typeof r=="boolean")??!1;const n=e.find(r=>typeof r=="object"&&r!==null);n!==void 0&&this.apply(n)}}class GX extends bx{get directed(){return!0}}class WX extends bx{get directed(){return!1}}class HX extends wx{get $$type(){return"Subgraph"}id;constructor(...e){super(),this.id=e.find(r=>typeof r=="string");const n=e.find(r=>typeof r=="object"&&r!==null);n!==void 0&&this.apply(n)}isSubgraphCluster(){return typeof this.id=="string"?this.id.startsWith("cluster"):!1}}class Ex extends vb{comment}let VX=class extends yb{id;get $$type(){return"Node"}comment;attributes;constructor(e,n){super(),this.id=e,this.attributes=new Ex(n)}port(e){return typeof e=="string"?{id:this.id,port:e}:{id:this.id,...e}}};class KX extends yb{targets;get $$type(){return"Edge"}comment;attributes;constructor(e,n){if(super(),this.targets=e,e.length<2&&(Jl(e[0])&&Jl(e[1]))===!1)throw Error("The element of Edge target is missing or not satisfied as Edge target.");this.attributes=new Ex(n)}}Object.assign(Op,{Graph:WX,Digraph:GX,Subgraph:HX,Node:VX,Edge:KX});function Dx(t,e){return(...n)=>{const r=t?this.Digraph:this.Graph,i=n.find(c=>typeof c=="string"),s=n.find(c=>typeof c=="object"),o=n.find(c=>typeof c=="function"),a=new r(i,e,s);return a.with(this),typeof o=="function"&&o(a),a}}function Tx(t,e=Op){return Object.freeze({digraph:Dx.call(e,!0,t),graph:Dx.call(e,!1,t)})}const Rx=Tx(!1),YX=Rx.digraph;Rx.graph;const XX=Tx(!0);function Sx(t,e){const n=UX(t,e?.convert);return OX(n,e?.print)}var bb,kx;function JX(){if(kx)return bb;kx=1;function t(r){let i=r.length-1,s=r[i];for(;s===" "||s===" ";)s=r[--i];return r.substring(0,i+1)}function e(r){return r.split(`
1757
+ `).map(o=>t(o)).join(`
1758
+ `)}bb=function(r,i){if(i=i||{},r==null)return r;var s=i.width||50,o=typeof i.indent=="string"?i.indent:" ",a=i.newline||`
1759
+ `+o,c=typeof i.escape=="function"?i.escape:n,u=".{1,"+s+"}";i.cut!==!0&&(u+="([\\s\u200B]+|$)|[^\\s\u200B]+?([\\s\u200B]+|$)");var l=new RegExp(u,"g"),d=r.match(l)||[],f=o+d.map(function(h){return h.slice(-1)===`
1760
+ `&&(h=h.slice(0,h.length-1)),c(h)}).join(a);return i.trim===!0&&(f=e(f)),f};function n(r){return r}return bb}var ZX=JX();const zp={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},r)=>{if(!e)return n*2.55;t/=360,e/=100,n/=100;const i=n<.5?n*(1+e):n+e-n*e,s=2*n-i;switch(r){case"r":return zp.hue2rgb(s,i,t+1/3)*255;case"g":return zp.hue2rgb(s,i,t)*255;case"b":return zp.hue2rgb(s,i,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:n},r)=>{t/=255,e/=255,n/=255;const i=Math.max(t,e,n),s=Math.min(t,e,n),o=(i+s)/2;if(r==="l")return o*100;if(i===s)return 0;const a=i-s,c=o>.5?a/(2-i-s):a/(i+s);if(r==="s")return c*100;switch(i){case t:return((e-n)/a+(e<n?6:0))*60;case e:return((n-t)/a+2)*60;case n:return((t-e)/a+4)*60;default:return-1}}},QX={clamp:(t,e,n)=>e>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},eJ={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},Ce={channel:zp,lang:QX,unit:eJ},ss={};for(let t=0;t<=255;t++)ss[t]=Ce.unit.dec2hex(t);const en={ALL:0,RGB:1,HSL:2};class tJ{constructor(){this.type=en.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=en.ALL}is(e){return this.type===e}}class nJ{constructor(e,n){this.color=n,this.changed=!1,this.data=e,this.type=new tJ}set(e,n){return this.color=n,this.changed=!1,this.data=e,this.type.type=en.ALL,this}_ensureHSL(){const e=this.data,{h:n,s:r,l:i}=e;n===void 0&&(e.h=Ce.channel.rgb2hsl(e,"h")),r===void 0&&(e.s=Ce.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=Ce.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:n,g:r,b:i}=e;n===void 0&&(e.r=Ce.channel.hsl2rgb(e,"r")),r===void 0&&(e.g=Ce.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=Ce.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,n=e.r;return!this.type.is(en.HSL)&&n!==void 0?n:(this._ensureHSL(),Ce.channel.hsl2rgb(e,"r"))}get g(){const e=this.data,n=e.g;return!this.type.is(en.HSL)&&n!==void 0?n:(this._ensureHSL(),Ce.channel.hsl2rgb(e,"g"))}get b(){const e=this.data,n=e.b;return!this.type.is(en.HSL)&&n!==void 0?n:(this._ensureHSL(),Ce.channel.hsl2rgb(e,"b"))}get h(){const e=this.data,n=e.h;return!this.type.is(en.RGB)&&n!==void 0?n:(this._ensureRGB(),Ce.channel.rgb2hsl(e,"h"))}get s(){const e=this.data,n=e.s;return!this.type.is(en.RGB)&&n!==void 0?n:(this._ensureRGB(),Ce.channel.rgb2hsl(e,"s"))}get l(){const e=this.data,n=e.l;return!this.type.is(en.RGB)&&n!==void 0?n:(this._ensureRGB(),Ce.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(en.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(en.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(en.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(en.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(en.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(en.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const Eb=new nJ({r:0,g:0,b:0,a:0},"transparent"),Ca={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(Ca.re);if(!e)return;const n=e[1],r=parseInt(n,16),i=n.length,s=i%4===0,o=i>4,a=o?1:17,c=o?8:4,u=s?0:-1,l=o?255:15;return Eb.set({r:(r>>c*(u+3)&l)*a,g:(r>>c*(u+2)&l)*a,b:(r>>c*(u+1)&l)*a,a:s?(r&l)*a/255:1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`#${ss[Math.round(e)]}${ss[Math.round(n)]}${ss[Math.round(r)]}${ss[Math.round(i*255)]}`:`#${ss[Math.round(e)]}${ss[Math.round(n)]}${ss[Math.round(r)]}`}},lo={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(lo.hueRe);if(e){const[,n,r]=e;switch(r){case"grad":return Ce.channel.clamp.h(parseFloat(n)*.9);case"rad":return Ce.channel.clamp.h(parseFloat(n)*180/Math.PI);case"turn":return Ce.channel.clamp.h(parseFloat(n)*360)}}return Ce.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const n=t.match(lo.re);if(!n)return;const[,r,i,s,o,a]=n;return Eb.set({h:lo._hue2deg(r),s:Ce.channel.clamp.s(parseFloat(i)),l:Ce.channel.clamp.l(parseFloat(s)),a:o?Ce.channel.clamp.a(a?parseFloat(o)/100:parseFloat(o)):1},t)},stringify:t=>{const{h:e,s:n,l:r,a:i}=t;return i<1?`hsla(${Ce.lang.round(e)}, ${Ce.lang.round(n)}%, ${Ce.lang.round(r)}%, ${i})`:`hsl(${Ce.lang.round(e)}, ${Ce.lang.round(n)}%, ${Ce.lang.round(r)}%)`}},Ql={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=Ql.colors[t];if(e)return Ca.parse(e)},stringify:t=>{const e=Ca.stringify(t);for(const n in Ql.colors)if(Ql.colors[n]===e)return n}},ed={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const n=t.match(ed.re);if(!n)return;const[,r,i,s,o,a,c,u,l]=n;return Eb.set({r:Ce.channel.clamp.r(i?parseFloat(r)*2.55:parseFloat(r)),g:Ce.channel.clamp.g(o?parseFloat(s)*2.55:parseFloat(s)),b:Ce.channel.clamp.b(c?parseFloat(a)*2.55:parseFloat(a)),a:u?Ce.channel.clamp.a(l?parseFloat(u)/100:parseFloat(u)):1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`rgba(${Ce.lang.round(e)}, ${Ce.lang.round(n)}, ${Ce.lang.round(r)}, ${Ce.lang.round(i)})`:`rgb(${Ce.lang.round(e)}, ${Ce.lang.round(n)}, ${Ce.lang.round(r)})`}},os={format:{keyword:Ql,hex:Ca,rgb:ed,rgba:ed,hsl:lo,hsla:lo},parse:t=>{if(typeof t!="string")return t;const e=Ca.parse(t)||ed.parse(t)||lo.parse(t)||Ql.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(en.HSL)||t.data.r===void 0?lo.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ed.stringify(t):Ca.stringify(t)},rJ=(t,e)=>{const n=os.parse(t);for(const r in e)n[r]=Ce.channel.clamp[r](e[r]);return os.stringify(n)},$x=t=>os.format.hex.stringify(os.parse(t)),iJ=(t,e,n)=>{const r=os.parse(t),i=r[e],s=Ce.channel.clamp[e](i+n);return i!==s&&(r[e]=s),os.stringify(r)},sJ=(t,e)=>iJ(t,"a",-e),oJ=(t,e)=>{const n=os.parse(t),r={};for(const i in e)e[i]&&(r[i]=n[i]+e[i]);return rJ(t,r)},aJ=(t,e)=>{const n=os.parse(t),r={},i=(s,o,a)=>o>0?(a-s)*o/100:s*o/100;for(const s in e)r[s]=i(n[s],e[s],Ce.channel.max[s]);return oJ(t,r)};class cJ{value;next;constructor(e){this.value=e}}class uJ{#e;#t;#n;constructor(){this.clear()}enqueue(e){const n=new cJ(e);this.#e?(this.#t.next=n,this.#t=n):(this.#e=n,this.#t=n),this.#n++}dequeue(){const e=this.#e;if(e)return this.#e=this.#e.next,this.#n--,e.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}}function Bp(t){Cx(t);const e=new uJ;let n=0;const r=()=>{n<t&&e.size>0&&(e.dequeue()(),n++)},i=()=>{n--,r()},s=async(c,u,l)=>{const d=(async()=>c(...l))();u(d);try{await d}catch{}i()},o=(c,u,l)=>{new Promise(d=>{e.enqueue(d)}).then(s.bind(void 0,c,u,l)),(async()=>(await Promise.resolve(),n<t&&r()))()},a=(c,...u)=>new Promise(l=>{o(c,l,u)});return Object.defineProperties(a,{activeCount:{get:()=>n},pendingCount:{get:()=>e.size},clearQueue:{value(){e.clear()}},concurrency:{get:()=>t,set(c){Cx(c),t=c,queueMicrotask(()=>{for(;n<t&&e.size>0;)r()})}}}),a}function Cx(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up")}var lJ=Object.getOwnPropertyNames,dJ=Object.getOwnPropertySymbols,fJ=Object.prototype.hasOwnProperty;function _x(t,e){return function(n,r,i){return t(n,r,i)&&e(n,r,i)}}function qp(t){return function(e,n,r){if(!e||!n||typeof e!="object"||typeof n!="object")return t(e,n,r);var i=r.cache,s=i.get(e),o=i.get(n);if(s&&o)return s===n&&o===e;i.set(e,n),i.set(n,e);var a=t(e,n,r);return i.delete(e),i.delete(n),a}}function Ax(t){return lJ(t).concat(dJ(t))}var xx=Object.hasOwn||function(t,e){return fJ.call(t,e)};function _a(t,e){return t||e?t===e:t===e||t!==t&&e!==e}var Ix="_owner",Px=Object.getOwnPropertyDescriptor,Nx=Object.keys;function hJ(t,e,n){var r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function pJ(t,e){return _a(t.getTime(),e.getTime())}function Ox(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.entries(),s=0,o,a;(o=i.next())&&!o.done;){for(var c=e.entries(),u=!1,l=0;(a=c.next())&&!a.done;){var d=o.value,f=d[0],h=d[1],p=a.value,m=p[0],y=p[1];!u&&!r[l]&&(u=n.equals(f,m,s,l,t,e,n)&&n.equals(h,y,f,m,t,e,n))&&(r[l]=!0),l++}if(!u)return!1;s++}return!0}function mJ(t,e,n){var r=Nx(t),i=r.length;if(Nx(e).length!==i)return!1;for(var s;i-- >0;)if(s=r[i],s===Ix&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!xx(e,s)||!n.equals(t[s],e[s],s,s,t,e,n))return!1;return!0}function td(t,e,n){var r=Ax(t),i=r.length;if(Ax(e).length!==i)return!1;for(var s,o,a;i-- >0;)if(s=r[i],s===Ix&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!xx(e,s)||!n.equals(t[s],e[s],s,s,t,e,n)||(o=Px(t,s),a=Px(e,s),(o||a)&&(!o||!a||o.configurable!==a.configurable||o.enumerable!==a.enumerable||o.writable!==a.writable)))return!1;return!0}function gJ(t,e){return _a(t.valueOf(),e.valueOf())}function yJ(t,e){return t.source===e.source&&t.flags===e.flags}function Fx(t,e,n){if(t.size!==e.size)return!1;for(var r={},i=t.values(),s,o;(s=i.next())&&!s.done;){for(var a=e.values(),c=!1,u=0;(o=a.next())&&!o.done;)!c&&!r[u]&&(c=n.equals(s.value,o.value,s.value,o.value,t,e,n))&&(r[u]=!0),u++;if(!c)return!1}return!0}function vJ(t,e){var n=t.length;if(e.length!==n)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}var wJ="[object Arguments]",bJ="[object Boolean]",EJ="[object Date]",DJ="[object Map]",TJ="[object Number]",RJ="[object Object]",SJ="[object RegExp]",kJ="[object Set]",$J="[object String]",CJ=Array.isArray,Lx=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,Mx=Object.assign,_J=Object.prototype.toString.call.bind(Object.prototype.toString);function AJ(t){var e=t.areArraysEqual,n=t.areDatesEqual,r=t.areMapsEqual,i=t.areObjectsEqual,s=t.arePrimitiveWrappersEqual,o=t.areRegExpsEqual,a=t.areSetsEqual,c=t.areTypedArraysEqual;return function(u,l,d){if(u===l)return!0;if(u==null||l==null||typeof u!="object"||typeof l!="object")return u!==u&&l!==l;var f=u.constructor;if(f!==l.constructor)return!1;if(f===Object)return i(u,l,d);if(CJ(u))return e(u,l,d);if(Lx!=null&&Lx(u))return c(u,l,d);if(f===Date)return n(u,l,d);if(f===RegExp)return o(u,l,d);if(f===Map)return r(u,l,d);if(f===Set)return a(u,l,d);var h=_J(u);return h===EJ?n(u,l,d):h===SJ?o(u,l,d):h===DJ?r(u,l,d):h===kJ?a(u,l,d):h===RJ?typeof u.then!="function"&&typeof l.then!="function"&&i(u,l,d):h===wJ?i(u,l,d):h===bJ||h===TJ||h===$J?s(u,l,d):!1}}function xJ(t){var e=t.circular,n=t.createCustomConfig,r=t.strict,i={areArraysEqual:r?td:hJ,areDatesEqual:pJ,areMapsEqual:r?_x(Ox,td):Ox,areObjectsEqual:r?td:mJ,arePrimitiveWrappersEqual:gJ,areRegExpsEqual:yJ,areSetsEqual:r?_x(Fx,td):Fx,areTypedArraysEqual:r?td:vJ};if(n&&(i=Mx({},i,n(i))),e){var s=qp(i.areArraysEqual),o=qp(i.areMapsEqual),a=qp(i.areObjectsEqual),c=qp(i.areSetsEqual);i=Mx({},i,{areArraysEqual:s,areMapsEqual:o,areObjectsEqual:a,areSetsEqual:c})}return i}function IJ(t){return function(e,n,r,i,s,o,a){return t(e,n,a)}}function PJ(t){var e=t.circular,n=t.comparator,r=t.createState,i=t.equals,s=t.strict;if(r)return function(a,c){var u=r(),l=u.cache,d=l===void 0?e?new WeakMap:void 0:l,f=u.meta;return n(a,c,{cache:d,equals:i,meta:f,strict:s})};if(e)return function(a,c){return n(a,c,{cache:new WeakMap,equals:i,meta:void 0,strict:s})};var o={cache:void 0,equals:i,meta:void 0,strict:s};return function(a,c){return n(a,c,o)}}var NJ=as();as({strict:!0}),as({circular:!0}),as({circular:!0,strict:!0}),as({createInternalComparator:function(){return _a}}),as({strict:!0,createInternalComparator:function(){return _a}}),as({circular:!0,createInternalComparator:function(){return _a}}),as({circular:!0,createInternalComparator:function(){return _a},strict:!0});function as(t){t===void 0&&(t={});var e=t.circular,n=e===void 0?!1:e,r=t.createInternalComparator,i=t.createState,s=t.strict,o=s===void 0?!1:s,a=xJ(t),c=AJ(a),u=r?r(c):IJ(c);return PJ({circular:n,comparator:c,createState:i,equals:u,strict:o})}function zx(t,e){const n=t.nodes.map(i=>{const s=e.nodes[i.id];if(!s)return i;const{x:o,y:a,width:c,height:u}=s;return{...i,width:c,height:u,position:[o,a]}}),r=t.edges.map(i=>{const s=e.edges[i.id];return s?{...i,...s}:i});return{...t,bounds:{x:e.x,y:e.y,width:e.width,height:e.height},nodes:n,edges:r}}const Bx=(t,e)=>t.width>e.width+10||t.height>e.height+10;function OJ(t,e){if(t.hash===e.hash)return{diagram:zx(t,e)};if(NJ(t.autoLayout,e.autoLayout)&&t.nodes.every(r=>{const i=e.nodes[r.id];return!!i&&(r.children.length>0&&i.isCompound||r.children.length===0&&!i.isCompound)&&(i.isCompound||Bx(r,i)===!1)})&&t.edges.every(r=>{const i=e.edges[r.id];return!!i&&(!r.labelBBox&&!i.labelBBox||!!r.labelBBox&&!!i.labelBBox&&r.labelBBox.width<=i.labelBBox.width&&r.labelBBox.height<=i.labelBBox.height)}))return{diagram:zx(t,e)};const n=t.nodes.reduce((r,i)=>{const s=e.nodes[i.id];if(i.children.length>0||!s)return r;const o={id:i.id,center:{x:Math.round(s.x+s.width/2),y:Math.round(s.y+s.height/2)}};return s.isCompound||Bx(i,s)||(o.fixedsize={width:s.width,height:s.height}),r.push(o),r},[]);return{relayout:{x:e.x,y:e.y,height:e.height,nodes:n,edges:oa(e.edges).flatMap(([r,i])=>i.dotpos?{id:r,dotpos:i.dotpos}:[])}}}function Mn(t){return t.children.length>0}function Zn(t){switch(t){case"open":return"vee";default:return t}}function Hr(t){return Array.isArray(t)?[Hr(t[0]),Hr(t[1])]:(we(isFinite(t),`Invalid not finite point value ${t}`),Math.round(t))}const qx=t=>(we(isFinite(t),`Invalid not finite inch value ${t}`),Math.floor(t*72)),ft=t=>Math.ceil(t/72*1e3)/1e3,Qn=t=>Math.ceil(t);Qn(40).toString();function jx(t,e){return $x(aJ(t,{l:-35-5*e,s:-15-5*e}))}function FJ(t){return $x(sJ(t,.3))}function LJ(t){return t.trim().replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;")}function Db(t,e){return ZX(t,{width:e,indent:"",escape:LJ}).split(`
1761
+ `)}function cs({text:t,maxchars:e,fontsize:n,bold:r,color:i}){let s=Db(t,e).map(a=>Ki(a)?" ":a).join("<BR/>");r&&(s=`<B>${s}</B>`);const o=i?` COLOR="${i}"`:"";return`<FONT POINT-SIZE="${Qn(n)}"${o}>${s}</FONT>`}function MJ(t,e){const n=ae(t.icon),r=[cs({text:t.title,fontsize:19,maxchars:35})];if(ae(t.technology)&&r.push(cs({text:t.technology,fontsize:12,maxchars:n?35:45,color:e.loContrast})),ae(t.description)&&r.push(cs({text:t.description,fontsize:14,maxchars:n?35:45,color:e.loContrast})),r.length===1&&!n)return`<${r[0]}>`;const i=n?(s,o,a)=>{let c=`<TD ALIGN="TEXT" BALIGN="LEFT">${s}</TD>`;if(o===0){const u=a.length>1?` ROWSPAN="${a.length}"`:"";let l=76;(t.shape==="queue"||t.shape==="mobile")&&(l+=20),c=`<TD${u} WIDTH="${l}" FIXEDSIZE="TRUE"> </TD>${c}`,c=`${c}<TD${u} WIDTH="16" FIXEDSIZE="TRUE"> </TD>`}return`<TR>${c}</TR>`}:s=>`<TR><TD>${s}</TD></TR>`;return`<<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="6">${r.map(i).join("")}</TABLE>>`}function zJ(t,e){const n=cs({text:t.title.toUpperCase(),maxchars:50,fontsize:11,bold:!0,color:e});return n.includes("<BR/>")?`<<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"><TR><TD ALIGN="TEXT" BALIGN="LEFT">${n}</TD></TR></TABLE>>`:`<${n}>`}const Aa=35;function BJ({label:t,description:e,technology:n}){const r=[];if(ae(t)&&r.push(cs({text:t,maxchars:Aa,fontsize:14,bold:t==="[...]"})),ae(e)&&r.push(cs({text:e,maxchars:Aa,fontsize:14})),ae(n)&&r.push(cs({text:n,fontsize:12,maxchars:Aa})),r.length===0)return null;const i=r.map(s=>`<TR><TD ALIGN="TEXT" BALIGN="LEFT">${s}</TD></TR>`).join("");return`<<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" ${Tb}>${i}</TABLE>>`}const Tb=`BGCOLOR="${Gn.relationships[Ts].labelBgColor}A0"`;function qJ(t,e){const n=`<TABLE BORDER="0" CELLPADDING="6" ${Tb}><TR><TD FIXEDSIZE="TRUE" WIDTH="20" HEIGHT="20"><FONT POINT-SIZE="${Qn(14)}"><B>${t}</B></FONT></TD></TR></TABLE>`;return ae(e)?`<${['<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">',"<TR>",`<TD>${n}</TD>`,`<TD ${Tb} CELLPADDING="2">`,cs({text:e,maxchars:Aa,fontsize:14}),"</TD>","</TR>","</TABLE>"].join("")}>`:`<${n}>`}const Ux="dashed",Rb=Gn.font;class Gx{constructor(e){this.view=e,this.compoundIds=new Set(e.nodes.filter(Mn).map(r=>r.id)),this.edgesWithCompounds=new Set(this.compoundIds.size>0?e.edges.filter(r=>this.compoundIds.has(r.source)||this.compoundIds.has(r.target)).map(r=>r.id):[]);const n=this.graphvizModel=this.createGraph();this.applyNodeAttributes(n.attributes.node),this.applyEdgeAttributes(n.attributes.edge),this.buildGraphvizModel(n)}ids=new Set;subgraphs=new Map;nodes=new Map;edges=new Map;compoundIds;edgesWithCompounds;graphvizModel;get hasEdgesWithCompounds(){return this.edgesWithCompounds.size>0}buildGraphvizModel(e){const n=(i,s)=>{const o=this.nodeId(i),a=this.elementToSubgraph(i,s.subgraph(o));this.subgraphs.set(i.id,a);for(const c of this.view.nodes.filter(u=>Mn(u)&&u.parent===i.id))n(c,a)},r=[];for(const i of this.view.nodes)Mn(i)?at(i.parent)&&n(i,e):r.push(i);for(const i of r){const s=i.parent?this.getSubgraph(i.parent):e;we(s,"parent graph should be defined");const o=this.nodeId(i),a=this.elementToNode(i,s.node(o));this.nodes.set(i.id,a)}for(const i of this.view.edges){const s=this.addEdge(i,e);s&&this.edges.set(i.id,s)}}print(){return Sx(this.graphvizModel,{print:{indentStyle:"space",indentSize:2}})}createGraph(){const e=this.view.autoLayout,n=YX({[q.bgcolor]:"transparent",[q.layout]:"dot",[q.compound]:!0,[q.rankdir]:e.direction,[q.TBbalance]:"min",[q.splines]:"spline",[q.outputorder]:"nodesfirst",[q.nodesep]:ft(e.nodeSep??110),[q.ranksep]:ft(e.rankSep??120),[q.pack]:Qn(e.rankSep??120),[q.packmode]:"array_3",[q.pad]:ft(15),[q.forcelabels]:!0,[q.fontname]:Rb});return n.attributes.graph.apply({[q.fontsize]:Qn(15),[q.labeljust]:e.direction==="RL"?"r":"l",[q.labelloc]:e.direction==="BT"?"b":"t",[q.margin]:50.1}),n}applyNodeAttributes(e){e.apply({[q.fontname]:Rb,[q.nojustify]:!0,[q.shape]:"rect",[q.width]:ft(320),[q.height]:ft(180),[q.style]:"filled",[q.penwidth]:0})}applyEdgeAttributes(e){e.apply({[q.nojustify]:!0,[q.arrowsize]:.75,[q.fontname]:Rb,[q.fontsize]:Qn(14),[q.penwidth]:Qn(2),[q.color]:Gn.relationships[Ts].lineColor,[q.fontcolor]:Gn.relationships[Ts].labelColor})}checkNodeId(e,n=!1){return n?e="cluster_"+e:e.toLowerCase().startsWith("cluster")&&(e="nd_"+e),this.ids.has(e)?null:(this.ids.add(e),e)}nodeId(e){const n=Mn(e);let r=So(e.id).toLowerCase(),i=this.checkNodeId(r,n);if(i!==null)return i;let s=e.id,o;for(;o=kt(s);){if(r=So(o).toLowerCase()+"_"+r,i=this.checkNodeId(r,n),i!==null)return i;s=o}r=So(e.id).toLowerCase();let a=1;do i=this.checkNodeId(r+"_"+a++,n);while(i===null);return i}elementToSubgraph(e,n){we(Mn(e),"node should be compound"),we(uh(e.depth),"node.depth should be defined");const r=this.getElementColorValues(e.color),i=FJ(r.loContrast);return n.apply({[q.likec4_id]:e.id,[q.likec4_level]:e.level,[q.likec4_depth]:e.depth,[q.fillcolor]:jx(r.fill,e.depth),[q.color]:jx(r.stroke,e.depth),[q.style]:"filled",[q.margin]:Qn(e.children.length>1?40:32),[q.label]:zJ(e,i)}),n}elementToNode(e,n){we(!Mn(e),"node should not be compound");const r=ae(e.icon),i=this.getElementColorValues(e.color);switch(n.attributes.apply({[q.likec4_id]:e.id,[q.likec4_level]:e.level,[q.fillcolor]:i.fill,[q.fontcolor]:i.hiContrast,[q.color]:i.stroke,[q.margin]:`${ft(r?10:26)},${ft(26)}`}),e.shape){case"cylinder":case"storage":{n.attributes.apply({[q.margin]:`${ft(r?10:26)},${ft(0)}`,[q.penwidth]:Qn(2),[q.shape]:"cylinder"});break}case"browser":{n.attributes.apply({[q.margin]:`${ft(r?10:30)},${ft(32)}`});break}case"mobile":{n.attributes.apply({[q.margin]:`${ft(r?10:30)},${ft(26)}`});break}case"queue":{n.attributes.apply({[q.width]:ft(320),[q.height]:ft(165),[q.margin]:`${ft(r?10:30)},${ft(26)}`});break}}return n.attributes.set(q.label,MJ(e,i)),n}leafElements(e){if(e===null)return this.view.nodes.filter(r=>!Mn(r));const n=e+".";return this.view.nodes.filter(r=>!Mn(r)&&r.id.startsWith(n))}viewElement(e){return Qe(this.view.nodes.find(n=>n.id===e),`Node ${e} not found`)}getGraphNode(e){return this.nodes.get(e)??null}getSubgraph(e){return this.subgraphs.get(e)??null}edgeEndpoint(e,n){let r=this.viewElement(e),i=this.getGraphNode(e),s;return i||(we(Mn(r),"endpoint node should be compound"),s=this.getSubgraph(e)?.id,we(s,`subgraph ${e} not found`),r=Qe(n(this.leafElements(e)),`leaf element in ${e} not found`),i=Qe(this.getGraphNode(r.id),`source graphviz node ${r.id} not found`)),[r,i,s]}hasInternalEdges(e){return e===null?this.view.edges.length>0:this.view.edges.some(PE(e))}findInternalEdges(e){return e===null?this.view.edges.slice():this.view.edges.filter(PE(e))}withoutCompoundEdges(e){return this.edgesWithCompounds.size===0?e:{...e,inEdges:e.inEdges.filter(n=>!this.edgesWithCompounds.has(n)),outEdges:e.outEdges.filter(n=>!this.edgesWithCompounds.has(n))}}assignGroups(){const e=Ye(this.view.nodes,nt(Mn),Et(r=>r.id),ra(ko),ch(),Et(r=>{const i=this.findInternalEdges(r).filter(s=>s.source!==s.target&&!this.compoundIds.has(s.source)&&!this.compoundIds.has(s.target));return{id:r,edges:i}}),nt(({edges:r})=>r.length>1&&r.length<8),z9(4)),n=new Set;for(const r of e){const i=r.edges.filter(s=>!n.has(s.source)&&!n.has(s.target));for(const s of i)try{const o=Qe(this.getGraphNode(s.source),`Graphviz Node not found for ${s.source}`),a=Qe(this.getGraphNode(s.target),`Graphviz Node not found for ${s.target}`);n.add(s.source),n.add(s.target),o.attributes.set(q.group,r.id),a.attributes.set(q.group,r.id)}catch(o){Je.error(o)}}}applyManualLayout({height:e,...n}){const r=n.x<0?-n.x:0,i=n.y<0?-n.y:0,s=r>0||i>0;for(const{id:o,...a}of n.nodes){const c=this.getGraphNode(o);if(!c)continue;const u=ft(a.center.x)+r,l=ft(e-a.center.y);a.fixedsize?c.attributes.apply({[q.pos]:`${u},${l}!`,[q.pin]:!0,[q.width]:ft(a.fixedsize.width),[q.height]:ft(a.fixedsize.height),[q.fixedsize]:!0}):c.attributes.set(q.pos,`${u},${l}`)}for(const[o,a]of this.edges.entries()){a.attributes.delete(q.weight),a.attributes.delete(q.minlen),a.attributes.delete(q.constraint);const c=n.edges.find(u=>u.id===o)?.dotpos;c&&!s&&a.attributes.set(q.pos,c)}return this.graphvizModel.apply({[q.layout]:"fdp",[q.overlap]:"vpsc",[q.sep]:"+50,50",[q.esep]:"+10,10",[q.start]:"random2",[q.splines]:"compound"}),this.graphvizModel.delete(q.compound),this.graphvizModel.delete(q.rankdir),this.graphvizModel.delete(q.nodesep),this.graphvizModel.delete(q.ranksep),this.graphvizModel.delete(q.pack),this.graphvizModel.delete(q.pad),this.graphvizModel.delete(q.packmode),this.graphvizModel.attributes.graph.delete(q.margin),this}getRelationshipColorValues(e){return vE(e)?Gn.relationships[e]:this.view.customColorDefinitions[e]?.relationships??Gn.relationships[Oa]}getElementColorValues(e){return vE(e)?Gn.elements[e]:this.view.customColorDefinitions[e]?.elements??Gn.elements[Oa]}}class j0 extends Gx{static toDot(e){return new j0(e).print()}createGraph(){const e=super.createGraph();return e.set(q.TBbalance,"max"),e}addEdge(e,n){const{nodes:r}=this.view,[i,s]=e.dir==="back"?[e.target,e.source]:[e.source,e.target],[o,a,c]=this.edgeEndpoint(i,E=>ia(E)),[u,l,d]=this.edgeEndpoint(s,sa),f=n.edge([a,l],{[q.likec4_id]:e.id,[q.style]:e.line??Ux});if(d&&f.attributes.set(q.lhead,d),c&&f.attributes.set(q.ltail,c),e.color&&e.color!==Ts){const E=this.getRelationshipColorValues(e.color);f.attributes.apply({[q.color]:E.lineColor,[q.fontcolor]:E.labelColor})}const h=qr(d)||qr(c),p=kE(e.id),m=qJ(p,e.label?.trim());if(f.attributes.set(q.label,m),!h){const E=new Set([...o.outEdges,...u.inEdges,...dU(u.outEdges,o.inEdges)].filter(k=>!this.edgesWithCompounds.has(k)));f.attributes.set(q.weight,E.size)}const y=r.findIndex(E=>E.id===i);r.findIndex(E=>E.id===s)<y&&e.dir!=="back"&&f.attributes.apply({[q.constraint]:!1});let[g,w]=[e.head??Ro,e.tail??"none"];return e.dir==="back"?(f.attributes.apply({[q.arrowtail]:Zn(g),[q.minlen]:0,[q.dir]:"back"}),w!=="none"&&f.attributes.apply({[q.arrowhead]:Zn(w),[q.dir]:"both"}),f):g==="none"&&w==="none"||g!=="none"&&w!=="none"?(f.attributes.apply({[q.arrowhead]:Zn(g),[q.arrowtail]:Zn(w),[q.dir]:"both"}),f):g==="none"?(f.attributes.delete(q.arrowhead),f.attributes.apply({[q.arrowtail]:Zn(w),[q.minlen]:0,[q.dir]:"back"}),f):(g!==Ro&&f.attributes.set(q.arrowhead,Zn(g)),f)}}class U0 extends Gx{static toDot(e){return new U0(e).print()}buildGraphvizModel(e){super.buildGraphvizModel(e),this.assignGroups();const n=new Set,r=this.view.nodes.reduce((i,s)=>(Mn(s)&&(n.add(s.id),i.push(s)),i),[]);for(const i of r){const s=Ye(i.children,nt(u=>!this.compoundIds.has(u)),Et(u=>this.viewElement(u)),nt(u=>u.inEdges.length===0&&u.outEdges.length===0));if(s.length<=2)continue;let o=2;switch(!0){case s.length>11:o=4;break;case s.length>4:o=3;break}const a=Qe(this.getSubgraph(i.id),`Subgraph not found for ${i.id}`);let c=null;NU(s,o).forEach(u=>{const l=u.length>1?a.createSubgraph({[q.rank]:"same"}):null;u.forEach((d,f)=>{const h=this.getGraphNode(d.id);h&&(l?.node(h.id),f===0&&(c&&a.edge([c,h],{[q.style]:"invis"}),c=h))})})}}addEdge(e,n){const r=this.view.edges,[i,s]=e.dir==="back"?[e.target,e.source]:[e.source,e.target],[o,a,c]=this.edgeEndpoint(i,E=>ia(E)),[u,l,d]=this.edgeEndpoint(s,sa),f=e.parent,h=(f===null?n:Qe(this.getSubgraph(f),`Parent not found for edge ${e.id}`)).edge([a,l],{[q.likec4_id]:e.id,[q.style]:e.line??Ux});d&&h.attributes.set(q.lhead,d),c&&h.attributes.set(q.ltail,c);const p=qr(d)||qr(c);if(!p){const E=new Set([...o.inEdges,...o.outEdges,...u.inEdges,...u.outEdges].filter(k=>!this.edgesWithCompounds.has(k)));h.attributes.set(q.weight,E.size)}const m=BJ(e);if(m&&(p?h.attributes.set(q.xlabel,m):h.attributes.set(q.label,m)),e.color){const E=this.getRelationshipColorValues(e.color);h.attributes.apply({[q.color]:E.lineColor,[q.fontcolor]:E.labelColor})}let[y,g]=[e.head??Ro,e.tail??"none"];if(e.dir==="back")return h.attributes.apply({[q.arrowtail]:Zn(y),[q.dir]:"back"}),g!=="none"&&h.attributes.apply({[q.arrowhead]:Zn(g),[q.dir]:"both",[q.minlen]:0}),h;if(y==="none"&&g==="none")return h.attributes.apply({[q.arrowtail]:"none",[q.arrowhead]:"none",[q.dir]:"none",[q.minlen]:0,[q.constraint]:!1}),h;if(y!=="none"&&g!=="none")return h.attributes.apply({[q.arrowhead]:Zn(y),[q.arrowtail]:Zn(g),[q.dir]:"both",[q.minlen]:0}),h;if(y!==Ro&&h.attributes.set(q.arrowhead,Zn(y)),g!=="none"&&h.attributes.set(q.arrowtail,Zn(g)),r.length===1)return h;let w;return f===null&&o.parent==null&&u.parent==null?w=r.filter(E=>{if(E.id===e.id||E.parent!==null||E.source===e.source&&E.target===e.target||E.source===e.target&&E.target===e.source)return!1;const k=this.viewElement(E.source),A=this.viewElement(E.target);return Mn(k)||Mn(A)?!1:k.parent==null&&A.parent==null}):w=this.findInternalEdges(f).filter(E=>!(E.id===e.id||E.source===e.source&&E.target===e.target||E.source===e.target&&E.target===e.source)),w.length===0&&(f===null||this.leafElements(f).length<=3)&&h.attributes.set(q.minlen,0),h}}function jp(t){const[e,n,r,i]=t?t.split(",").map(a=>Hr(+a)):[0,0,0,0],s=Math.round(r-e),o=Math.round(n-i);return{x:Math.round(e),y:Math.round(i),width:s,height:o}}function jJ(t){try{const[e,n]=t.split(",");return{x:Hr(parseFloat(e)),y:Hr(parseFloat(n))}}catch(e){throw Je.error(`failed on parsing pos: ${t}`,e),e}}function Wx({pos:t,width:e,height:n}){const{x:r,y:i}=jJ(t),s=qx(+e),o=qx(+n);return{x:r-Math.round(s/2),y:i-Math.round(o/2),width:s,height:o}}function Hx(t,[e,n]=[0,0]){if(!t||t.length===0)return null;let r=1/0,i=1/0,s=-1/0,o=-1/0,a=13;try{for(const u of t){if(u.op==="F"){a=Hr(u.size);continue}if(u.op==="T"){let l=Hr(u.pt[0])-e,d=Hr(u.width);switch(u.align){case"r":l-=d;break;case"c":l-=Math.round(d/2);break}r=Math.min(r,l),s=Math.max(s,l+d);let f=Hr(u.pt[1])-n;i=Math.min(i,Math.round(f-a)),o=Math.max(o,f)}}}catch(u){return Je.error(`Failed on parsing label draw ops: ${u}
1762
+ ${JSON.stringify(t,null,2)}`),null}if(r===1/0)return null;const c=2;return{x:r-c,y:i-c,width:s-r+2*c,height:o-i+2*c}}function Vx({_draw_:t,likec4_id:e="???"},n="<unknown view>"){try{const r=t.filter(s=>s.op.toLowerCase()==="b");we(Br(r,1),`view ${n} edge ${e} should have at least one bezier draw op`),r.length>1&&Je.warn(`view ${n} edge ${e} has more than one bezier draw op, using the first one only`);const i=r[0].points.map(s=>Hr(s));return we(Br(i,2),`view ${n} edge ${e} should have at least two points`),i}catch(r){throw Je.error(`failed on parsing view ${n} edge ${e} _draw_:
1763
+ ${JSON.stringify(t,null,2)}`),r}}function UJ(t,{id:e,source:n,target:r,dir:i,label:s,description:o,...a},c){const u=Hx(t._ldraw_??t._tldraw_??t._hldraw_),l=t.dir==="back"||i==="back";return s=s?Db(s,Aa).join(`
1764
+ `):null,o=o?Db(o,Aa).join(`
1765
+ `):void 0,{id:e,source:n,target:r,label:s,...ae(o)&&{description:o},...ae(t.pos)&&{dotpos:t.pos},points:Vx(t,c),labelBBox:u,...l?{dir:"back"}:{},...a}}function Kx(t,e){const n=JSON.parse(t),r=jp(n.bb),{nodes:i,edges:s,manualLayout:o,...a}=e,c={...a,bounds:r,nodes:[],edges:[]},u=n.objects??[];for(const d of i){const f=u.find(w=>w.likec4_id===d.id);we(f,`View ${a.id} element ${d.id} not found in graphviz output`);const{x:h,y:p,width:m,height:y}="bb"in f?jp(f.bb):Wx(f),g=[h,p];c.nodes.push({...d,position:g,width:m,height:y,labelBBox:Qe(Hx(f._ldraw_,g),`View ${a.id} Node ${d.id} label bbox not found`)})}const l=n.edges??[];for(const d of s){const f=l.find(h=>h.likec4_id===d.id);if(!f){Je.warn(`View ${a.id} edge ${d.id} not found in graphviz output, skipping`);continue}c.edges.push(UJ(f,d,a.id))}return c}const Up=t=>String(t+1).padStart(2,"0");function GJ(t){const e=JSON.parse(t),n=jp(e.bb),r={nodes:[],edges:[],bounds:n},i=new Map,s=e.objects??[];for(const o of s){if(!o.likec4_type)continue;const a=Up(o._gvid),c=o.likec4_path??"",u=i.get(o._gvid),{x:l,y:d,width:f,height:h}="bb"in o?jp(o.bb):Wx(o),p={x:l,y:d};if(o.likec4_type==="view")we(o.likec4_id,`View ${o} has no likec4_id`),r.nodes.push({id:a,type:"view",parentId:u?.id??null,height:h,width:f,position:p,label:o.label??"",viewId:o.likec4_id});else{const m={id:a,type:o.likec4_type,parentId:u?.id??null,height:h,width:f,position:p,path:c,label:o.label??""},y=[..."subgraphs"in o?o.subgraphs:[],..."nodes"in o?o.nodes:[]];for(const g of y)i.set(g,m);r.nodes.push(m)}}for(const o of e.edges??[])try{const a=Up(o.tail),c=Up(o.head);r.edges.push({id:`link${Up(o._gvid)}`,source:a,target:c,points:Vx(o)})}catch(a){Je.warn(a)}return r}const Yx=Gn.font,Gp="/";class G0{static toDot(e){return new G0(e).print()}subgraphs=new Map;graphvizModel;constructor(e){const n=this.graphvizModel=XX.graph({[q.layout]:"osage",[q.pack]:Qn(100),[q.packmode]:"array_ltc",[q.pad]:ft(15),[q.fontname]:Yx,[q.splines]:"polyline",[q.esep]:"+20"});n.attributes.graph.apply({[q.fontsize]:Qn(20),[q.labeljust]:"l",[q.labelloc]:"t"}),n.attributes.node.apply({[q.fontname]:Yx,[q.shape]:"rect",[q.width]:ft(400),[q.height]:ft(300),[q.fixedsize]:!0,[q.fontsize]:10}),n.attributes.edge.apply({[q.penwidth]:Qn(2)});const r=new Set(e.map(c=>c.relativePath??""));let i=0,s=[...e];const o=r.size>1;o&&s.sort((c,u)=>{const l=c.relativePath?.split(Gp)??[""],d=u.relativePath?.split(Gp)??[""];l.push(c.title??"Untitled"),d.push(u.title??"Untitled");const f=l.length,h=d.length;switch(i=Math.max(i,f,h),!0){case f>h:return-1;case f<h:return 1;default:{for(let p=0;p<f;p++){const m=l[p].localeCompare(d[p]);if(m!==0)return m}return 0}}});const a=new Map;s.forEach((c,u)=>{this.addView(o?c:{...c,relativePath:""},u+i);const l=c.nodes.reduce((d,f)=>(f.navigateTo&&d.add(f.navigateTo),d),new Set);l.size>0&&a.set(c.id,l)});for(const[c,u]of a)for(const l of u)n.edge([c,l])}getParentForPath(e){if(e==="")return this.graphvizModel;const n=e.toLowerCase();let r=this.subgraphs.get(n);if(!r){const i=n.endsWith(".c4")||n.endsWith(".likec4"),s=e.includes(Gp)?e.slice(0,e.lastIndexOf(Gp)):"";r=this.getParentForPath(s).subgraph("cluster"+String(this.subgraphs.size+1),{[q.likec4_type]:i?"file":"folder",[q.likec4_path]:e,[q.sortv]:this.subgraphs.size,[q.label]:ae(s)?e.slice(s.length+1):e}),this.subgraphs.set(n,r)}return r}addView(e,n=0){return this.getParentForPath(e.relativePath??"").node(e.id,{[q.likec4_type]:"view",[q.likec4_id]:e.id,[q.sortv]:n,[q.label]:e.title||"Untitled"})}print(){return Sx(this.graphvizModel,{print:{indentStyle:"space",indentSize:2}})}}const Xx=t=>Am(t)?new j0(t):new U0(t);class WJ{constructor(e){this.graphviz=e}get port(){return this.graphviz}changePort(e){this.graphviz=e}async layout(e){let n=await this.dot(e);const r=await this.graphviz.layoutJson(n);let i=Kx(r,e);if(e.manualLayout){const s=OJ(i,e.manualLayout);if(s.diagram)i=s.diagram;else{if(s.relayout.nodes.length>0){const o=Xx(e);if(o.hasEdgesWithCompounds)Je.warn(`Manual layout for view ${e.id} is ignored, as edges with compounds are not supported`);else{o.applyManualLayout(s.relayout);const a=await this.graphviz.layoutJson(o.print());i=Kx(a,e)}}i.hasLayoutDrift=!0}}return n=n.split(`
1766
+ `).filter(s=>!(s.includes("margin")&&s.includes("50.1"))).join(`
1767
+ `),{dot:n,diagram:i}}async svg(e){let n=await this.dot(e);return n=n.split(`
1768
+ `).filter(r=>!(r.includes("margin")&&r.includes("50.1"))).join(`
1769
+ `),{svg:await this.graphviz.svg(n),dot:n}}async dot(e){let n=Xx(e).print();if(Am(e))return n;try{return await this.graphviz.unflatten(n)}catch(r){return Je.warn(`Error during unflatten: ${e.id}`,r),n}}async layoutOverviewGraph(e){if(e.length===0)return Promise.resolve({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}});const n=G0.toDot(e),r=await this.graphviz.layoutJson(n);return GJ(r)}}const HJ=Bp(1);let VJ=class pm{static _graphviz=null;graphviz(){return Promise.resolve().then(()=>pm._graphviz??=ym.load())}async attempt(e,n){return await HJ(async()=>{const r=Je.withTag("graphviz-wasm");try{return await n()}catch(i){r.error(`FAILED GraphvizWasmAdapter: ${e}`,i),ym.unload(),pm._graphviz=null}r.warn("Retrying..."),await PD(50,300);try{return await n()}finally{ym.unload(),pm._graphviz=null}})}async unflatten(e){return await this.attempt(`unflatten
1770
+ ${e}`,async()=>(await this.graphviz()).unflatten(e,1,!1,3).replaceAll(/\t\[/g," [").replaceAll(/\t/g," "))}async acyclic(e){return await this.attempt(`acyclic
1771
+ ${e}`,async()=>{const n=(await this.graphviz()).acyclic(e,!0);return n.acyclic&&n.outFile||e})}async layoutJson(e){return await this.attempt(`dot
1772
+ ${e}`,async()=>(await this.graphviz()).layout(e,"json",void 0,{yInvert:!0}))}async svg(e){return await this.attempt(`svg
1773
+ ${e}`,async()=>(await this.graphviz()).layout(e,"svg"))}};function er(t){if(typeof t!="object"||t===null)return!1;const e=Object.getPrototypeOf(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)}const Sb=(t,e)=>{const n=Jx(t);if(typeof n!="string")throw new TypeError(`${e} must be a string or a file URL: ${n}.`);return n},Jx=t=>t instanceof URL?gm(t):t,Zx=(t,e=[],n={})=>{const r=Sb(t,"First argument"),[i,s]=er(e)?[[],e]:[e,n];if(!Array.isArray(i))throw new TypeError(`Second argument must be either an array of arguments or an options object: ${i}`);if(i.some(c=>typeof c=="object"&&c!==null))throw new TypeError(`Second argument must be an array of strings: ${i}`);const o=i.map(String),a=o.find(c=>c.includes("\0"));if(a!==void 0)throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${a}`);if(!er(s))throw new TypeError(`Last argument must be an options object: ${s}`);return[r,o,s]},{toString:Qx}=Object.prototype,KJ=t=>Qx.call(t)==="[object ArrayBuffer]",Er=t=>Qx.call(t)==="[object Uint8Array]",nd=t=>new Uint8Array(t.buffer,t.byteOffset,t.byteLength),YJ=new TextEncoder,eI=t=>YJ.encode(t),XJ=new TextDecoder,tI=t=>XJ.decode(t),JJ=(t,e)=>ZJ(t,e).join(""),ZJ=(t,e)=>{if(e==="utf8"&&t.every(s=>typeof s=="string"))return t;const n=new Z0(e),r=t.map(s=>typeof s=="string"?eI(s):s).map(s=>n.write(s)),i=n.end();return i===""?r:[...r,i]},kb=t=>t.length===1&&Er(t[0])?t[0]:nI(QJ(t)),QJ=t=>t.map(e=>typeof e=="string"?eI(e):e),nI=t=>{const e=new Uint8Array(eZ(t));let n=0;for(const r of t)e.set(r,n),n+=r.length;return e},eZ=t=>{let e=0;for(const n of t)e+=n.length;return e},tZ=t=>Array.isArray(t)&&Array.isArray(t.raw),nZ=(t,e)=>{let n=[];for(const[s,o]of t.entries())n=rZ({templates:t,expressions:e,tokens:n,index:s,template:o});if(n.length===0)throw new TypeError("Template script must not be empty");const[r,...i]=n;return[r,i,{}]},rZ=({templates:t,expressions:e,tokens:n,index:r,template:i})=>{if(i===void 0)throw new TypeError(`Invalid backslash sequence: ${t.raw[r]}`);const{nextTokens:s,leadingWhitespaces:o,trailingWhitespaces:a}=iZ(i,t.raw[r]),c=iI(n,s,o);if(r===e.length)return c;const u=e[r],l=Array.isArray(u)?u.map(d=>sI(d)):[sI(u)];return iI(c,l,a)},iZ=(t,e)=>{if(e.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};const n=[];let r=0;const i=rI.has(e[0]);for(let o=0,a=0;o<t.length;o+=1,a+=1){const c=e[a];if(rI.has(c))r!==o&&n.push(t.slice(r,o)),r=o+1;else if(c==="\\"){const u=e[a+1];u==="u"&&e[a+2]==="{"?a=e.indexOf("}",a+3):a+=sZ[u]??1}}const s=r===t.length;return s||n.push(t.slice(r)),{nextTokens:n,leadingWhitespaces:i,trailingWhitespaces:s}},rI=new Set([" "," ","\r",`
1774
+ `]),sZ={x:3,u:5},iI=(t,e,n)=>n||t.length===0||e.length===0?[...t,...e]:[...t.slice(0,-1),`${t.at(-1)}${e[0]}`,...e.slice(1)],sI=t=>{const e=typeof t;if(e==="string")return t;if(e==="number")return String(t);if(er(t)&&("stdout"in t||"isMaxBuffer"in t))return oZ(t);throw t instanceof J0||Object.prototype.toString.call(t)==="[object Promise]"?new TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."):new TypeError(`Unexpected "${e}" in template expression`)},oZ=({stdout:t})=>{if(typeof t=="string")return t;if(Er(t))return tI(t);throw t===void 0?new TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`):new TypeError(`Unexpected "${typeof t}" stdout in template expression`)},fo=t=>$b.includes(t),$b=[Oe.stdin,Oe.stdout,Oe.stderr],Vr=["stdin","stdout","stderr"],oI=t=>Vr[t]??`stdio[${t}]`,aZ=t=>{const e={...t};for(const n of lI)e[n]=aI(t,n);return e},aI=(t,e)=>{const n=Array.from({length:cZ(t)+1}),r=uZ(t[e],n,e);return pZ(r,e)},cZ=({stdio:t})=>Array.isArray(t)?Math.max(t.length,Vr.length):Vr.length,uZ=(t,e,n)=>er(t)?lZ(t,e,n):e.fill(t),lZ=(t,e,n)=>{for(const r of Object.keys(t).sort(dZ))for(const i of fZ(r,n,e))e[i]=t[r];return e},dZ=(t,e)=>cI(t)<cI(e)?1:-1,cI=t=>t==="stdout"||t==="stderr"?0:t==="all"?2:1,fZ=(t,e,n)=>{if(t==="ipc")return[n.length-1];const r=uI(t);if(r===void 0||r===0)throw new TypeError(`"${e}.${t}" is invalid.
1775
+ It must be "${e}.stdout", "${e}.stderr", "${e}.all", "${e}.ipc", or "${e}.fd3", "${e}.fd4" (and so on).`);if(r>=n.length)throw new TypeError(`"${e}.${t}" is invalid: that file descriptor does not exist.
1776
+ Please set the "stdio" option to ensure that file descriptor exists.`);return r==="all"?[1,2]:[r]},uI=t=>{if(t==="all")return t;if(Vr.includes(t))return Vr.indexOf(t);const e=hZ.exec(t);if(e!==null)return Number(e[1])},hZ=/^fd(\d+)$/,pZ=(t,e)=>t.map(n=>n===void 0?gZ[e]:n),mZ=S2("execa").enabled?"full":"none",gZ={lines:!1,buffer:!0,maxBuffer:1e3*1e3*100,verbose:mZ,stripFinalNewline:!0},lI=["lines","buffer","maxBuffer","verbose","stripFinalNewline"],rd=(t,e)=>e==="ipc"?t.at(-1):t[e],Cb=({verbose:t},e)=>Ab(t,e)!=="none",_b=({verbose:t},e)=>!["none","short"].includes(Ab(t,e)),yZ=({verbose:t},e)=>{const n=Ab(t,e);return xb(n)?n:void 0},Ab=(t,e)=>e===void 0?vZ(t):rd(t,e),vZ=t=>t.find(e=>xb(e))??Ib.findLast(e=>t.includes(e)),xb=t=>typeof t=="function",Ib=["none","short","full"],wZ=(t,e)=>{const n=[t,...e],r=n.join(" "),i=n.map(s=>SZ(dI(s))).join(" ");return{command:r,escapedCommand:i}},Pb=t=>k2(t).split(`
1777
+ `).map(e=>dI(e)).join(`
1778
+ `),dI=t=>t.replaceAll(DZ,e=>bZ(e)),bZ=t=>{const e=TZ[t];if(e!==void 0)return e;const n=t.codePointAt(0),r=n.toString(16);return n<=RZ?`\\u${r.padStart(4,"0")}`:`\\U${r}`},EZ=()=>{try{return new RegExp("\\p{Separator}|\\p{Other}","gu")}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}},DZ=EZ(),TZ={" ":" ","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},RZ=65535,SZ=t=>kZ.test(t)?t:_2==="win32"?`"${t.replaceAll('"','""')}"`:`'${t.replaceAll("'","'\\''")}'`,kZ=/^[\w./-]+$/;function $Z(){return Oe.platform!=="win32"?Oe.env.TERM!=="linux":!!Oe.env.WT_SESSION||!!Oe.env.TERMINUS_SUBLIME||Oe.env.ConEmuTask==="{cmd::Cmder}"||Oe.env.TERM_PROGRAM==="Terminus-Sublime"||Oe.env.TERM_PROGRAM==="vscode"||Oe.env.TERM==="xterm-256color"||Oe.env.TERM==="alacritty"||Oe.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const fI={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},CZ={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},_Z={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},AZ={...fI,...CZ},xZ={...fI,..._Z},IZ=$Z(),Nb=IZ?AZ:xZ,PZ=X0.WriteStream.prototype.hasColors(),Wp=(t,e)=>{if(!PZ)return i=>i;const n=`\x1B[${t}m`,r=`\x1B[${e}m`;return i=>{const s=i+"";let o=s.indexOf(r);if(o===-1)return n+s+r;let a=n,c=0;for(;o!==-1;)a+=s.slice(c,o)+n,c=o+r.length,o=s.indexOf(r,c);return a+=s.slice(c)+r,a}},NZ=Wp(1,22),Ob=Wp(90,39),OZ=Wp(91,39),FZ=Wp(93,39),LZ=({type:t,message:e,timestamp:n,piped:r,commandId:i,result:{failed:s=!1}={},options:{reject:o=!0}})=>{const a=MZ(n),c=zZ[t]({failed:s,reject:o,piped:r}),u=BZ[t]({reject:o});return`${Ob(`[${a}]`)} ${Ob(`[${i}]`)} ${u(c)} ${u(e)}`},MZ=t=>`${Hp(t.getHours(),2)}:${Hp(t.getMinutes(),2)}:${Hp(t.getSeconds(),2)}.${Hp(t.getMilliseconds(),3)}`,Hp=(t,e)=>String(t).padStart(e,"0"),hI=({failed:t,reject:e})=>t?e?Nb.cross:Nb.warning:Nb.tick,zZ={command:({piped:t})=>t?"|":"$",output:()=>" ",ipc:()=>"*",error:hI,duration:hI},pI=t=>t,BZ={command:()=>NZ,output:()=>pI,ipc:()=>pI,error:({reject:t})=>t?OZ:FZ,duration:()=>Ob},qZ=(t,e,n)=>{const r=yZ(e,n);return t.map(({verboseLine:i,verboseObject:s})=>jZ(i,s,r)).filter(i=>i!==void 0).map(i=>UZ(i)).join("")},jZ=(t,e,n)=>{if(n===void 0)return t;const r=n(t,e);if(typeof r=="string")return r},UZ=t=>t.endsWith(`
1779
+ `)?t:`${t}
1780
+ `,id=({type:t,verboseMessage:e,fdNumber:n,verboseInfo:r,result:i})=>{const s=GZ({type:t,result:i,verboseInfo:r}),o=WZ(e,s),a=qZ(o,r,n);H0(VZ,a)},GZ=({type:t,result:e,verboseInfo:{escapedCommand:n,commandId:r,rawOptions:{piped:i=!1,...s}}})=>({type:t,escapedCommand:n,commandId:`${r}`,timestamp:new Date,piped:i,result:e,options:s}),WZ=(t,e)=>t.split(`
1781
+ `).map(n=>HZ({...e,message:n})),HZ=t=>({verboseLine:LZ(t),verboseObject:t}),VZ=2,mI=t=>{const e=typeof t=="string"?t:Y0(t);return Pb(e).replaceAll(" "," ".repeat(KZ))},KZ=2,YZ=(t,e)=>{Cb(e)&&id({type:"command",verboseMessage:t,verboseInfo:e})},XZ=(t,e,n)=>{QZ(t);const r=JZ(t);return{verbose:t,escapedCommand:e,commandId:r,rawOptions:n}},JZ=t=>Cb({verbose:t})?ZZ++:void 0;let ZZ=0n;const QZ=t=>{for(const e of t){if(e===!1)throw new TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(e===!0)throw new TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!Ib.includes(e)&&!xb(e)){const n=Ib.map(r=>`'${r}'`).join(", ");throw new TypeError(`The "verbose" option must not be ${e}. Allowed values are: ${n} or a function.`)}}},gI=()=>md.bigint(),yI=t=>Number(md.bigint()-t)/1e6,vI=(t,e,n)=>{const r=gI(),{command:i,escapedCommand:s}=wZ(t,e),o=aI(n,"verbose"),a=XZ(o,s,{...n});return YZ(s,a),{command:i,escapedCommand:s,startTime:r,verboseInfo:a}};var ho={exports:{}},Fb,wI;function eQ(){if(wI)return Fb;wI=1,Fb=r,r.sync=i;var t=hh;function e(s,o){var a=o.pathExt!==void 0?o.pathExt:process.env.PATHEXT;if(!a||(a=a.split(";"),a.indexOf("")!==-1))return!0;for(var c=0;c<a.length;c++){var u=a[c].toLowerCase();if(u&&s.substr(-u.length).toLowerCase()===u)return!0}return!1}function n(s,o,a){return!s.isSymbolicLink()&&!s.isFile()?!1:e(o,a)}function r(s,o,a){t.stat(s,function(c,u){a(c,c?!1:n(u,s,o))})}function i(s,o){return n(t.statSync(s),s,o)}return Fb}var Lb,bI;function tQ(){if(bI)return Lb;bI=1,Lb=e,e.sync=n;var t=hh;function e(s,o,a){t.stat(s,function(c,u){a(c,c?!1:r(u,o))})}function n(s,o){return r(t.statSync(s),o)}function r(s,o){return s.isFile()&&i(s,o)}function i(s,o){var a=s.mode,c=s.uid,u=s.gid,l=o.uid!==void 0?o.uid:process.getuid&&process.getuid(),d=o.gid!==void 0?o.gid:process.getgid&&process.getgid(),f=parseInt("100",8),h=parseInt("010",8),p=parseInt("001",8),m=f|h,y=a&p||a&h&&u===d||a&f&&c===l||a&m&&l===0;return y}return Lb}var Mb,EI;function nQ(){if(EI)return Mb;EI=1;var t;process.platform==="win32"||J3.TESTING_WINDOWS?t=eQ():t=tQ(),Mb=e,e.sync=n;function e(r,i,s){if(typeof i=="function"&&(s=i,i={}),!s){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){e(r,i||{},function(c,u){c?a(c):o(u)})})}t(r,i||{},function(o,a){o&&(o.code==="EACCES"||i&&i.ignoreErrors)&&(o=null,a=!1),s(o,a)})}function n(r,i){try{return t.sync(r,i||{})}catch(s){if(i&&i.ignoreErrors||s.code==="EACCES")return!1;throw s}}return Mb}var zb,DI;function rQ(){if(DI)return zb;DI=1;const t=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",e=su,n=t?";":":",r=nQ(),i=c=>Object.assign(new Error(`not found: ${c}`),{code:"ENOENT"}),s=(c,u)=>{const l=u.colon||n,d=c.match(/\//)||t&&c.match(/\\/)?[""]:[...t?[process.cwd()]:[],...(u.path||process.env.PATH||"").split(l)],f=t?u.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",h=t?f.split(l):[""];return t&&c.indexOf(".")!==-1&&h[0]!==""&&h.unshift(""),{pathEnv:d,pathExt:h,pathExtExe:f}},o=(c,u,l)=>{typeof u=="function"&&(l=u,u={}),u||(u={});const{pathEnv:d,pathExt:f,pathExtExe:h}=s(c,u),p=[],m=g=>new Promise((w,E)=>{if(g===d.length)return u.all&&p.length?w(p):E(i(c));const k=d[g],A=/^".*"$/.test(k)?k.slice(1,-1):k,I=e.join(A,c),x=!A&&/^\.[\\\/]/.test(c)?c.slice(0,2)+I:I;w(y(x,g,0))}),y=(g,w,E)=>new Promise((k,A)=>{if(E===f.length)return k(m(w+1));const I=f[E];r(g+I,{pathExt:h},(x,_)=>{if(!x&&_)if(u.all)p.push(g+I);else return k(g+I);return k(y(g,w,E+1))})});return l?m(0).then(g=>l(null,g),l):m(0)},a=(c,u)=>{u=u||{};const{pathEnv:l,pathExt:d,pathExtExe:f}=s(c,u),h=[];for(let p=0;p<l.length;p++){const m=l[p],y=/^".*"$/.test(m)?m.slice(1,-1):m,g=e.join(y,c),w=!y&&/^\.[\\\/]/.test(c)?c.slice(0,2)+g:g;for(let E=0;E<d.length;E++){const k=w+d[E];try{if(r.sync(k,{pathExt:f}))if(u.all)h.push(k);else return k}catch{}}}if(u.all&&h.length)return h;if(u.nothrow)return null;throw i(c)};return zb=o,o.sync=a,zb}var Vp={exports:{}},TI;function iQ(){if(TI)return Vp.exports;TI=1;const t=(e={})=>{const n=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(n).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};return Vp.exports=t,Vp.exports.default=t,Vp.exports}var Bb,RI;function sQ(){if(RI)return Bb;RI=1;const t=su,e=rQ(),n=iQ();function r(s,o){const a=s.options.env||process.env,c=process.cwd(),u=s.options.cwd!=null,l=u&&process.chdir!==void 0&&!process.chdir.disabled;if(l)try{process.chdir(s.options.cwd)}catch{}let d;try{d=e.sync(s.command,{path:a[n({env:a})],pathExt:o?t.delimiter:void 0})}catch{}finally{l&&process.chdir(c)}return d&&(d=t.resolve(u?s.options.cwd:"",d)),d}function i(s){return r(s)||r(s,!0)}return Bb=i,Bb}var Kp={},SI;function oQ(){if(SI)return Kp;SI=1;const t=/([()\][%!^"`<>&|;, *?])/g;function e(r){return r=r.replace(t,"^$1"),r}function n(r,i){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(t,"^$1"),i&&(r=r.replace(t,"^$1")),r}return Kp.command=e,Kp.argument=n,Kp}var qb,kI;function aQ(){return kI||(kI=1,qb=/^#!(.*)/),qb}var jb,$I;function cQ(){if($I)return jb;$I=1;const t=aQ();return jb=(e="")=>{const n=e.match(t);if(!n)return null;const[r,i]=n[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?i:i?`${s} ${i}`:s},jb}var Ub,CI;function uQ(){if(CI)return Ub;CI=1;const t=hh,e=cQ();function n(r){const s=Buffer.alloc(150);let o;try{o=t.openSync(r,"r"),t.readSync(o,s,0,150,0),t.closeSync(o)}catch{}return e(s.toString())}return Ub=n,Ub}var Gb,_I;function lQ(){if(_I)return Gb;_I=1;const t=su,e=sQ(),n=oQ(),r=uQ(),i=process.platform==="win32",s=/\.(?:com|exe)$/i,o=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function a(l){l.file=e(l);const d=l.file&&r(l.file);return d?(l.args.unshift(l.file),l.command=d,e(l)):l.file}function c(l){if(!i)return l;const d=a(l),f=!s.test(d);if(l.options.forceShell||f){const h=o.test(d);l.command=t.normalize(l.command),l.command=n.command(l.command),l.args=l.args.map(m=>n.argument(m,h));const p=[l.command].concat(l.args).join(" ");l.args=["/d","/s","/c",`"${p}"`],l.command=process.env.comspec||"cmd.exe",l.options.windowsVerbatimArguments=!0}return l}function u(l,d,f){d&&!Array.isArray(d)&&(f=d,d=null),d=d?d.slice(0):[],f=Object.assign({},f);const h={command:l,args:d,options:f,file:void 0,original:{command:l,args:d}};return f.shell?h:c(h)}return Gb=u,Gb}var Wb,AI;function dQ(){if(AI)return Wb;AI=1;const t=process.platform==="win32";function e(s,o){return Object.assign(new Error(`${o} ${s.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${o} ${s.command}`,path:s.command,spawnargs:s.args})}function n(s,o){if(!t)return;const a=s.emit;s.emit=function(c,u){if(c==="exit"){const l=r(u,o);if(l)return a.call(s,"error",l)}return a.apply(s,arguments)}}function r(s,o){return t&&s===1&&!o.file?e(o.original,"spawn"):null}function i(s,o){return t&&s===1&&!o.file?e(o.original,"spawnSync"):null}return Wb={hookChildProcess:n,verifyENOENT:r,verifyENOENTSync:i,notFoundError:e},Wb}var xI;function fQ(){if(xI)return ho.exports;xI=1;const t=tC,e=lQ(),n=dQ();function r(s,o,a){const c=e(s,o,a),u=t.spawn(c.command,c.args,c.options);return n.hookChildProcess(u,c),u}function i(s,o,a){const c=e(s,o,a),u=t.spawnSync(c.command,c.args,c.options);return u.error=u.error||n.verifyENOENTSync(u.status,c),u}return ho.exports=r,ho.exports.spawn=r,ho.exports.sync=i,ho.exports._parse=e,ho.exports._enoent=n,ho.exports}var hQ=fQ();function II(t={}){const{env:e=process.env,platform:n=process.platform}=t;return n!=="win32"?"PATH":Object.keys(e).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"}const pQ=({cwd:t=Oe.cwd(),path:e=Oe.env[II()],preferLocal:n=!0,execPath:r=Oe.execPath,addExecPath:i=!0}={})=>{const s=t instanceof URL?gm(t):t,o=Jr.resolve(s),a=[];return n&&mQ(a,o),i&&gQ(a,r,o),[...a,e].join(Jr.delimiter)},mQ=(t,e)=>{let n;for(;n!==e;)t.push(Jr.join(e,"node_modules/.bin")),n=e,e=Jr.resolve(e,"..")},gQ=(t,e,n)=>{const r=e instanceof URL?gm(e):e;t.push(Jr.resolve(n,r,".."))},yQ=({env:t=Oe.env,...e}={})=>{t={...t};const n=II({env:t});return e.path=t[n],t[n]=pQ(e),t},vQ=(t,e,n)=>{const r=n?Kb:Vb,i=t instanceof sd?{}:{cause:t};return new r(e,i)};class sd extends Error{}const PI=(t,e)=>{Object.defineProperty(t.prototype,"name",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,NI,{value:!0,writable:!1,enumerable:!1,configurable:!1})},wQ=t=>Hb(t)&&NI in t,NI=Symbol("isExecaError"),Hb=t=>Object.prototype.toString.call(t)==="[object Error]";class Vb extends Error{}PI(Vb,Vb.name);class Kb extends Error{}PI(Kb,Kb.name);const bQ=()=>{const t=FI-OI+1;return Array.from({length:t},EQ)},EQ=(t,e)=>({name:`SIGRT${e+1}`,number:OI+e,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),OI=34,FI=64,DQ=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],LI=()=>{const t=bQ();return[...DQ,...t].map(TQ)},TQ=({name:t,number:e,description:n,action:r,forced:i=!1,standard:s})=>{const{signals:{[t]:o}}=bs,a=o!==void 0;return{name:t,number:a?o:e,description:n,supported:a,action:r,forced:i,standard:s}},RQ=()=>{const t=LI();return Object.fromEntries(t.map(SQ))},SQ=({name:t,number:e,description:n,supported:r,action:i,forced:s,standard:o})=>[t,{name:t,number:e,description:n,supported:r,action:i,forced:s,standard:o}],kQ=RQ(),$Q=()=>{const t=LI(),e=FI+1,n=Array.from({length:e},(r,i)=>CQ(i,t));return Object.assign({},...n)},CQ=(t,e)=>{const n=_Q(t,e);if(n===void 0)return{};const{name:r,description:i,supported:s,action:o,forced:a,standard:c}=n;return{[t]:{name:r,number:t,description:i,supported:s,action:o,forced:a,standard:c}}},_Q=(t,e)=>{const n=e.find(({name:r})=>bs.signals[r]===t);return n!==void 0?n:e.find(r=>r.number===t)};$Q();const AQ=t=>{const e="option `killSignal`";if(t===0)throw new TypeError(`Invalid ${e}: 0 cannot be used.`);return MI(t,e)},xQ=t=>t===0?t:MI(t,"`subprocess.kill()`'s argument"),MI=(t,e)=>{if(Number.isInteger(t))return IQ(t,e);if(typeof t=="string")return NQ(t,e);throw new TypeError(`Invalid ${e} ${String(t)}: it must be a string or an integer.
1782
+ ${Yb()}`)},IQ=(t,e)=>{if(zI.has(t))return zI.get(t);throw new TypeError(`Invalid ${e} ${t}: this signal integer does not exist.
1783
+ ${Yb()}`)},PQ=()=>new Map(Object.entries(bs.signals).reverse().map(([t,e])=>[e,t])),zI=PQ(),NQ=(t,e)=>{if(t in bs.signals)return t;throw t.toUpperCase()in bs.signals?new TypeError(`Invalid ${e} '${t}': please rename it to '${t.toUpperCase()}'.`):new TypeError(`Invalid ${e} '${t}': this signal name does not exist.
1784
+ ${Yb()}`)},Yb=()=>`Available signal names: ${OQ()}.
1785
+ Available signal numbers: ${FQ()}.`,OQ=()=>Object.keys(bs.signals).sort().map(t=>`'${t}'`).join(", "),FQ=()=>[...new Set(Object.values(bs.signals).sort((t,e)=>t-e))].join(", "),BI=t=>kQ[t].description,LQ=t=>{if(t===!1)return t;if(t===!0)return MQ;if(!Number.isFinite(t)||t<0)throw new TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${t}\` (${typeof t})`);return t},MQ=1e3*5,zQ=({kill:t,options:{forceKillAfterDelay:e,killSignal:n},onInternalError:r,context:i,controller:s},o,a)=>{const{signal:c,error:u}=BQ(o,a,n);qQ(u,r);const l=t(c);return jQ({kill:t,signal:c,forceKillAfterDelay:e,killSignal:n,killResult:l,context:i,controller:s}),l},BQ=(t,e,n)=>{const[r=n,i]=Hb(t)?[void 0,t]:[t,e];if(typeof r!="string"&&!Number.isInteger(r))throw new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(r)}`);if(i!==void 0&&!Hb(i))throw new TypeError(`The second argument is optional. If specified, it must be an error instance: ${i}`);return{signal:xQ(r),error:i}},qQ=(t,e)=>{t!==void 0&&e.reject(t)},jQ=async({kill:t,signal:e,forceKillAfterDelay:n,killSignal:r,killResult:i,context:s,controller:o})=>{e===r&&i&&qI({kill:t,forceKillAfterDelay:n,context:s,controllerSignal:o.signal})},qI=async({kill:t,forceKillAfterDelay:e,context:n,controllerSignal:r})=>{if(e!==!1)try{await Q0(e,void 0,{signal:r}),t("SIGKILL")&&(n.isForcefullyTerminated??=!0)}catch{}},jI=async(t,e)=>{t.aborted||await vn(t,"abort",{signal:e})},UQ=({cancelSignal:t})=>{if(t!==void 0&&Object.prototype.toString.call(t)!=="[object AbortSignal]")throw new Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(t)}`)},GQ=({subprocess:t,cancelSignal:e,gracefulCancel:n,context:r,controller:i})=>e===void 0||n?[]:[WQ(t,e,r,i)],WQ=async(t,e,n,{signal:r})=>{throw await jI(e,r),n.terminationReason??="cancel",t.kill(),e.reason},Xb=({methodName:t,isSubprocess:e,ipc:n,isConnected:r})=>{HQ(t,e,n),UI(t,e,r)},HQ=(t,e,n)=>{if(!n)throw new Error(`${Dr(t,e)} can only be used if the \`ipc\` option is \`true\`.`)},UI=(t,e,n)=>{if(!n)throw new Error(`${Dr(t,e)} cannot be used: the ${us(e)} has already exited or disconnected.`)},VQ=t=>{throw new Error(`${Dr("getOneMessage",t)} could not complete: the ${us(t)} exited or disconnected.`)},KQ=t=>{throw new Error(`${Dr("sendMessage",t)} failed: the ${us(t)} is sending a message too, instead of listening to incoming messages.
1786
+ This can be fixed by both sending a message and listening to incoming messages at the same time:
1787
+
1788
+ const [receivedMessage] = await Promise.all([
1789
+ ${Dr("getOneMessage",t)},
1790
+ ${Dr("sendMessage",t,"message, {strict: true}")},
1791
+ ]);`)},GI=(t,e)=>new Error(`${Dr("sendMessage",e)} failed when sending an acknowledgment response to the ${us(e)}.`,{cause:t}),YQ=t=>{throw new Error(`${Dr("sendMessage",t)} failed: the ${us(t)} is not listening to incoming messages.`)},XQ=t=>{throw new Error(`${Dr("sendMessage",t)} failed: the ${us(t)} exited without listening to incoming messages.`)},JQ=()=>new Error(`\`cancelSignal\` aborted: the ${us(!0)} disconnected.`),ZQ=()=>{throw new Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},QQ=({error:t,methodName:e,isSubprocess:n})=>{if(t.code==="EPIPE")throw new Error(`${Dr(e,n)} cannot be used: the ${us(n)} is disconnecting.`,{cause:t})},eee=({error:t,methodName:e,isSubprocess:n,message:r})=>{if(tee(t))throw new Error(`${Dr(e,n)}'s argument type is invalid: the message cannot be serialized: ${String(r)}.`,{cause:t})},tee=({code:t,message:e})=>nee.has(t)||ree.some(n=>e.includes(n)),nee=new Set(["ERR_MISSING_ARGS","ERR_INVALID_ARG_TYPE"]),ree=["could not be cloned","circular structure","call stack size exceeded"],Dr=(t,e,n="")=>t==="cancelSignal"?"`cancelSignal`'s `controller.abort()`":`${iee(e)}${t}(${n})`,iee=t=>t?"":"subprocess.",us=t=>t?"parent process":"subprocess",Jb=t=>{t.connected&&t.disconnect()},od=()=>{const t={},e=new Promise((n,r)=>{Object.assign(t,{resolve:n,reject:r})});return Object.assign(e,t)},WI=(t,e="stdin")=>{const{options:r,fileDescriptors:i}=po.get(t),s=HI(i,e,!0),o=t.stdio[s];if(o===null)throw new TypeError(VI(s,e,r,!0));return o},Zb=(t,e="stdout")=>{const{options:r,fileDescriptors:i}=po.get(t),s=HI(i,e,!1),o=s==="all"?t.all:t.stdio[s];if(o==null)throw new TypeError(VI(s,e,r,!1));return o},po=new WeakMap,HI=(t,e,n)=>{const r=see(e,n);return oee(r,e,n,t),r},see=(t,e)=>{const n=uI(t);if(n!==void 0)return n;const{validOptions:r,defaultValue:i}=e?{validOptions:'"stdin"',defaultValue:"stdin"}:{validOptions:'"stdout", "stderr", "all"',defaultValue:"stdout"};throw new TypeError(`"${ad(e)}" must not be "${t}".
1792
+ It must be ${r} or "fd3", "fd4" (and so on).
1793
+ It is optional and defaults to "${i}".`)},oee=(t,e,n,r)=>{const i=r[KI(t)];if(i===void 0)throw new TypeError(`"${ad(n)}" must not be ${e}. That file descriptor does not exist.
1794
+ Please set the "stdio" option to ensure that file descriptor exists.`);if(i.direction==="input"&&!n)throw new TypeError(`"${ad(n)}" must not be ${e}. It must be a readable stream, not writable.`);if(i.direction!=="input"&&n)throw new TypeError(`"${ad(n)}" must not be ${e}. It must be a writable stream, not readable.`)},VI=(t,e,n,r)=>{if(t==="all"&&!n.all)return`The "all" option must be true to use "from: 'all'".`;const{optionName:i,optionValue:s}=aee(t,n);return`The "${i}: ${Qb(s)}" option is incompatible with using "${ad(r)}: ${Qb(e)}".
1795
+ Please set this option with "pipe" instead.`},aee=(t,{stdin:e,stdout:n,stderr:r,stdio:i})=>{const s=KI(t);return s===0&&e!==void 0?{optionName:"stdin",optionValue:e}:s===1&&n!==void 0?{optionName:"stdout",optionValue:n}:s===2&&r!==void 0?{optionName:"stderr",optionValue:r}:{optionName:`stdio[${s}]`,optionValue:i[s]}},KI=t=>t==="all"?1:t,ad=t=>t?"to":"from",Qb=t=>typeof t=="string"?`'${t}'`:typeof t=="number"?`${t}`:"Stream",Yp=(t,e,n)=>{const r=t.getMaxListeners();r===0||r===Number.POSITIVE_INFINITY||(t.setMaxListeners(r+e),tE(n,()=>{t.setMaxListeners(t.getMaxListeners()-e)}))},YI=(t,e)=>{e&&e0(t)},e0=t=>{t.refCounted()},XI=(t,e)=>{e&&t0(t)},t0=t=>{t.unrefCounted()},cee=(t,e)=>{e&&(t0(t),t0(t))},uee=(t,e)=>{e&&(e0(t),e0(t))},lee=async({anyProcess:t,channel:e,isSubprocess:n,ipcEmitter:r},i)=>{if(yee(i)||_ee(i))return;Xp.has(t)||Xp.set(t,[]);const s=Xp.get(t);if(s.push(i),!(s.length>1))for(;s.length>0;){await Dee(t,r,i),await eE.yield();const o=await gee({wrappedMessage:s[0],anyProcess:t,channel:e,isSubprocess:n,ipcEmitter:r});s.shift(),r.emit("message",o),r.emit("message:done")}},dee=async({anyProcess:t,channel:e,isSubprocess:n,ipcEmitter:r,boundOnMessage:i})=>{rP();const s=Xp.get(t);for(;s?.length>0;)await vn(r,"message:done");t.removeListener("message",i),uee(e,n),r.connected=!1,r.emit("disconnect")},Xp=new WeakMap,Jp=(t,e,n)=>{if(Zp.has(t))return Zp.get(t);const r=new M2;return r.connected=!0,Zp.set(t,r),fee({ipcEmitter:r,anyProcess:t,channel:e,isSubprocess:n}),r},Zp=new WeakMap,fee=({ipcEmitter:t,anyProcess:e,channel:n,isSubprocess:r})=>{const i=lee.bind(void 0,{anyProcess:e,channel:n,isSubprocess:r,ipcEmitter:t});e.on("message",i),e.once("disconnect",dee.bind(void 0,{anyProcess:e,channel:n,isSubprocess:r,ipcEmitter:t,boundOnMessage:i})),cee(n,r)},JI=t=>{const e=Zp.get(t);return e===void 0?t.channel!==null:e.connected},hee=({anyProcess:t,channel:e,isSubprocess:n,message:r,strict:i})=>{if(!i)return r;const s=Jp(t,e,n),o=n0(t,s);return{id:pee++,type:em,message:r,hasListeners:o}};let pee=0n;const mee=(t,e)=>{if(!(e?.type!==em||e.hasListeners))for(const{id:n}of t)n!==void 0&&Qp[n].resolve({isDeadlock:!0,hasListeners:!1})},gee=async({wrappedMessage:t,anyProcess:e,channel:n,isSubprocess:r,ipcEmitter:i})=>{if(t?.type!==em||!e.connected)return t;const{id:s,message:o}=t,a={id:s,type:ZI,message:n0(e,i)};try{await QI({anyProcess:e,channel:n,isSubprocess:r,ipc:!0},a)}catch(c){i.emit("strict:error",c)}return o},yee=t=>{if(t?.type!==ZI)return!1;const{id:e,message:n}=t;return Qp[e]?.resolve({isDeadlock:!1,hasListeners:n}),!0},vee=async(t,e,n)=>{if(t?.type!==em)return;const r=od();Qp[t.id]=r;const i=new AbortController;try{const{isDeadlock:s,hasListeners:o}=await Promise.race([r,wee(e,n,i)]);s&&KQ(n),o||YQ(n)}finally{i.abort(),delete Qp[t.id]}},Qp={},wee=async(t,e,{signal:n})=>{Yp(t,1,n),await vn(t,"disconnect",{signal:n}),XQ(e)},em="execa:ipc:request",ZI="execa:ipc:response",bee=(t,e,n)=>{cd.has(t)||cd.set(t,new Set);const r=cd.get(t),i=od(),s=n?e.id:void 0,o={onMessageSent:i,id:s};return r.add(o),{outgoingMessages:r,outgoingMessage:o}},Eee=({outgoingMessages:t,outgoingMessage:e})=>{t.delete(e),e.onMessageSent.resolve()},Dee=async(t,e,n)=>{for(;!n0(t,e)&&cd.get(t)?.size>0;){const r=[...cd.get(t)];mee(r,n),await Promise.all(r.map(({onMessageSent:i})=>i))}},cd=new WeakMap,n0=(t,e)=>e.listenerCount("message")>Tee(t),Tee=t=>po.has(t)&&!rd(po.get(t).options.buffer,"ipc")?1:0,QI=({anyProcess:t,channel:e,isSubprocess:n,ipc:r},i,{strict:s=!1}={})=>{const o="sendMessage";return Xb({methodName:o,isSubprocess:n,ipc:r,isConnected:t.connected}),Ree({anyProcess:t,channel:e,methodName:o,isSubprocess:n,message:i,strict:s})},Ree=async({anyProcess:t,channel:e,methodName:n,isSubprocess:r,message:i,strict:s})=>{const o=hee({anyProcess:t,channel:e,isSubprocess:r,message:i,strict:s}),a=bee(t,o,s);try{await eP({anyProcess:t,methodName:n,isSubprocess:r,wrappedMessage:o,message:i})}catch(c){throw Jb(t),c}finally{Eee(a)}},eP=async({anyProcess:t,methodName:e,isSubprocess:n,wrappedMessage:r,message:i})=>{const s=See(t);try{await Promise.all([vee(r,t,n),s(r)])}catch(o){throw QQ({error:o,methodName:e,isSubprocess:n}),eee({error:o,methodName:e,isSubprocess:n,message:i}),o}},See=t=>{if(r0.has(t))return r0.get(t);const e=$2(t.send.bind(t));return r0.set(t,e),e},r0=new WeakMap,kee=(t,e)=>{const n="cancelSignal";return UI(n,!1,t.connected),eP({anyProcess:t,methodName:n,isSubprocess:!1,wrappedMessage:{type:nP,message:e},message:e})},$ee=async({anyProcess:t,channel:e,isSubprocess:n,ipc:r})=>(await Cee({anyProcess:t,channel:e,isSubprocess:n,ipc:r}),i0.signal),Cee=async({anyProcess:t,channel:e,isSubprocess:n,ipc:r})=>{if(!tP){if(tP=!0,!r){ZQ();return}if(e===null){rP();return}Jp(t,e,n),await eE.yield()}};let tP=!1;const _ee=t=>t?.type!==nP?!1:(i0.abort(t.message),!0),nP="execa:ipc:cancel",rP=()=>{i0.abort(JQ())},i0=new AbortController,Aee=({gracefulCancel:t,cancelSignal:e,ipc:n,serialization:r})=>{if(t){if(e===void 0)throw new Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!n)throw new Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(r==="json")throw new Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")}},xee=({subprocess:t,cancelSignal:e,gracefulCancel:n,forceKillAfterDelay:r,context:i,controller:s})=>n?[Iee({subprocess:t,cancelSignal:e,forceKillAfterDelay:r,context:i,controller:s})]:[],Iee=async({subprocess:t,cancelSignal:e,forceKillAfterDelay:n,context:r,controller:{signal:i}})=>{await jI(e,i);const s=Pee(e);throw await kee(t,s),qI({kill:t.kill,forceKillAfterDelay:n,context:r,controllerSignal:i}),r.terminationReason??="gracefulCancel",e.reason},Pee=({reason:t})=>{if(!(t instanceof DOMException))return t;const e=new Error(t.message);return Object.defineProperty(e,"stack",{value:t.stack,enumerable:!1,configurable:!0,writable:!0}),e},Nee=({timeout:t})=>{if(t!==void 0&&(!Number.isFinite(t)||t<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${t}\` (${typeof t})`)},Oee=(t,e,n,r)=>e===0||e===void 0?[]:[Fee(t,e,n,r)],Fee=async(t,e,n,{signal:r})=>{throw await Q0(e,void 0,{signal:r}),n.terminationReason??="timeout",t.kill(),new sd},Lee=({options:t})=>{if(t.node===!1)throw new TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...t,node:!0}}},Mee=(t,e,{node:n=!1,nodePath:r=A2,nodeOptions:i=x2.filter(c=>!c.startsWith("--inspect")),cwd:s,execPath:o,...a})=>{if(o!==void 0)throw new TypeError('The "execPath" option has been removed. Please use the "nodePath" option instead.');const c=Sb(r,'The "nodePath" option'),u=Jr.resolve(s,c),l={...a,nodePath:u,node:n,cwd:s};if(!n)return[t,e,l];if(Jr.basename(t,".exe")==="node")throw new TypeError('When the "node" option is true, the first argument does not need to be "node".');return[u,[...i,t,...e],{ipc:!0,...l,shell:!1}]},zee=({ipcInput:t,ipc:e,serialization:n})=>{if(t!==void 0){if(!e)throw new Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");jee[n](t)}},Bee=t=>{try{B2(t)}catch(e){throw new Error("The `ipcInput` option is not serializable with a structured clone.",{cause:e})}},qee=t=>{try{JSON.stringify(t)}catch(e){throw new Error("The `ipcInput` option is not serializable with JSON.",{cause:e})}},jee={advanced:Bee,json:qee},Uee=async(t,e)=>{e!==void 0&&await t.sendMessage(e)},Gee=({encoding:t})=>{if(s0.has(t))return;const e=Hee(t);if(e!==void 0)throw new TypeError(`Invalid option \`encoding: ${tm(t)}\`.
1796
+ Please rename it to ${tm(e)}.`);const n=[...s0].map(r=>tm(r)).join(", ");throw new TypeError(`Invalid option \`encoding: ${tm(t)}\`.
1797
+ Please rename it to one of: ${n}.`)},Wee=new Set(["utf8","utf16le"]),mo=new Set(["buffer","hex","base64","base64url","latin1","ascii"]),s0=new Set([...Wee,...mo]),Hee=t=>{if(t===null)return"buffer";if(typeof t!="string")return;const e=t.toLowerCase();if(e in iP)return iP[e];if(s0.has(e))return e},iP={"utf-8":"utf8","utf-16le":"utf16le","ucs-2":"utf16le",ucs2:"utf16le",binary:"latin1"},tm=t=>typeof t=="string"?`"${t}"`:String(t),Vee=(t=sP())=>{const e=Sb(t,'The "cwd" option');return Jr.resolve(e)},sP=()=>{try{return Oe.cwd()}catch(t){throw t.message=`The current directory does not exist.
1798
+ ${t.message}`,t}},Kee=(t,e)=>{if(e===sP())return t;let n;try{n=m2(e)}catch(r){return`The "cwd" option is invalid: ${e}.
1799
+ ${r.message}
1800
+ ${t}`}return n.isDirectory()?t:`The "cwd" option is not a directory: ${e}.
1801
+ ${t}`},oP=(t,e,n)=>{n.cwd=Vee(n.cwd);const[r,i,s]=Mee(t,e,n),{command:o,args:a,options:c}=hQ._parse(r,i,s),u=aZ(c),l=Yee(u);return Nee(l),Gee(l),zee(l),UQ(l),Aee(l),l.shell=Jx(l.shell),l.env=Xee(l),l.killSignal=AQ(l.killSignal),l.forceKillAfterDelay=LQ(l.forceKillAfterDelay),l.lines=l.lines.map((d,f)=>d&&!mo.has(l.encoding)&&l.buffer[f]),Oe.platform==="win32"&&Jr.basename(o,".exe")==="cmd"&&a.unshift("/q"),{file:o,commandArguments:a,options:l}},Yee=({extendEnv:t=!0,preferLocal:e=!1,cwd:n,localDir:r=n,encoding:i="utf8",reject:s=!0,cleanup:o=!0,all:a=!1,windowsHide:c=!0,killSignal:u="SIGTERM",forceKillAfterDelay:l=!0,gracefulCancel:d=!1,ipcInput:f,ipc:h=f!==void 0||d,serialization:p="advanced",...m})=>({...m,extendEnv:t,preferLocal:e,cwd:n,localDirectory:r,encoding:i,reject:s,cleanup:o,all:a,windowsHide:c,killSignal:u,forceKillAfterDelay:l,gracefulCancel:d,ipcInput:f,ipc:h,serialization:p}),Xee=({env:t,extendEnv:e,preferLocal:n,node:r,localDirectory:i,nodePath:s})=>{const o=e?{...Oe.env,...t}:t;return n||r?yQ({env:o,cwd:i,execPath:s,preferLocal:n,addExecPath:r}):o};function o0(t){if(typeof t=="string")return Jee(t);if(!(ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT===1))throw new Error("Input must be a string or a Uint8Array");return Zee(t)}const Jee=t=>t.at(-1)===aP?t.slice(0,t.at(-2)===cP?-2:-1):t,Zee=t=>t.at(-1)===Qee?t.subarray(0,t.at(-2)===ete?-2:-1):t,aP=`
1802
+ `,Qee=aP.codePointAt(0),cP="\r",ete=cP.codePointAt(0);function go(t,{checkOpen:e=!0}={}){return t!==null&&typeof t=="object"&&(t.writable||t.readable||!e||t.writable===void 0&&t.readable===void 0)&&typeof t.pipe=="function"}function uP(t,{checkOpen:e=!0}={}){return go(t,{checkOpen:e})&&(t.writable||!e)&&typeof t.write=="function"&&typeof t.end=="function"&&typeof t.writable=="boolean"&&typeof t.writableObjectMode=="boolean"&&typeof t.destroy=="function"&&typeof t.destroyed=="boolean"}function nm(t,{checkOpen:e=!0}={}){return go(t,{checkOpen:e})&&(t.readable||!e)&&typeof t.read=="function"&&typeof t.readable=="boolean"&&typeof t.readableObjectMode=="boolean"&&typeof t.destroy=="function"&&typeof t.destroyed=="boolean"}function lP(t,e){return uP(t,e)&&nm(t,e)}const tte=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);let nte=class{#e;#t;#n=!1;#r=void 0;constructor(e,n){this.#e=e,this.#t=n}next(){const e=()=>this.#s();return this.#r=this.#r?this.#r.then(e,e):e(),this.#r}return(e){const n=()=>this.#i(e);return this.#r?this.#r.then(n,n):n()}async#s(){if(this.#n)return{done:!0,value:void 0};let e;try{e=await this.#e.read()}catch(n){throw this.#r=void 0,this.#n=!0,this.#e.releaseLock(),n}return e.done&&(this.#r=void 0,this.#n=!0,this.#e.releaseLock()),e}async#i(e){if(this.#n)return{done:!0,value:e};if(this.#n=!0,!this.#t){const n=this.#e.cancel(e);return this.#e.releaseLock(),await n,{done:!0,value:e}}return this.#e.releaseLock(),{done:!0,value:e}}};const a0=Symbol();function dP(){return this[a0].next()}Object.defineProperty(dP,"name",{value:"next"});function fP(t){return this[a0].return(t)}Object.defineProperty(fP,"name",{value:"return"});const rte=Object.create(tte,{next:{enumerable:!0,configurable:!0,writable:!0,value:dP},return:{enumerable:!0,configurable:!0,writable:!0,value:fP}});function ite({preventCancel:t=!1}={}){const e=this.getReader(),n=new nte(e,t),r=Object.create(rte);return r[a0]=n,r}const ste=t=>{if(nm(t,{checkOpen:!1})&&c0.on!==void 0)return ate(t);if(typeof t?.[Symbol.asyncIterator]=="function")return t;if(ote.call(t)==="[object ReadableStream]")return ite.call(t);throw new TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.")},{toString:ote}=Object.prototype,ate=async function*(t){const e=new AbortController,n={};cte(t,e,n);try{for await(const[r]of c0.on(t,"data",{signal:e.signal}))yield r}catch(r){if(n.error!==void 0)throw n.error;if(!e.signal.aborted)throw r}finally{t.destroy()}},cte=async(t,e,n)=>{try{await c0.finished(t,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(r){n.error=r}finally{e.abort()}},c0={},u0=async(t,{init:e,convertChunk:n,getSize:r,truncateChunk:i,addChunk:s,getFinalChunk:o,finalize:a},{maxBuffer:c=Number.POSITIVE_INFINITY}={})=>{const u=ste(t),l=e();l.length=0;try{for await(const d of u){const f=lte(d),h=n[f](d,l);hP({convertedChunk:h,state:l,getSize:r,truncateChunk:i,addChunk:s,maxBuffer:c})}return ute({state:l,convertChunk:n,getSize:r,truncateChunk:i,addChunk:s,getFinalChunk:o,maxBuffer:c}),a(l)}catch(d){const f=typeof d=="object"&&d!==null?d:new Error(d);throw f.bufferedData=a(l),f}},ute=({state:t,getSize:e,truncateChunk:n,addChunk:r,getFinalChunk:i,maxBuffer:s})=>{const o=i(t);o!==void 0&&hP({convertedChunk:o,state:t,getSize:e,truncateChunk:n,addChunk:r,maxBuffer:s})},hP=({convertedChunk:t,state:e,getSize:n,truncateChunk:r,addChunk:i,maxBuffer:s})=>{const o=n(t),a=e.length+o;if(a<=s){pP(t,e,i,a);return}const c=r(t,s-e.length);throw c!==void 0&&pP(c,e,i,s),new rm},pP=(t,e,n,r)=>{e.contents=n(t,e,r),e.length=r},lte=t=>{const e=typeof t;if(e==="string")return"string";if(e!=="object"||t===null)return"others";if(globalThis.Buffer?.isBuffer(t))return"buffer";const n=mP.call(t);return n==="[object ArrayBuffer]"?"arrayBuffer":n==="[object DataView]"?"dataView":Number.isInteger(t.byteLength)&&Number.isInteger(t.byteOffset)&&mP.call(t.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:mP}=Object.prototype;class rm extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}}const yo=t=>t,l0=()=>{},gP=({contents:t})=>t,yP=t=>{throw new Error(`Streams in object mode are not supported: ${String(t)}`)},vP=t=>t.length;async function dte(t,e){return u0(t,mte,e)}const fte=()=>({contents:[]}),hte=()=>1,pte=(t,{contents:e})=>(e.push(t),e),mte={init:fte,convertChunk:{string:yo,buffer:yo,arrayBuffer:yo,dataView:yo,typedArray:yo,others:yo},getSize:hte,truncateChunk:l0,addChunk:pte,getFinalChunk:l0,finalize:gP};async function gte(t,e){return u0(t,Ste,e)}const yte=()=>({contents:new ArrayBuffer(0)}),vte=t=>wte.encode(t),wte=new TextEncoder,wP=t=>new Uint8Array(t),bP=t=>new Uint8Array(t.buffer,t.byteOffset,t.byteLength),bte=(t,e)=>t.slice(0,e),Ete=(t,{contents:e,length:n},r)=>{const i=TP()?Tte(e,r):Dte(e,r);return new Uint8Array(i).set(t,n),i},Dte=(t,e)=>{if(e<=t.byteLength)return t;const n=new ArrayBuffer(EP(e));return new Uint8Array(n).set(new Uint8Array(t),0),n},Tte=(t,e)=>{if(e<=t.maxByteLength)return t.resize(e),t;const n=new ArrayBuffer(e,{maxByteLength:EP(e)});return new Uint8Array(n).set(new Uint8Array(t),0),n},EP=t=>DP**Math.ceil(Math.log(t)/Math.log(DP)),DP=2,Rte=({contents:t,length:e})=>TP()?t:t.slice(0,e),TP=()=>"resize"in ArrayBuffer.prototype,Ste={init:yte,convertChunk:{string:vte,buffer:wP,arrayBuffer:wP,dataView:bP,typedArray:bP,others:yP},getSize:vP,truncateChunk:bte,addChunk:Ete,getFinalChunk:l0,finalize:Rte};async function kte(t,e){return u0(t,xte,e)}const $te=()=>({contents:"",textDecoder:new TextDecoder}),im=(t,{textDecoder:e})=>e.decode(t,{stream:!0}),Cte=(t,{contents:e})=>e+t,_te=(t,e)=>t.slice(0,e),Ate=({textDecoder:t})=>{const e=t.decode();return e===""?void 0:e},xte={init:$te,convertChunk:{string:yo,buffer:im,arrayBuffer:im,dataView:im,typedArray:im,others:yP},getSize:vP,truncateChunk:_te,addChunk:Cte,getFinalChunk:Ate,finalize:gP},Ite=({error:t,stream:e,readableObjectMode:n,lines:r,encoding:i,fdNumber:s})=>{if(!(t instanceof rm))throw t;if(s==="all")return t;const o=Pte(n,r,i);throw t.maxBufferInfo={fdNumber:s,unit:o},e.destroy(),t},Pte=(t,e,n)=>t?"objects":e?"lines":n==="buffer"?"bytes":"characters",Nte=(t,e,n)=>{if(e.length!==n)return;const r=new rm;throw r.maxBufferInfo={fdNumber:"ipc"},r},Ote=(t,e)=>{const{streamName:n,threshold:r,unit:i}=Fte(t,e);return`Command's ${n} was larger than ${r} ${i}`},Fte=(t,e)=>{if(t?.maxBufferInfo===void 0)return{streamName:"output",threshold:e[1],unit:"bytes"};const{maxBufferInfo:{fdNumber:n,unit:r}}=t;delete t.maxBufferInfo;const i=rd(e,n);return n==="ipc"?{streamName:"IPC output",threshold:i,unit:"messages"}:{streamName:oI(n),threshold:i,unit:r}},Lte=(t,e,n)=>t?.code==="ENOBUFS"&&e!==null&&e.some(r=>r!==null&&r.length>d0(n)),Mte=(t,e,n)=>{if(!e)return t;const r=d0(n);return t.length>r?t.slice(0,r):t},d0=([,t])=>t,zte=({stdio:t,all:e,ipcOutput:n,originalError:r,signal:i,signalDescription:s,exitCode:o,escapedCommand:a,timedOut:c,isCanceled:u,isGracefullyCanceled:l,isMaxBuffer:d,isForcefullyTerminated:f,forceKillAfterDelay:h,killSignal:p,maxBuffer:m,timeout:y,cwd:g})=>{const w=r?.code,E=Bte({originalError:r,timedOut:c,timeout:y,isMaxBuffer:d,maxBuffer:m,errorCode:w,signal:i,signalDescription:s,exitCode:o,isCanceled:u,isGracefullyCanceled:l,isForcefullyTerminated:f,forceKillAfterDelay:h,killSignal:p}),k=jte(r,g),A=k===void 0?"":`
1803
+ ${k}`,I=`${E}: ${a}${A}`,x=e===void 0?[t[2],t[1]]:[e],_=[I,...x,...t.slice(3),n.map(P=>Ute(P)).join(`
1804
+ `)].map(P=>Pb(o0(Gte(P)))).filter(Boolean).join(`
1805
+
1806
+ `);return{originalMessage:k,shortMessage:I,message:_}},Bte=({originalError:t,timedOut:e,timeout:n,isMaxBuffer:r,maxBuffer:i,errorCode:s,signal:o,signalDescription:a,exitCode:c,isCanceled:u,isGracefullyCanceled:l,isForcefullyTerminated:d,forceKillAfterDelay:f,killSignal:h})=>{const p=qte(d,f);return e?`Command timed out after ${n} milliseconds${p}`:l?o===void 0?`Command was gracefully canceled with exit code ${c}`:d?`Command was gracefully canceled${p}`:`Command was gracefully canceled with ${o} (${a})`:u?`Command was canceled${p}`:r?`${Ote(t,i)}${p}`:s!==void 0?`Command failed with ${s}${p}`:d?`Command was killed with ${h} (${BI(h)})${p}`:o!==void 0?`Command was killed with ${o} (${a})`:c!==void 0?`Command failed with exit code ${c}`:"Command failed"},qte=(t,e)=>t?` and was forcefully terminated after ${e} milliseconds`:"",jte=(t,e)=>{if(t instanceof sd)return;const n=wQ(t)?t.originalMessage:String(t?.message??t),r=Pb(Kee(n,e));return r===""?void 0:r},Ute=t=>typeof t=="string"?t:Y0(t),Gte=t=>Array.isArray(t)?t.map(e=>o0(RP(e))).filter(Boolean).join(`
1807
+ `):RP(t),RP=t=>typeof t=="string"?t:Er(t)?tI(t):"",SP=({command:t,escapedCommand:e,stdio:n,all:r,ipcOutput:i,options:{cwd:s},startTime:o})=>kP({command:t,escapedCommand:e,cwd:s,durationMs:yI(o),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:n[1],stderr:n[2],all:r,stdio:n,ipcOutput:i,pipedFrom:[]}),f0=({error:t,command:e,escapedCommand:n,fileDescriptors:r,options:i,startTime:s,isSync:o})=>h0({error:t,command:e,escapedCommand:n,startTime:s,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:r.length}),ipcOutput:[],options:i,isSync:o}),h0=({error:t,command:e,escapedCommand:n,startTime:r,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:u,signal:l,stdio:d,all:f,ipcOutput:h,options:{timeoutDuration:p,timeout:m=p,forceKillAfterDelay:y,killSignal:g,cwd:w,maxBuffer:E},isSync:k})=>{const{exitCode:A,signal:I,signalDescription:x}=Hte(u,l),{originalMessage:_,shortMessage:P,message:O}=zte({stdio:d,all:f,ipcOutput:h,originalError:t,signal:I,signalDescription:x,exitCode:A,escapedCommand:n,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,forceKillAfterDelay:y,killSignal:g,maxBuffer:E,timeout:m,cwd:w}),C=vQ(t,O,k);return Object.assign(C,Wte({error:C,command:e,escapedCommand:n,startTime:r,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:A,signal:I,signalDescription:x,stdio:d,all:f,ipcOutput:h,cwd:w,originalMessage:_,shortMessage:P})),C},Wte=({error:t,command:e,escapedCommand:n,startTime:r,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:u,signal:l,signalDescription:d,stdio:f,all:h,ipcOutput:p,cwd:m,originalMessage:y,shortMessage:g})=>kP({shortMessage:g,originalMessage:y,command:e,escapedCommand:n,cwd:m,durationMs:yI(r),failed:!0,timedOut:i,isCanceled:s,isGracefullyCanceled:o,isTerminated:l!==void 0,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:u,signal:l,signalDescription:d,code:t.cause?.code,stdout:f[1],stderr:f[2],all:h,stdio:f,ipcOutput:p,pipedFrom:[]}),kP=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Hte=(t,e)=>{const n=t===null?void 0:t,r=e===null?void 0:e,i=r===void 0?void 0:BI(e);return{exitCode:n,signal:r,signalDescription:i}},$P=t=>Number.isFinite(t)?t:0;function Vte(t){return{days:Math.trunc(t/864e5),hours:Math.trunc(t/36e5%24),minutes:Math.trunc(t/6e4%60),seconds:Math.trunc(t/1e3%60),milliseconds:Math.trunc(t%1e3),microseconds:Math.trunc($P(t*1e3)%1e3),nanoseconds:Math.trunc($P(t*1e6)%1e3)}}function Kte(t){return{days:t/86400000n,hours:t/3600000n%24n,minutes:t/60000n%60n,seconds:t/1000n%60n,milliseconds:t%1000n,microseconds:0n,nanoseconds:0n}}function Yte(t){switch(typeof t){case"number":{if(Number.isFinite(t))return Vte(t);break}case"bigint":return Kte(t)}throw new TypeError("Expected a finite number or bigint")}const Xte=t=>t===0||t===0n,Jte=(t,e)=>e===1||e===1n?t:`${t}s`,Zte=1e-7,Qte=24n*60n*60n*1000n;function CP(t,e){const n=typeof t=="bigint";if(!n&&!Number.isFinite(t))throw new TypeError("Expected a finite number or bigint");e={...e};const r=t<0?"-":"";t=t<0?-t:t,e.colonNotation&&(e.compact=!1,e.formatSubMilliseconds=!1,e.separateMilliseconds=!1,e.verbose=!1),e.compact&&(e.unitCount=1,e.secondsDecimalDigits=0,e.millisecondsDecimalDigits=0);let i=[];const s=(l,d)=>{const f=Math.floor(l*10**d+Zte);return(Math.round(f)/10**d).toFixed(d)},o=(l,d,f,h)=>{if(!((i.length===0||!e.colonNotation)&&Xte(l)&&!(e.colonNotation&&f==="m"))){if(h??=String(l),e.colonNotation){const p=h.includes(".")?h.split(".")[0].length:h.length,m=i.length>0?2:1;h="0".repeat(Math.max(0,m-p))+h}else h+=e.verbose?" "+Jte(d,l):f;i.push(h)}},a=Yte(t),c=BigInt(a.days);if(o(c/365n,"year","y"),o(c%365n,"day","d"),o(Number(a.hours),"hour","h"),o(Number(a.minutes),"minute","m"),e.separateMilliseconds||e.formatSubMilliseconds||!e.colonNotation&&t<1e3){const l=Number(a.seconds),d=Number(a.milliseconds),f=Number(a.microseconds),h=Number(a.nanoseconds);if(o(l,"second","s"),e.formatSubMilliseconds)o(d,"millisecond","ms"),o(f,"microsecond","\xB5s"),o(h,"nanosecond","ns");else{const p=d+f/1e3+h/1e6,m=typeof e.millisecondsDecimalDigits=="number"?e.millisecondsDecimalDigits:0,y=p>=1?Math.round(p):Math.ceil(p),g=m?p.toFixed(m):y;o(Number.parseFloat(g),"millisecond","ms",g)}}else{const l=(n?Number(t%Qte):t)/1e3%60,d=typeof e.secondsDecimalDigits=="number"?e.secondsDecimalDigits:1,f=s(l,d),h=e.keepDecimalsOnWholeSeconds?f:f.replace(/\.0+$/,"");o(Number.parseFloat(h),"second","s",h)}if(i.length===0)return r+"0"+(e.verbose?" milliseconds":"ms");const u=e.colonNotation?":":" ";return typeof e.unitCount=="number"&&(i=i.slice(0,Math.max(e.unitCount,1))),r+i.join(u)}const ene=(t,e)=>{t.failed&&id({type:"error",verboseMessage:t.shortMessage,verboseInfo:e,result:t})},tne=(t,e)=>{Cb(e)&&(ene(t,e),nne(t,e))},nne=(t,e)=>{const n=`(done in ${CP(t.durationMs)})`;id({type:"duration",verboseMessage:n,verboseInfo:e,result:t})},p0=(t,e,{reject:n})=>{if(tne(t,e),t.failed&&n)throw t;return t},rne=(t,e)=>xa(t)?"asyncGenerator":PP(t)?"generator":g0(t)?"fileUrl":une(t)?"filePath":fne(t)?"webStream":go(t,{checkOpen:!1})?"native":Er(t)?"uint8Array":hne(t)?"asyncIterable":pne(t)?"iterable":v0(t)?_P({transform:t},e):ane(t)?ine(t,e):"native",ine=(t,e)=>lP(t.transform,{checkOpen:!1})?sne(t,e):v0(t.transform)?_P(t,e):one(t,e),sne=(t,e)=>(AP(t,e,"Duplex stream"),"duplex"),_P=(t,e)=>(AP(t,e,"web TransformStream"),"webTransform"),AP=({final:t,binary:e,objectMode:n},r,i)=>{xP(t,`${r}.final`,i),xP(e,`${r}.binary`,i),m0(n,`${r}.objectMode`)},xP=(t,e,n)=>{if(t!==void 0)throw new TypeError(`The \`${e}\` option can only be defined when using a generator, not a ${n}.`)},one=({transform:t,final:e,binary:n,objectMode:r},i)=>{if(t!==void 0&&!IP(t))throw new TypeError(`The \`${i}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(lP(e,{checkOpen:!1}))throw new TypeError(`The \`${i}.final\` option must not be a Duplex stream.`);if(v0(e))throw new TypeError(`The \`${i}.final\` option must not be a web TransformStream.`);if(e!==void 0&&!IP(e))throw new TypeError(`The \`${i}.final\` option must be a generator.`);return m0(n,`${i}.binary`),m0(r,`${i}.objectMode`),xa(t)||xa(e)?"asyncGenerator":"generator"},m0=(t,e)=>{if(t!==void 0&&typeof t!="boolean")throw new TypeError(`The \`${e}\` option must use a boolean.`)},IP=t=>xa(t)||PP(t),xa=t=>Object.prototype.toString.call(t)==="[object AsyncGeneratorFunction]",PP=t=>Object.prototype.toString.call(t)==="[object GeneratorFunction]",ane=t=>er(t)&&(t.transform!==void 0||t.final!==void 0),g0=t=>Object.prototype.toString.call(t)==="[object URL]",cne=t=>g0(t)&&t.protocol!=="file:",une=t=>er(t)&&Object.keys(t).length===1&&NP(t.file),NP=t=>typeof t=="string",lne=(t,e)=>t==="native"&&typeof e=="string"&&!dne.has(e),dne=new Set(["ipc","ignore","inherit","overlapped","pipe"]),OP=t=>Object.prototype.toString.call(t)==="[object ReadableStream]",y0=t=>Object.prototype.toString.call(t)==="[object WritableStream]",fne=t=>OP(t)||y0(t),v0=t=>OP(t?.readable)&&y0(t?.writable),hne=t=>FP(t)&&typeof t[Symbol.asyncIterator]=="function",pne=t=>FP(t)&&typeof t[Symbol.iterator]=="function",FP=t=>typeof t=="object"&&t!==null,vo=new Set(["generator","asyncGenerator","duplex","webTransform"]),LP=new Set(["fileUrl","filePath","fileNumber"]),MP=new Set(["fileUrl","filePath"]),mne=new Set([...MP,"webStream","nodeStream"]),gne=new Set(["webTransform","duplex"]),sm={generator:"a generator",asyncGenerator:"an async generator",fileUrl:"a file URL",filePath:"a file path string",fileNumber:"a file descriptor number",webStream:"a web stream",nodeStream:"a Node.js stream",webTransform:"a web TransformStream",duplex:"a Duplex stream",native:"any value",iterable:"an iterable",asyncIterable:"an async iterable",string:"a string",uint8Array:"a Uint8Array"},zP=(t,e,n,r)=>r==="output"?yne(t,e,n):vne(t,e,n),yne=(t,e,n)=>{const r=e!==0&&n[e-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:t??r}},vne=(t,e,n)=>{const r=e===0?t===!0:n[e-1].value.readableObjectMode,i=e!==n.length-1&&(t??r);return{writableObjectMode:r,readableObjectMode:i}},wne=(t,e)=>{const n=t.findLast(({type:r})=>vo.has(r));return n===void 0?!1:e==="input"?n.value.writableObjectMode:n.value.readableObjectMode},bne=(t,e,n,r)=>[...t.filter(({type:i})=>!vo.has(i)),...Ene(t,e,n,r)],Ene=(t,e,n,{encoding:r})=>{const i=t.filter(({type:o})=>vo.has(o)),s=Array.from({length:i.length});for(const[o,a]of Object.entries(i))s[o]=Dne({stdioItem:a,index:Number(o),newTransforms:s,optionName:e,direction:n,encoding:r});return kne(s,n)},Dne=({stdioItem:t,stdioItem:{type:e},index:n,newTransforms:r,optionName:i,direction:s,encoding:o})=>e==="duplex"?Tne({stdioItem:t,optionName:i}):e==="webTransform"?Rne({stdioItem:t,index:n,newTransforms:r,direction:s}):Sne({stdioItem:t,index:n,newTransforms:r,direction:s,encoding:o}),Tne=({stdioItem:t,stdioItem:{value:{transform:e,transform:{writableObjectMode:n,readableObjectMode:r},objectMode:i=r}},optionName:s})=>{if(i&&!r)throw new TypeError(`The \`${s}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!i&&r)throw new TypeError(`The \`${s}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...t,value:{transform:e,writableObjectMode:n,readableObjectMode:r}}},Rne=({stdioItem:t,stdioItem:{value:e},index:n,newTransforms:r,direction:i})=>{const{transform:s,objectMode:o}=er(e)?e:{transform:e},{writableObjectMode:a,readableObjectMode:c}=zP(o,n,r,i);return{...t,value:{transform:s,writableObjectMode:a,readableObjectMode:c}}},Sne=({stdioItem:t,stdioItem:{value:e},index:n,newTransforms:r,direction:i,encoding:s})=>{const{transform:o,final:a,binary:c=!1,preserveNewlines:u=!1,objectMode:l}=er(e)?e:{transform:e},d=c||mo.has(s),{writableObjectMode:f,readableObjectMode:h}=zP(l,n,r,i);return{...t,value:{transform:o,final:a,binary:d,preserveNewlines:u,writableObjectMode:f,readableObjectMode:h}}},kne=(t,e)=>e==="input"?t.reverse():t,$ne=(t,e,n)=>{const r=t.map(i=>Cne(i,e));if(r.includes("input")&&r.includes("output"))throw new TypeError(`The \`${n}\` option must not be an array of both readable and writable values.`);return r.find(Boolean)??xne},Cne=({type:t,value:e},n)=>_ne[n]??BP[t](e),_ne=["input","output","output"],Ia=()=>{},w0=()=>"input",BP={generator:Ia,asyncGenerator:Ia,fileUrl:Ia,filePath:Ia,iterable:w0,asyncIterable:w0,uint8Array:w0,webStream:t=>y0(t)?"output":"input",nodeStream(t){return nm(t,{checkOpen:!1})?uP(t,{checkOpen:!1})?void 0:"input":"output"},webTransform:Ia,duplex:Ia,native(t){const e=Ane(t);if(e!==void 0)return e;if(go(t,{checkOpen:!1}))return BP.nodeStream(t)}},Ane=t=>{if([0,Oe.stdin].includes(t))return"input";if([1,2,Oe.stdout,Oe.stderr].includes(t))return"output"},xne="output",Ine=(t,e)=>e&&!t.includes("ipc")?[...t,"ipc"]:t,Pne=({stdio:t,ipc:e,buffer:n,...r},i,s)=>{const o=Nne(t,r).map((a,c)=>qP(a,c));return s?Fne(o,n,i):Ine(o,e)},Nne=(t,e)=>{if(t===void 0)return Vr.map(r=>e[r]);if(One(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${Vr.map(r=>`\`${r}\``).join(", ")}`);if(typeof t=="string")return[t,t,t];if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);const n=Math.max(t.length,Vr.length);return Array.from({length:n},(r,i)=>t[i])},One=t=>Vr.some(e=>t[e]!==void 0),qP=(t,e)=>Array.isArray(t)?t.map(n=>qP(n,e)):t??(e>=Vr.length?"ignore":"pipe"),Fne=(t,e,n)=>t.map((r,i)=>!e[i]&&i!==0&&!_b(n,i)&&Lne(r)?"ignore":r),Lne=t=>t==="pipe"||Array.isArray(t)&&t.every(e=>e==="pipe"),Mne=({stdioItem:t,stdioItem:{type:e},isStdioArray:n,fdNumber:r,direction:i,isSync:s})=>!n||e!=="native"?t:s?zne({stdioItem:t,fdNumber:r,direction:i}):jne({stdioItem:t,fdNumber:r}),zne=({stdioItem:t,stdioItem:{value:e,optionName:n},fdNumber:r,direction:i})=>{const s=Bne({value:e,optionName:n,fdNumber:r,direction:i});if(s!==void 0)return s;if(go(e,{checkOpen:!1}))throw new TypeError(`The \`${n}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return t},Bne=({value:t,optionName:e,fdNumber:n,direction:r})=>{const i=qne(t,n);if(i!==void 0){if(r==="output")return{type:"fileNumber",value:i,optionName:e};if(X0.isatty(i))throw new TypeError(`The \`${e}: ${Qb(t)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:nd(mm(i)),optionName:e}}},qne=(t,e)=>{if(t==="inherit")return e;if(typeof t=="number")return t;const n=$b.indexOf(t);if(n!==-1)return n},jne=({stdioItem:t,stdioItem:{value:e,optionName:n},fdNumber:r})=>e==="inherit"?{type:"nodeStream",value:jP(r,e,n),optionName:n}:typeof e=="number"?{type:"nodeStream",value:jP(e,e,n),optionName:n}:go(e,{checkOpen:!1})?{type:"nodeStream",value:e,optionName:n}:t,jP=(t,e,n)=>{const r=$b[t];if(r===void 0)throw new TypeError(`The \`${n}: ${e}\` option is invalid: no such standard stream.`);return r},Une=({input:t,inputFile:e},n)=>n===0?[...Gne(t),...Hne(e)]:[],Gne=t=>t===void 0?[]:[{type:Wne(t),value:t,optionName:"input"}],Wne=t=>{if(nm(t,{checkOpen:!1}))return"nodeStream";if(typeof t=="string")return"string";if(Er(t))return"uint8Array";throw new Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},Hne=t=>t===void 0?[]:[{...Vne(t),optionName:"inputFile"}],Vne=t=>{if(g0(t))return{type:"fileUrl",value:t};if(NP(t))return{type:"filePath",value:{file:t}};throw new Error("The `inputFile` option must be a file path string or a file URL.")},Kne=t=>t.filter((e,n)=>t.every((r,i)=>e.value!==r.value||n>=i||e.type==="generator"||e.type==="asyncGenerator")),Yne=({stdioItem:{type:t,value:e,optionName:n},direction:r,fileDescriptors:i,isSync:s})=>{const o=Xne(i,t);if(o.length!==0){if(s){Jne({otherStdioItems:o,type:t,value:e,optionName:n,direction:r});return}if(mne.has(t))return UP({otherStdioItems:o,type:t,value:e,optionName:n,direction:r});gne.has(t)&&Qne({otherStdioItems:o,type:t,value:e,optionName:n})}},Xne=(t,e)=>t.flatMap(({direction:n,stdioItems:r})=>r.filter(i=>i.type===e).map(i=>({...i,direction:n}))),Jne=({otherStdioItems:t,type:e,value:n,optionName:r,direction:i})=>{MP.has(e)&&UP({otherStdioItems:t,type:e,value:n,optionName:r,direction:i})},UP=({otherStdioItems:t,type:e,value:n,optionName:r,direction:i})=>{const s=t.filter(a=>Zne(a,n));if(s.length===0)return;const o=s.find(a=>a.direction!==i);return GP(o,r,e),i==="output"?s[0].stream:void 0},Zne=({type:t,value:e},n)=>t==="filePath"?e.file===n.file:t==="fileUrl"?e.href===n.href:e===n,Qne=({otherStdioItems:t,type:e,value:n,optionName:r})=>{const i=t.find(({value:{transform:s}})=>s===n.transform);GP(i,r,e)},GP=(t,e,n)=>{if(t!==void 0)throw new TypeError(`The \`${t.optionName}\` and \`${e}\` options must not target ${sm[n]} that is the same.`)},WP=(t,e,n,r)=>{const s=Pne(e,n,r).map((a,c)=>ere({stdioOption:a,fdNumber:c,options:e,isSync:r})),o=cre({initialFileDescriptors:s,addProperties:t,options:e,isSync:r});return e.stdio=o.map(({stdioItems:a})=>dre(a)),o},ere=({stdioOption:t,fdNumber:e,options:n,isSync:r})=>{const i=oI(e),{stdioItems:s,isStdioArray:o}=tre({stdioOption:t,fdNumber:e,options:n,optionName:i}),a=$ne(s,e,i),c=s.map(d=>Mne({stdioItem:d,isStdioArray:o,fdNumber:e,direction:a,isSync:r})),u=bne(c,i,a,n),l=wne(u,a);return are(u,l),{direction:a,objectMode:l,stdioItems:u}},tre=({stdioOption:t,fdNumber:e,options:n,optionName:r})=>{const s=[...(Array.isArray(t)?t:[t]).map(c=>nre(c,r)),...Une(n,e)],o=Kne(s),a=o.length>1;return rre(o,a,r),sre(o),{stdioItems:o,isStdioArray:a}},nre=(t,e)=>({type:rne(t,e),value:t,optionName:e}),rre=(t,e,n)=>{if(t.length===0)throw new TypeError(`The \`${n}\` option must not be an empty array.`);if(e){for(const{value:r,optionName:i}of t)if(ire.has(r))throw new Error(`The \`${i}\` option must not include \`${r}\`.`)}},ire=new Set(["ignore","ipc"]),sre=t=>{for(const e of t)ore(e)},ore=({type:t,value:e,optionName:n})=>{if(cne(e))throw new TypeError(`The \`${n}: URL\` option must use the \`file:\` scheme.
1808
+ For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(lne(t,e))throw new TypeError(`The \`${n}: { file: '...' }\` option must be used instead of \`${n}: '...'\`.`)},are=(t,e)=>{if(!e)return;const n=t.find(({type:r})=>LP.has(r));if(n!==void 0)throw new TypeError(`The \`${n.optionName}\` option cannot use both files and transforms in objectMode.`)},cre=({initialFileDescriptors:t,addProperties:e,options:n,isSync:r})=>{const i=[];try{for(const s of t)i.push(ure({fileDescriptor:s,fileDescriptors:i,addProperties:e,options:n,isSync:r}));return i}catch(s){throw HP(i),s}},ure=({fileDescriptor:{direction:t,objectMode:e,stdioItems:n},fileDescriptors:r,addProperties:i,options:s,isSync:o})=>{const a=n.map(c=>lre({stdioItem:c,addProperties:i,direction:t,options:s,fileDescriptors:r,isSync:o}));return{direction:t,objectMode:e,stdioItems:a}},lre=({stdioItem:t,addProperties:e,direction:n,options:r,fileDescriptors:i,isSync:s})=>{const o=Yne({stdioItem:t,direction:n,fileDescriptors:i,isSync:s});return o!==void 0?{...t,stream:o}:{...t,...e[n][t.type](t,r)}},HP=t=>{for(const{stdioItems:e}of t)for(const{stream:n}of e)n!==void 0&&!fo(n)&&n.destroy()},dre=t=>{if(t.length>1)return t.some(({value:r})=>r==="overlapped")?"overlapped":"pipe";const[{type:e,value:n}]=t;return e==="native"?n:"pipe"},fre=(t,e)=>WP(pre,t,e,!0),Kr=({type:t,optionName:e})=>{VP(e,sm[t])},hre=({optionName:t,value:e})=>((e==="ipc"||e==="overlapped")&&VP(t,`"${e}"`),{}),VP=(t,e)=>{throw new TypeError(`The \`${t}\` option cannot be ${e} with synchronous methods.`)},KP={generator(){},asyncGenerator:Kr,webStream:Kr,nodeStream:Kr,webTransform:Kr,duplex:Kr,asyncIterable:Kr,native:hre},pre={input:{...KP,fileUrl:({value:t})=>({contents:[nd(mm(t))]}),filePath:({value:{file:t}})=>({contents:[nd(mm(t))]}),fileNumber:Kr,iterable:({value:t})=>({contents:[...t]}),string:({value:t})=>({contents:[t]}),uint8Array:({value:t})=>({contents:[t]})},output:{...KP,fileUrl:({value:t})=>({path:t}),filePath:({value:{file:t}})=>({path:t}),fileNumber:({value:t})=>({path:t}),iterable:Kr,string:Kr,uint8Array:Kr}},Pa=(t,{stripFinalNewline:e},n)=>YP(e,n)&&t!==void 0&&!Array.isArray(t)?o0(t):t,YP=(t,e)=>e==="all"?t[1]||t[2]:t[e],XP=(t,e,n,r)=>t||n?void 0:QP(e,r),JP=(t,e,n)=>n?t.flatMap(r=>ZP(r,e)):ZP(t,e),ZP=(t,e)=>{const{transform:n,final:r}=QP(e,{});return[...n(t),...r()]},QP=(t,e)=>(e.previousChunks="",{transform:mre.bind(void 0,e,t),final:yre.bind(void 0,e)}),mre=function*(t,e,n){if(typeof n!="string"){yield n;return}let{previousChunks:r}=t,i=-1;for(let s=0;s<n.length;s+=1)if(n[s]===`
1809
+ `){const o=gre(n,s,e,t);let a=n.slice(i+1,s+1-o);r.length>0&&(a=b0(r,a),r=""),yield a,i=s}i!==n.length-1&&(r=b0(r,n.slice(i+1))),t.previousChunks=r},gre=(t,e,n,r)=>n?0:(r.isWindowsNewline=e!==0&&t[e-1]==="\r",r.isWindowsNewline?2:1),yre=function*({previousChunks:t}){t.length>0&&(yield t)},vre=({binary:t,preserveNewlines:e,readableObjectMode:n,state:r})=>t||e||n?void 0:{transform:wre.bind(void 0,r)},wre=function*({isWindowsNewline:t=!1},e){const{unixNewline:n,windowsNewline:r,LF:i,concatBytes:s}=typeof e=="string"?bre:Dre;if(e.at(-1)===i){yield e;return}yield s(e,t?r:n)},b0=(t,e)=>`${t}${e}`,bre={windowsNewline:`\r
1810
+ `,unixNewline:`
1811
+ `,LF:`
1812
+ `,concatBytes:b0},Ere=(t,e)=>{const n=new Uint8Array(t.length+e.length);return n.set(t,0),n.set(e,t.length),n},Dre={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:Ere},Tre=(t,e)=>t?void 0:Rre.bind(void 0,e),Rre=function*(t,e){if(typeof e!="string"&&!Er(e)&&!Em.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Sre=(t,e)=>t?kre.bind(void 0,e):$re.bind(void 0,e),kre=function*(t,e){eN(t,e),yield e},$re=function*(t,e){if(eN(t,e),typeof e!="string"&&!Er(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},eN=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
1813
+ Instead, \`yield\` should either be called with a value, or not be called at all. For example:
1814
+ if (condition) { yield value; }`)},tN=(t,e,n)=>{if(n)return;if(t)return{transform:Cre.bind(void 0,new TextEncoder)};const r=new Z0(e);return{transform:_re.bind(void 0,r),final:Are.bind(void 0,r)}},Cre=function*(t,e){Em.isBuffer(e)?yield nd(e):typeof e=="string"?yield t.encode(e):yield e},_re=function*(t,e){yield Er(e)?t.write(e):e},Are=function*(t){const e=t.end();e!==""&&(yield e)},nN=Do(async(t,e,n,r)=>{e.currentIterable=t(...n);try{for await(const i of e.currentIterable)r.push(i)}finally{delete e.currentIterable}}),E0=async function*(t,e,n){if(n===e.length){yield t;return}const{transform:r=Nre}=e[n];for await(const i of r(t))yield*E0(i,e,n+1)},xre=async function*(t){for(const[e,{final:n}]of Object.entries(t))yield*Ire(n,Number(e),t)},Ire=async function*(t,e,n){if(t!==void 0)for await(const r of t())yield*E0(r,n,e+1)},Pre=Do(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Nre=function*(t){yield t},rN=(t,e,n,r)=>{try{for(const i of t(...e))n.push(i);r()}catch(i){r(i)}},Ore=(t,e)=>[...e.flatMap(n=>[...ud(n,t,0)]),...D0(t)],ud=function*(t,e,n){if(n===e.length){yield t;return}const{transform:r=Lre}=e[n];for(const i of r(t))yield*ud(i,e,n+1)},D0=function*(t){for(const[e,{final:n}]of Object.entries(t))yield*Fre(n,Number(e),t)},Fre=function*(t,e,n){if(t!==void 0)for(const r of t())yield*ud(r,n,e+1)},Lre=function*(t){yield t},iN=({value:t,value:{transform:e,final:n,writableObjectMode:r,readableObjectMode:i},optionName:s},{encoding:o})=>{const a={},c=oN(t,o,s),u=xa(e),l=xa(n),d=u?nN.bind(void 0,E0,a):rN.bind(void 0,ud),f=u||l?nN.bind(void 0,xre,a):rN.bind(void 0,D0),h=u||l?Pre.bind(void 0,a):void 0;return{stream:new q2({writableObjectMode:r,writableHighWaterMark:yd(r),readableObjectMode:i,readableHighWaterMark:yd(i),transform(m,y,g){d([m,c,0],this,g)},flush(m){f([c],this,m)},destroy:h})}},sN=(t,e,n,r)=>{const i=e.filter(({type:o})=>o==="generator"),s=r?i.reverse():i;for(const{value:o,optionName:a}of s){const c=oN(o,n,a);t=Ore(c,t)}return t},oN=({transform:t,final:e,binary:n,writableObjectMode:r,readableObjectMode:i,preserveNewlines:s},o,a)=>{const c={};return[{transform:Tre(r,a)},tN(n,o,r),XP(n,s,r,c),{transform:t,final:e},{transform:Sre(i,a)},vre({binary:n,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)},Mre=(t,e)=>{for(const n of zre(t))Bre(t,n,e)},zre=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),Bre=(t,e,n)=>{const{stdioItems:r}=t[e],i=r.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){const[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${sm[a]} with synchronous methods.`)}const o=i.map(({contents:a})=>a).map(a=>qre(a,r));n.input=kb(o)},qre=(t,e)=>{const n=sN(t,e,"utf8",!0);return jre(n),kb(n)},jre=t=>{const e=t.find(n=>typeof n!="string"&&!Er(n));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)},aN=({stdioItems:t,encoding:e,verboseInfo:n,fdNumber:r})=>r!=="all"&&_b(n,r)&&!mo.has(e)&&Ure(r)&&(t.some(({type:i,value:s})=>i==="native"&&Gre.has(s))||t.every(({type:i})=>vo.has(i))),Ure=t=>t===1||t===2,Gre=new Set(["pipe","overlapped"]),Wre=async(t,e,n,r)=>{for await(const i of t)Vre(e)||cN(i,n,r)},Hre=(t,e,n)=>{for(const r of t)cN(r,e,n)},Vre=t=>t._readableState.pipes.length>0,cN=(t,e,n)=>{const r=mI(t);id({type:"output",verboseMessage:r,fdNumber:e,verboseInfo:n})},Kre=({fileDescriptors:t,syncResult:{output:e},options:n,isMaxBuffer:r,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};const s={},o=new Set([]);return{output:e.map((c,u)=>Yre({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:r,verboseInfo:i},n)),...s}},Yre=({result:t,fileDescriptors:e,fdNumber:n,state:r,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;const f=Mte(t,s,d),h=nd(f),{stdioItems:p,objectMode:m}=e[n],y=Xre([h],p,c,r),{serializedResult:g,finalResult:w=g}=Jre({chunks:y,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:n});Zre({serializedResult:g,fdNumber:n,state:r,verboseInfo:o,encoding:c,stdioItems:p,objectMode:m});const E=a[n]?w:void 0;try{return r.error===void 0&&Qre(g,p,i),E}catch(k){return r.error=k,E}},Xre=(t,e,n,r)=>{try{return sN(t,e,n,!1)}catch(i){return r.error=i,t}},Jre=({chunks:t,objectMode:e,encoding:n,lines:r,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(n==="buffer")return{serializedResult:kb(t)};const o=JJ(t,n);return r[s]?{serializedResult:o,finalResult:JP(o,!i[s],e)}:{serializedResult:o}},Zre=({serializedResult:t,fdNumber:e,state:n,verboseInfo:r,encoding:i,stdioItems:s,objectMode:o})=>{if(!aN({stdioItems:s,encoding:i,verboseInfo:r,fdNumber:e}))return;const a=JP(t,!1,o);try{Hre(a,e,r)}catch(c){n.error??=c}},Qre=(t,e,n)=>{for(const{path:r}of e.filter(({type:i})=>LP.has(i))){const i=typeof r=="string"?r:r.toString();n.has(i)?g2(r,t):(n.add(i),H0(r,t))}},eie=([,t,e],n)=>{if(n.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Pa(e,n,"all")]:Array.isArray(e)?[Pa(t,n,"all"),...e]:Er(t)&&Er(e)?nI([t,e]):`${t}${e}`},tie=async(t,e)=>{const[n,r]=await nie(t);return e.isForcefullyTerminated??=!1,[n,r]},nie=async t=>{const[e,n]=await Promise.allSettled([vn(t,"spawn"),vn(t,"exit")]);return e.status==="rejected"?[]:n.status==="rejected"?uN(t):n.value},uN=async t=>{try{return await vn(t,"exit")}catch{return uN(t)}},rie=async t=>{const[e,n]=await t;if(!iie(e,n)&&lN(e,n))throw new sd;return[e,n]},iie=(t,e)=>t===void 0&&e===void 0,lN=(t,e)=>t!==0||e!==null,sie=({error:t,status:e,signal:n,output:r},{maxBuffer:i})=>{const s=oie(t,e,n),o=s?.code==="ETIMEDOUT",a=Lte(s,r,i);return{resultError:s,exitCode:e,signal:n,timedOut:o,isMaxBuffer:a}},oie=(t,e,n)=>t!==void 0?t:lN(e,n)?new sd:void 0,aie=(t,e,n)=>{const{file:r,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=cie(t,e,n),d=die({file:r,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return p0(d,c,u)},cie=(t,e,n)=>{const{command:r,escapedCommand:i,startTime:s,verboseInfo:o}=vI(t,e,n),a=uie(n),{file:c,commandArguments:u,options:l}=oP(t,e,a);lie(l);const d=fre(l,o);return{file:c,commandArguments:u,command:r,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},uie=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,lie=({ipc:t,ipcInput:e,detached:n,cancelSignal:r})=>{e&&om("ipcInput"),t&&om("ipc: true"),n&&om("detached: true"),r&&om("cancelSignal")},om=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},die=({file:t,commandArguments:e,options:n,command:r,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{const c=fie({file:t,commandArguments:e,options:n,command:r,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;const{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:h}=sie(c,n),{output:p,error:m=u}=Kre({fileDescriptors:o,syncResult:c,options:n,isMaxBuffer:h,verboseInfo:s}),y=p.map((w,E)=>Pa(w,n,E)),g=Pa(eie(p,n),n,"all");return pie({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:h,stdio:y,all:g,options:n,command:r,escapedCommand:i,startTime:a})},fie=({file:t,commandArguments:e,options:n,command:r,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Mre(s,n);const a=hie(n);return I2(t,e,a)}catch(a){return f0({error:a,command:r,escapedCommand:i,fileDescriptors:s,options:n,startTime:o,isSync:!0})}},hie=({encoding:t,maxBuffer:e,...n})=>({...n,encoding:"buffer",maxBuffer:d0(e)}),pie=({error:t,exitCode:e,signal:n,timedOut:r,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?SP({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):h0({error:t,command:c,escapedCommand:u,timedOut:r,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:n,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0}),mie=({anyProcess:t,channel:e,isSubprocess:n,ipc:r},{reference:i=!0,filter:s}={})=>(Xb({methodName:"getOneMessage",isSubprocess:n,ipc:r,isConnected:JI(t)}),gie({anyProcess:t,channel:e,isSubprocess:n,filter:s,reference:i})),gie=async({anyProcess:t,channel:e,isSubprocess:n,filter:r,reference:i})=>{YI(e,i);const s=Jp(t,e,n),o=new AbortController;try{return await Promise.race([yie(s,r,o),vie(s,n,o),wie(s,n,o)])}catch(a){throw Jb(t),a}finally{o.abort(),XI(e,i)}},yie=async(t,e,{signal:n})=>{if(e===void 0){const[r]=await vn(t,"message",{signal:n});return r}for await(const[r]of gd(t,"message",{signal:n}))if(e(r))return r},vie=async(t,e,{signal:n})=>{await vn(t,"disconnect",{signal:n}),VQ(e)},wie=async(t,e,{signal:n})=>{const[r]=await vn(t,"strict:error",{signal:n});throw GI(r,e)},bie=({anyProcess:t,channel:e,isSubprocess:n,ipc:r},{reference:i=!0}={})=>dN({anyProcess:t,channel:e,isSubprocess:n,ipc:r,shouldAwait:!n,reference:i}),dN=({anyProcess:t,channel:e,isSubprocess:n,ipc:r,shouldAwait:i,reference:s})=>{Xb({methodName:"getEachMessage",isSubprocess:n,ipc:r,isConnected:JI(t)}),YI(e,s);const o=Jp(t,e,n),a=new AbortController,c={};return Eie(t,o,a),Die({ipcEmitter:o,isSubprocess:n,controller:a,state:c}),Tie({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:n,shouldAwait:i,controller:a,state:c,reference:s})},Eie=async(t,e,n)=>{try{await vn(e,"disconnect",{signal:n.signal}),n.abort()}catch{}},Die=async({ipcEmitter:t,isSubprocess:e,controller:n,state:r})=>{try{const[i]=await vn(t,"strict:error",{signal:n.signal});r.error=GI(i,e),n.abort()}catch{}},Tie=async function*({anyProcess:t,channel:e,ipcEmitter:n,isSubprocess:r,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(const[c]of gd(n,"message",{signal:s.signal}))fN(o),yield c}catch{fN(o)}finally{s.abort(),XI(e,a),r||Jb(t),i&&await t}},fN=({error:t})=>{if(t)throw t},Rie=(t,{ipc:e})=>{Object.assign(t,hN(t,!1,e))},Sie=()=>{const t=Oe,e=!0,n=Oe.channel!==void 0;return{...hN(t,e,n),getCancelSignal:$ee.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n})}},hN=(t,e,n)=>({sendMessage:QI.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n}),getOneMessage:mie.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n}),getEachMessage:bie.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:n})}),kie=({error:t,command:e,escapedCommand:n,fileDescriptors:r,options:i,startTime:s,verboseInfo:o})=>{HP(r);const a=new J0;$ie(a,r),Object.assign(a,{readable:Cie,writable:_ie,duplex:Aie});const c=f0({error:t,command:e,escapedCommand:n,fileDescriptors:r,options:i,startTime:s,isSync:!1}),u=xie(c,o,i);return{subprocess:a,promise:u}},$ie=(t,e)=>{const n=ld(),r=ld(),i=ld(),s=Array.from({length:e.length-3},ld),o=ld(),a=[n,r,i,...s];Object.assign(t,{stdin:n,stdout:r,stderr:i,all:o,stdio:a})},ld=()=>{const t=new nE;return t.end(),t},Cie=()=>new Es({read(){}}),_ie=()=>new wm({write(){}}),Aie=()=>new bm({read(){},write(){}}),xie=async(t,e,n)=>p0(t,e,n),Iie=(t,e)=>WP(Pie,t,e,!1),dd=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${sm[t]}.`)},pN={fileNumber:dd,generator:iN,asyncGenerator:iN,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:n}}){const r=e||n;return{stream:bm.fromWeb(t,{objectMode:r})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Pie={input:{...pN,fileUrl:({value:t})=>({stream:V0(t)}),filePath:({value:{file:t}})=>({stream:V0(t)}),webStream:({value:t})=>({stream:Es.fromWeb(t)}),iterable:({value:t})=>({stream:Es.from(t)}),asyncIterable:({value:t})=>({stream:Es.from(t)}),string:({value:t})=>({stream:Es.from(t)}),uint8Array:({value:t})=>({stream:Es.from(Em.from(t))})},output:{...pN,fileUrl:({value:t})=>({stream:K0(t)}),filePath:({value:{file:t}})=>({stream:K0(t)}),webStream:({value:t})=>({stream:wm.fromWeb(t)}),iterable:dd,asyncIterable:dd,string:dd,uint8Array:dd}};function T0(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(const i of t)R0(i);const e=t.some(({readableObjectMode:i})=>i),n=Nie(t,e),r=new Oie({objectMode:e,writableHighWaterMark:n,readableHighWaterMark:n});for(const i of t)r.add(i);return r}const Nie=(t,e)=>{if(t.length===0)return yd(e);const n=t.filter(({readableObjectMode:r})=>r===e).map(({readableHighWaterMark:r})=>r);return Math.max(...n)};class Oie extends nE{#e=new Set([]);#t=new Set([]);#n=new Set([]);#r;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(R0(e),this.#e.has(e))return;this.#e.add(e),this.#r??=Fie(this,this.#e,this.#s);const n=zie({passThroughStream:this,stream:e,streams:this.#e,ended:this.#t,aborted:this.#n,onFinished:this.#r,unpipeEvent:this.#s});this.#i.set(e,n),e.pipe(this,{end:!1})}async remove(e){if(R0(e),!this.#e.has(e))return!1;const n=this.#i.get(e);return n===void 0?!1:(this.#i.delete(e),e.unpipe(this),await n,!0)}}const Fie=async(t,e,n)=>{am(t,vN);const r=new AbortController;try{await Promise.race([Lie(t,r),Mie(t,e,n,r)])}finally{r.abort(),am(t,-vN)}},Lie=async(t,{signal:e})=>{try{await Pi(t,{signal:e,cleanup:!0})}catch(n){throw mN(t,n),n}},Mie=async(t,e,n,{signal:r})=>{for await(const[i]of gd(t,"unpipe",{signal:r}))e.has(i)&&i.emit(n)},R0=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},zie=async({passThroughStream:t,stream:e,streams:n,ended:r,aborted:i,onFinished:s,unpipeEvent:o})=>{am(t,wN);const a=new AbortController;try{await Promise.race([Bie(s,e,a),qie({passThroughStream:t,stream:e,streams:n,ended:r,aborted:i,controller:a}),jie({stream:e,streams:n,ended:r,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),am(t,-wN)}n.size>0&&n.size===r.size+i.size&&(r.size===0&&i.size>0?S0(t):Uie(t))},Bie=async(t,e,{signal:n})=>{try{await t,n.aborted||S0(e)}catch(r){n.aborted||mN(e,r)}},qie=async({passThroughStream:t,stream:e,streams:n,ended:r,aborted:i,controller:{signal:s}})=>{try{await Pi(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),n.has(e)&&r.add(e)}catch(o){if(s.aborted||!n.has(e))return;gN(o)?i.add(e):yN(t,o)}},jie=async({stream:t,streams:e,ended:n,aborted:r,unpipeEvent:i,controller:{signal:s}})=>{if(await vn(t,i,{signal:s}),!t.readable)return vn(s,"abort",{signal:s});e.delete(t),n.delete(t),r.delete(t)},Uie=t=>{t.writable&&t.end()},mN=(t,e)=>{gN(e)?S0(t):yN(t,e)},gN=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",S0=t=>{(t.readable||t.writable)&&t.destroy()},yN=(t,e)=>{t.destroyed||(t.once("error",Gie),t.destroy(e))},Gie=()=>{},am=(t,e)=>{const n=t.getMaxListeners();n!==0&&n!==Number.POSITIVE_INFINITY&&t.setMaxListeners(n+e)},vN=2,wN=1,cm=(t,e)=>{t.pipe(e),Wie(t,e),Hie(t,e)},Wie=async(t,e)=>{if(!(fo(t)||fo(e))){try{await Pi(t,{cleanup:!0,readable:!0,writable:!1})}catch{}bN(e)}},bN=t=>{t.writable&&t.end()},Hie=async(t,e)=>{if(!(fo(t)||fo(e))){try{await Pi(e,{cleanup:!0,readable:!1,writable:!0})}catch{}EN(t)}},EN=t=>{t.readable&&t.destroy()},Vie=(t,e,n)=>{const r=new Map;for(const[i,{stdioItems:s,direction:o}]of Object.entries(e)){for(const{stream:a}of s.filter(({type:c})=>vo.has(c)))Kie(t,a,o,i);for(const{stream:a}of s.filter(({type:c})=>!vo.has(c)))Xie({subprocess:t,stream:a,direction:o,fdNumber:i,pipeGroups:r,controller:n})}for(const[i,s]of r.entries()){const o=s.length===1?s[0]:T0(s);cm(o,i)}},Kie=(t,e,n,r)=>{n==="output"?cm(t.stdio[r],e):cm(e,t.stdio[r]);const i=Yie[r];i!==void 0&&(t[i]=e),t.stdio[r]=e},Yie=["stdin","stdout","stderr"],Xie=({subprocess:t,stream:e,direction:n,fdNumber:r,pipeGroups:i,controller:s})=>{if(e===void 0)return;Jie(e,s);const[o,a]=n==="output"?[e,t.stdio[r]]:[t.stdio[r],e],c=i.get(o)??[];i.set(o,[...c,a])},Jie=(t,{signal:e})=>{fo(t)&&Yp(t,Zie,e)},Zie=2,Na=[];Na.push("SIGHUP","SIGINT","SIGTERM"),process.platform!=="win32"&&Na.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),process.platform==="linux"&&Na.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");const um=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",k0=Symbol.for("signal-exit emitter"),$0=globalThis,Qie=Object.defineProperty.bind(Object);class ese{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if($0[k0])return $0[k0];Qie($0,k0,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,n){this.listeners[e].push(n)}removeListener(e,n){const r=this.listeners[e],i=r.indexOf(n);i!==-1&&(i===0&&r.length===1?r.length=0:r.splice(i,1))}emit(e,n,r){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(const s of this.listeners[e])i=s(n,r)===!0||i;return e==="exit"&&(i=this.emit("afterExit",n,r)||i),i}}class DN{}const tse=t=>({onExit(e,n){return t.onExit(e,n)},load(){return t.load()},unload(){return t.unload()}});class nse extends DN{onExit(){return()=>{}}load(){}unload(){}}class rse extends DN{#e=C0.platform==="win32"?"SIGINT":"SIGHUP";#t=new ese;#n;#r;#s;#i={};#o=!1;constructor(e){super(),this.#n=e,this.#i={};for(const n of Na)this.#i[n]=()=>{const r=this.#n.listeners(n);let{count:i}=this.#t;const s=e;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(i+=s.__signal_exit_emitter__.count),r.length===i){this.unload();const o=this.#t.emit("exit",null,n),a=n==="SIGHUP"?this.#e:n;o||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#r=e.emit}onExit(e,n){if(!um(this.#n))return()=>{};this.#o===!1&&this.load();const r=n?.alwaysLast?"afterExit":"exit";return this.#t.on(r,e),()=>{this.#t.removeListener(r,e),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(const e of Na)try{const n=this.#i[e];n&&this.#n.on(e,n)}catch{}this.#n.emit=(e,...n)=>this.#c(e,...n),this.#n.reallyExit=e=>this.#a(e)}}unload(){this.#o&&(this.#o=!1,Na.forEach(e=>{const n=this.#i[e];if(!n)throw new Error("Listener not defined for signal: "+e);try{this.#n.removeListener(e,n)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#s,this.#t.count-=1)}#a(e){return um(this.#n)?(this.#n.exitCode=e||0,this.#t.emit("exit",this.#n.exitCode,null),this.#s.call(this.#n,this.#n.exitCode)):0}#c(e,...n){const r=this.#r;if(e==="exit"&&um(this.#n)){typeof n[0]=="number"&&(this.#n.exitCode=n[0]);const i=r.call(this.#n,e,...n);return this.#t.emit("exit",this.#n.exitCode,null),i}else return r.call(this.#n,e,...n)}}const C0=globalThis.process,{onExit:ise,load:Wae,unload:Hae}=tse(um(C0)?new rse(C0):new nse),sse=(t,{cleanup:e,detached:n},{signal:r})=>{if(!e||n)return;const i=ise(()=>{t.kill()});tE(r,()=>{i()})},ose=({source:t,sourcePromise:e,boundOptions:n,createNested:r},...i)=>{const s=gI(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=ase(n,r,i),{sourceStream:d,sourceError:f}=use(t,u),{options:h,fileDescriptors:p}=po.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:h,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:p,startTime:s}},ase=(t,e,n)=>{try{const{destination:r,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=cse(t,e,...n),a=WI(r,s);return{destination:r,destinationStream:a,from:i,unpipeSignal:o}}catch(r){return{destinationError:r}}},cse=(t,e,n,...r)=>{if(Array.isArray(n))return{destination:e(TN,t)(n,...r),pipeOptions:t};if(typeof n=="string"||n instanceof URL){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');const[i,s,o]=Zx(n,...r);return{destination:e(TN)(i,s,o),pipeOptions:o}}if(po.has(n)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:n,pipeOptions:r[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${n}`)},TN=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),use=(t,e)=>{try{return{sourceStream:Zb(t,e)}}catch(n){return{sourceError:n}}},lse=({sourceStream:t,sourceError:e,destinationStream:n,destinationError:r,fileDescriptors:i,sourceOptions:s,startTime:o})=>{const a=dse({sourceStream:t,sourceError:e,destinationStream:n,destinationError:r});if(a!==void 0)throw RN({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},dse=({sourceStream:t,sourceError:e,destinationStream:n,destinationError:r})=>{if(e!==void 0&&r!==void 0)return r;if(r!==void 0)return EN(t),r;if(e!==void 0)return bN(n),e},RN=({error:t,fileDescriptors:e,sourceOptions:n,startTime:r})=>f0({error:t,command:SN,escapedCommand:SN,fileDescriptors:e,options:n,startTime:r,isSync:!1}),SN="source.pipe(destination)",fse=async t=>{const[{status:e,reason:n,value:r=n},{status:i,reason:s,value:o=s}]=await t;if(o.pipedFrom.includes(r)||o.pipedFrom.push(r),i==="rejected")throw o;if(e==="rejected")throw r;return o},hse=(t,e,n)=>{const r=lm.has(e)?mse(t,e):pse(t,e);return Yp(t,yse,n.signal),Yp(e,vse,n.signal),gse(e),r},pse=(t,e)=>{const n=T0([t]);return cm(n,e),lm.set(e,n),n},mse=(t,e)=>{const n=lm.get(e);return n.add(t),n},gse=async t=>{try{await Pi(t,{cleanup:!0,readable:!1,writable:!0})}catch{}lm.delete(t)},lm=new WeakMap,yse=2,vse=1,wse=(t,e)=>t===void 0?[]:[bse(t,e)],bse=async(t,{sourceStream:e,mergedStream:n,fileDescriptors:r,sourceOptions:i,startTime:s})=>{await C2(t,e),await n.remove(e);const o=new Error("Pipe canceled by `unpipeSignal` option.");throw RN({error:o,fileDescriptors:r,sourceOptions:i,startTime:s})},_0=(t,...e)=>{if(er(e[0]))return _0.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});const{destination:n,...r}=ose(t,...e),i=Ese({...r,destination:n});return i.pipe=_0.bind(void 0,{...t,source:n,sourcePromise:i,boundOptions:{}}),i},Ese=async({sourcePromise:t,sourceStream:e,sourceOptions:n,sourceError:r,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{const l=Dse(t,i);lse({sourceStream:e,sourceError:r,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:n,startTime:u});const d=new AbortController;try{const f=hse(e,s,d);return await Promise.race([fse(l),...wse(a,{sourceStream:e,mergedStream:f,sourceOptions:n,fileDescriptors:c,startTime:u})])}finally{d.abort()}},Dse=(t,e)=>Promise.allSettled([t,e]),kN=({subprocessStdout:t,subprocess:e,binary:n,shouldEncode:r,encoding:i,preserveNewlines:s})=>{const o=new AbortController;return Tse(e,o),CN({stream:t,controller:o,binary:n,shouldEncode:!t.readableObjectMode&&r,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Tse=async(t,e)=>{try{await t}catch{}finally{e.abort()}},$N=({stream:t,onStreamEnd:e,lines:n,encoding:r,stripFinalNewline:i,allMixed:s})=>{const o=new AbortController;Rse(e,o,t);const a=t.readableObjectMode&&!s;return CN({stream:t,controller:o,binary:r==="buffer",shouldEncode:!a,encoding:r,shouldSplit:!a&&n,preserveNewlines:!i})},Rse=async(t,e,n)=>{try{await t}catch{n.destroy()}finally{e.abort()}},CN=({stream:t,controller:e,binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o})=>{const a=gd(t,"data",{signal:e.signal,highWaterMark:AN,highWatermark:AN});return Sse({onStdoutChunk:a,controller:e,binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o})},_N=yd(!0),AN=_N,Sse=async function*({onStdoutChunk:t,controller:e,binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o}){const a=kse({binary:n,shouldEncode:r,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(const[c]of t)yield*ud(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*D0(a)}},kse=({binary:t,shouldEncode:e,encoding:n,shouldSplit:r,preserveNewlines:i})=>[tN(t,n,!e),XP(t,i,!r,{})].filter(Boolean),$se=async({stream:t,onStreamEnd:e,fdNumber:n,encoding:r,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{const d=Cse({stream:t,onStreamEnd:e,fdNumber:n,encoding:r,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([_se(t),d]);return}const f=YP(c,n),h=$N({stream:t,onStreamEnd:e,lines:o,encoding:r,stripFinalNewline:f,allMixed:a}),[p]=await Promise.all([Ase({stream:t,iterable:h,fdNumber:n,encoding:r,maxBuffer:s,lines:o}),d]);return p},Cse=async({stream:t,onStreamEnd:e,fdNumber:n,encoding:r,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!aN({stdioItems:o[n]?.stdioItems,encoding:r,verboseInfo:s,fdNumber:n}))return;const a=$N({stream:t,onStreamEnd:e,lines:!0,encoding:r,stripFinalNewline:!0,allMixed:i});await Wre(a,t,n,s)},_se=async t=>{await L2(),t.readableFlowing===null&&t.resume()},Ase=async({stream:t,stream:{readableObjectMode:e},iterable:n,fdNumber:r,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await dte(n,{maxBuffer:s}):i==="buffer"?new Uint8Array(await gte(n,{maxBuffer:s})):await kte(n,{maxBuffer:s})}catch(a){return IN(Ite({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:r}))}},xN=async t=>{try{return await t}catch(e){return IN(e)}},IN=({bufferedData:t})=>KJ(t)?new Uint8Array(t):t,A0=async(t,e,n,{isSameDirection:r,stopOnExit:i=!1}={})=>{const s=xse(t,n),o=new AbortController;try{await Promise.race([...i?[n.exitPromise]:[],Pi(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||Nse(a,e,n,r)}finally{o.abort()}},xse=(t,{originalStreams:[e],subprocess:n})=>{const r={stdinCleanedUp:!1};return t===e&&Ise(t,n,r),r},Ise=(t,e,n)=>{const{_destroy:r}=t;t._destroy=(...i)=>{Pse(e,n),r.call(t,...i)}},Pse=({exitCode:t,signalCode:e},n)=>{(t!==null||e!==null)&&(n.stdinCleanedUp=!0)},Nse=(t,e,n,r)=>{if(!Ose(t,e,n,r))throw t},Ose=(t,e,n,r=!0)=>n.propagating?NN(t)||x0(t):(n.propagating=!0,PN(n,e)===r?NN(t):x0(t)),PN=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",x0=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",NN=t=>t?.code==="EPIPE",Fse=({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>ON({stream:c,fdNumber:u,encoding:e,buffer:n[u],maxBuffer:r[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),ON=async({stream:t,fdNumber:e,encoding:n,buffer:r,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;const l=A0(t,e,u);if(PN(u,e)){await l;return}const[d]=await Promise.all([$se({stream:t,onStreamEnd:l,fdNumber:e,encoding:n,buffer:r,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d},Lse=({stdout:t,stderr:e},{all:n})=>n&&(t||e)?T0([t,e].filter(Boolean)):void 0,Mse=({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>ON({...zse(t,n),fdNumber:"all",encoding:e,maxBuffer:r[1]+r[2],lines:i[1]||i[2],allMixed:Bse(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),zse=({stdout:t,stderr:e,all:n},[,r,i])=>{const s=r||i;return s?r?i?{stream:n,buffer:s}:{stream:t,buffer:s}:{stream:e,buffer:s}:{stream:n,buffer:s}},Bse=({all:t,stdout:e,stderr:n})=>t&&e&&n&&e.readableObjectMode!==n.readableObjectMode,qse=t=>_b(t,"ipc"),jse=(t,e)=>{const n=mI(t);id({type:"ipc",verboseMessage:n,fdNumber:"ipc",verboseInfo:e})},Use=async({subprocess:t,buffer:e,maxBuffer:n,ipc:r,ipcOutput:i,verboseInfo:s})=>{if(!r)return i;const o=qse(s),a=rd(e,"ipc"),c=rd(n,"ipc");for await(const u of dN({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:r,shouldAwait:!1,reference:!0}))a&&(Nte(t,i,c),i.push(u)),o&&jse(u,s);return i},Gse=async(t,e)=>(await Promise.allSettled([t]),e),Wse=async({subprocess:t,options:{encoding:e,buffer:n,maxBuffer:r,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:h,fileDescriptors:p,originalStreams:m,onInternalError:y,controller:g})=>{const w=tie(t,f),E={originalStreams:m,fileDescriptors:p,subprocess:t,exitPromise:w,propagating:!1},k=Fse({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:u,verboseInfo:h,streamInfo:E}),A=Mse({subprocess:t,encoding:e,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:u,verboseInfo:h,streamInfo:E}),I=[],x=Use({subprocess:t,buffer:n,maxBuffer:r,ipc:l,ipcOutput:I,verboseInfo:h}),_=Hse(m,t,E),P=Vse(p,E);try{return await Promise.race([Promise.all([{},rie(w),Promise.all(k),A,x,Uee(t,d),..._,...P]),y,Kse(t,g),...Oee(t,s,f,g),...GQ({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:g}),...xee({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:g})])}catch(O){return f.terminationReason??="other",Promise.all([{error:O},w,Promise.all(k.map(C=>xN(C))),xN(A),Gse(x,I),Promise.allSettled(_),Promise.allSettled(P)])}},Hse=(t,e,n)=>t.map((r,i)=>r===e.stdio[i]?void 0:A0(r,i,n)),Vse=(t,e)=>t.flatMap(({stdioItems:n},r)=>n.filter(({value:i,stream:s=i})=>go(s,{checkOpen:!1})&&!fo(s)).map(({type:i,value:s,stream:o=s})=>A0(o,r,e,{isSameDirection:vo.has(i),stopOnExit:i==="native"}))),Kse=async(t,{signal:e})=>{const[n]=await vn(t,"error",{signal:e});throw n},Yse=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),I0=(t,e,n)=>{const r=t[n];r.has(e)||r.set(e,[]);const i=r.get(e),s=od();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},dm=async({resolve:t,promises:e},n)=>{t();const[r]=await Promise.race([Promise.allSettled([!0,n]),Promise.all([!1,...e])]);return!r},FN=async t=>{if(t!==void 0)try{await LN(t)}catch{}},Xse=async t=>{if(t!==void 0)try{await MN(t)}catch{}},LN=async t=>{await Pi(t,{cleanup:!0,readable:!1,writable:!0})},MN=async t=>{await Pi(t,{cleanup:!0,readable:!0,writable:!1})},zN=async(t,e)=>{if(await t,e)throw e},BN=(t,e,n)=>{n&&!x0(n)?t.destroy(n):e&&t.destroy()},Jse=({subprocess:t,concurrentStreams:e,encoding:n},{from:r,binary:i=!0,preserveNewlines:s=!0}={})=>{const o=i||mo.has(n),{subprocessStdout:a,waitReadableDestroy:c}=qN(t,r,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=jN(a,o),{read:f,onStdoutDataDone:h}=UN({subprocessStdout:a,subprocess:t,binary:o,encoding:n,preserveNewlines:s}),p=new Es({read:f,destroy:Do(WN.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return GN({subprocessStdout:a,onStdoutDataDone:h,readable:p,subprocess:t}),p},qN=(t,e,n)=>{const r=Zb(t,e),i=I0(n,r,"readableDestroy");return{subprocessStdout:r,waitReadableDestroy:i}},jN=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:n},r)=>r?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:n}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:_N},UN=({subprocessStdout:t,subprocess:e,binary:n,encoding:r,preserveNewlines:i})=>{const s=od(),o=kN({subprocessStdout:t,subprocess:e,binary:n,shouldEncode:!n,encoding:r,preserveNewlines:i});return{read(){Zse(this,o,s)},onStdoutDataDone:s}},Zse=async(t,e,n)=>{try{const{value:r,done:i}=await e.next();i?n.resolve():t.push(r)}catch{}},GN=async({subprocessStdout:t,onStdoutDataDone:e,readable:n,subprocess:r,subprocessStdin:i})=>{try{await MN(t),await r,await FN(i),await e,n.readable&&n.push(null)}catch(s){await FN(i),HN(n,s)}},WN=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:n},r)=>{await dm(n,e)&&(HN(t,r),await zN(e,r))},HN=(t,e)=>{BN(t,t.readable,e)},Qse=({subprocess:t,concurrentStreams:e},{to:n}={})=>{const{subprocessStdin:r,waitWritableFinal:i,waitWritableDestroy:s}=VN(t,n,e),o=new wm({...KN(r,t,i),destroy:Do(XN.bind(void 0,{subprocessStdin:r,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:r.writableHighWaterMark,objectMode:r.writableObjectMode});return YN(r,o),o},VN=(t,e,n)=>{const r=WI(t,e),i=I0(n,r,"writableFinal"),s=I0(n,r,"writableDestroy");return{subprocessStdin:r,waitWritableFinal:i,waitWritableDestroy:s}},KN=(t,e,n)=>({write:eoe.bind(void 0,t),final:Do(toe.bind(void 0,t,e,n))}),eoe=(t,e,n,r)=>{t.write(e,n)?r():t.once("drain",r)},toe=async(t,e,n)=>{await dm(n,e)&&(t.writable&&t.end(),await e)},YN=async(t,e,n)=>{try{await LN(t),e.writable&&e.end()}catch(r){await Xse(n),JN(e,r)}},XN=async({subprocessStdin:t,subprocess:e,waitWritableFinal:n,waitWritableDestroy:r},i)=>{await dm(n,e),await dm(r,e)&&(JN(t,i),await zN(e,i))},JN=(t,e)=>{BN(t,t.writable,e)},noe=({subprocess:t,concurrentStreams:e,encoding:n},{from:r,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{const a=s||mo.has(n),{subprocessStdout:c,waitReadableDestroy:u}=qN(t,r,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=VN(t,i,e),{readableEncoding:h,readableObjectMode:p,readableHighWaterMark:m}=jN(c,a),{read:y,onStdoutDataDone:g}=UN({subprocessStdout:c,subprocess:t,binary:a,encoding:n,preserveNewlines:o}),w=new bm({read:y,...KN(l,t,d),destroy:Do(roe.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:p,writableObjectMode:l.writableObjectMode,encoding:h});return GN({subprocessStdout:c,onStdoutDataDone:g,readable:w,subprocess:t,subprocessStdin:l}),YN(l,w,c),w},roe=async({subprocessStdout:t,subprocessStdin:e,subprocess:n,waitReadableDestroy:r,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([WN({subprocessStdout:t,subprocess:n,waitReadableDestroy:r},o),XN({subprocessStdin:e,subprocess:n,waitWritableFinal:i,waitWritableDestroy:s},o)])},ZN=(t,e,{from:n,binary:r=!1,preserveNewlines:i=!1}={})=>{const s=r||mo.has(e),o=Zb(t,n),a=kN({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return ioe(a,o,t)},ioe=async function*(t,e,n){try{yield*t}finally{e.readable&&e.destroy(),await n}},soe=(t,{encoding:e})=>{const n=Yse();t.readable=Jse.bind(void 0,{subprocess:t,concurrentStreams:n,encoding:e}),t.writable=Qse.bind(void 0,{subprocess:t,concurrentStreams:n}),t.duplex=noe.bind(void 0,{subprocess:t,concurrentStreams:n,encoding:e}),t.iterable=ZN.bind(void 0,t,e),t[Symbol.asyncIterator]=ZN.bind(void 0,t,e,{})},ooe=(t,e)=>{for(const[n,r]of coe){const i=r.value.bind(e);Reflect.defineProperty(t,n,{...r,value:i})}},aoe=(async()=>{})().constructor.prototype,coe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(aoe,t)]),uoe=(t,e,n,r)=>{const{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=loe(t,e,n),{subprocess:f,promise:h}=foe({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=_0.bind(void 0,{source:f,sourcePromise:h,boundOptions:{},createNested:r}),ooe(f,h),po.set(f,{options:l,fileDescriptors:d}),f},loe=(t,e,n)=>{const{command:r,escapedCommand:i,startTime:s,verboseInfo:o}=vI(t,e,n),{file:a,commandArguments:c,options:u}=oP(t,e,n),l=doe(u),d=Iie(l,o);return{file:a,commandArguments:c,command:r,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},doe=({timeout:t,signal:e,...n})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...n,timeoutDuration:t}},foe=({file:t,commandArguments:e,options:n,startTime:r,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=P2(t,e,n)}catch(p){return kie({error:p,command:s,escapedCommand:o,fileDescriptors:a,options:n,startTime:r,verboseInfo:i})}const u=new AbortController;z2(Number.POSITIVE_INFINITY,u.signal);const l=[...c.stdio];Vie(c,a,u),sse(c,n,u);const d={},f=od();c.kill=zQ.bind(void 0,{kill:c.kill.bind(c),options:n,onInternalError:f,context:d,controller:u}),c.all=Lse(c,n),soe(c,n),Rie(c,n);const h=hoe({subprocess:c,options:n,startTime:r,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:h}},hoe=async({subprocess:t,options:e,startTime:n,verboseInfo:r,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{const[d,[f,h],p,m,y]=await Wse({subprocess:t,options:e,context:c,verboseInfo:r,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();const g=p.map((k,A)=>Pa(k,e,A)),w=Pa(m,e,"all"),E=poe({errorInfo:d,exitCode:f,signal:h,stdio:g,all:w,ipcOutput:y,context:c,options:e,command:o,escapedCommand:a,startTime:n});return p0(E,r,e)},poe=({errorInfo:t,exitCode:e,signal:n,stdio:r,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?h0({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof rm,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:n,stdio:r,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):SP({command:c,escapedCommand:u,stdio:r,all:i,ipcOutput:s,options:a,startTime:l}),P0=(t,e)=>{const n=Object.fromEntries(Object.entries(e).map(([r,i])=>[r,moe(r,t[r],i)]));return{...t,...n}},moe=(t,e,n)=>goe.has(t)&&er(e)&&er(n)?{...e,...n}:n,goe=new Set(["env",...lI]),wo=(t,e,n,r)=>{const i=(o,a,c)=>wo(o,a,n,c),s=(...o)=>yoe({mapArguments:t,deepOptions:n,boundOptions:e,setBoundExeca:r,createNested:i},...o);return r!==void 0&&r(s,i,e),s},yoe=({mapArguments:t,deepOptions:e={},boundOptions:n={},setBoundExeca:r,createNested:i},s,...o)=>{if(er(s))return i(t,P0(n,s),r);const{file:a,commandArguments:c,options:u,isSync:l}=voe({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:n});return l?aie(a,c,u):uoe(a,c,u,i)},voe=({mapArguments:t,firstArgument:e,nextArguments:n,deepOptions:r,boundOptions:i})=>{const s=tZ(e)?nZ(e,n):[e,...n],[o,a,c]=Zx(...s),u=P0(P0(r,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:h=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:h}},woe=({file:t,commandArguments:e})=>QN(t,e),boe=({file:t,commandArguments:e})=>({...QN(t,e),isSync:!0}),QN=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);const[n,...r]=Eoe(t);return{file:n,commandArguments:r}},Eoe=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);const e=t.trim();if(e==="")return[];const n=[];for(const r of e.split(Doe)){const i=n.at(-1);i&&i.endsWith("\\")?n[n.length-1]=`${i.slice(0,-1)} ${r}`:n.push(r)}return n},Doe=/ +/g,Toe=(t,e,n)=>{t.sync=e(Soe,n),t.s=t.sync},Roe=({options:t})=>e2(t),Soe=({options:t})=>({...e2(t),isSync:!0}),e2=t=>({options:{...koe(t),...t}}),koe=({input:t,inputFile:e,stdio:n})=>t===void 0&&e===void 0&&n===void 0?{stdin:"inherit"}:{},$oe={preferLocal:!0},N0=wo(()=>({}));wo(()=>({isSync:!0})),wo(woe),wo(boe),wo(Lee),wo(Roe,{},$oe,Toe),Sie();const O0=Bp(2);class Coe{constructor(e="dot"){this.path=e}async unflatten(e){return await O0(async()=>{const n=await N0("unflatten",["-l 1","-c 3"],{reject:!1,timeout:1e4,input:e,stdin:"pipe",encoding:"utf8"});return n instanceof Error&&(n.stdout?Je.warn(`[BinaryGraphvizLayouter.layout] '${n.command}' failed: ${n.stderr}
1815
+
1816
+ but returned
1817
+ ${n.stdout}`):Je.error(`[BinaryGraphvizLayouter.layout] '${n.command}' failed: ${n.stderr}
1818
+
1819
+ nothing returned, ignoring...`)),n.stdout&&(e=n.stdout.replaceAll(/\t\[/g," [").replaceAll(/\t/g," ")),e})}async layoutJson(e){return await O0(async()=>{const n=await N0(this.path,["-Tjson","-y"],{reject:!1,timeout:1e4,input:e,stdin:"pipe",encoding:"utf8"});if(n instanceof Error){if(!n.stdout)throw Je.error(`[BinaryGraphvizLayouter.layout] '${n.command}' nothing returned and failed: "${n.stderr}"`),n;Je.warn(`[BinaryGraphvizLayouter.layout] '${n.command}' returned result but also failed "${n.stderr}"`)}return n.stdout})}async acyclic(e){return Promise.reject(new Error("Method not implemented."))}async svg(e){return await O0(async()=>{const n=await N0(this.path,["-Tsvg","-y"],{reject:!1,timeout:1e4,input:e,stdin:"pipe",encoding:"utf8"});if(n instanceof Error){if(!n.stdout)throw Je.error(`[BinaryGraphvizLayouter.layout] '${n.command}' nothing returned and failed: ${n.stderr}`),n;Je.warn(`[BinaryGraphvizLayouter.layout] '${n.command}' returned result but also failed ${n.stderr}`)}return n.stdout})}}const _oe="likec4",Aoe="1.16.0",xoe="MIT",Ioe="https://likec4.dev",Poe="Denis Davydkov <denis@davydkov.com>",Noe={url:"https://github.com/sponsors/davydkov"},Ooe={type:"git",url:"https://github.com/likec4/likec4.git",directory:"packages/likec4"},Foe={node:">=20"},Loe="https://github.com/likec4/likec4/issues",Moe="module",zoe="./bin/likec4.mjs",Boe={".":"./src/index.ts","./react":{types:"./app/react/components/index.ts",default:"./react/index.mjs"},"./react/style.css":"./react/style.css","./icons/all":{types:"./icons/all.d.ts",default:"./icons/all.js"},"./icons/*":{types:"./icons/icon.d.ts",default:"./icons/*"}},qoe={registry:"https://registry.npmjs.org",access:"public",exports:{".":{types:"./dist/index.d.ts",default:"./dist/index.mjs"},"./react":{types:"./react/index.d.ts",default:"./react/index.mjs"},"./react/style.css":"./react/style.css","./icons/all":{types:"./icons/all.d.ts",default:"./icons/all.js"},"./icons/*":{types:"./icons/icon.d.ts",default:"./icons/*"}}},joe={"turbo-build":"turbo run build --log-prefix=none --log-order=grouped",package:"yarn pack","typecheck:app":"tsc --noEmit -p ./app/tsconfig.json","typecheck:cli":"tsc --noEmit -p ./tsconfig.cli.json",typecheck:"run-p --print-label 'typecheck:*'","build-cli":"unbuild","build-app":"run-p --print-label 'bundle:*'","bundle:app":"tsx scripts/bundle-app.ts","bundle:react":"tsx scripts/bundle-react.ts","bundle:react-dts":"tsx scripts/dts-react.ts","bundle:webcomponent":"tsx scripts/bundle-webcomponent.ts",generate:"tsx scripts/generate.ts",prepack:"turbo run build --log-prefix=none --log-order=grouped",lint:"run -T eslint src/ --fix",clean:"rm -r -f dist app/dist dev/.export dev/dist node_modules/.vite",dev:"tsx watch src/cli/index.ts serve dev","dev:docs:bigbank":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/bigbank","dev:docs:dynamic-view":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/dynamic-view","dev:docs:index-page":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/index-page","dev:docs:theme":"tsx watch src/cli/index.ts serve ../../apps/docs/src/components/likec4-theme","dev:template":"tsx watch src/cli/index.ts serve ../create-likec4/template","dev:example-cloud":"tsx watch src/cli/index.ts serve ../../examples/cloud-system","dev:failed":"tsx watch src/cli/index.ts serve ../../examples/failed","dev:example-dev":"tsx watch src/cli/index.ts serve ../../examples/diagrams-dev/likec4",cli:"tsx src/cli/index.ts","cli:serve":"tsx watch src/cli/index.ts serve dev","cli:build":"tsx src/cli/index.ts build -o dev/dist dev","cli:preview":"tsx src/cli/index.ts preview -o dev/dist dev","cli:export":"tsx src/cli/index.ts export png -o dev/export dev","cli:export:json":"tsx src/cli/index.ts export json -o dev/export/likec4.json dev",test:"vitest run --no-isolate","vitest:ui":"vitest --no-isolate --ui","test:watch":"vitest"},Uoe={"@hpcc-js/wasm-graphviz":"1.6.1","@vitejs/plugin-react-swc":"3.7.1",playwright:"1.48.2",react:"^18.3.1","react-dom":"^18.3.1","type-fest":"4.26.1",vite:"5.4.10"},Goe={"@fontsource/ibm-plex-sans":"^5.1.0","@likec4/core":"workspace:*","@likec4/diagram":"workspace:*","@likec4/generators":"workspace:*","@likec4/icons":"workspace:*","@likec4/language-server":"workspace:*","@likec4/layouts":"workspace:*","@likec4/log":"workspace:*","@likec4/tsconfig":"workspace:*","@mantine/core":"7.13.4","@mantine/hooks":"7.13.4","@mantine/vanilla-extract":"7.13.4","@nanostores/react":"0.8.0","@react-hookz/web":"^24.0.4","@tabler/icons-react":"3.17.0","@tanstack/react-router":"1.45.13","@tanstack/router-cli":"1.45.13","@tanstack/router-vite-plugin":"1.45.13","@types/node":"^20.16.14","@types/prop-types":"^15.7.13","@types/react":"18.3.11","@types/react-dom":"18.3.1","@types/string-hash":"^1.1.3","@types/yargs":"^17.0.33","@vanilla-extract/css":"^1.16.0","@vanilla-extract/dynamic":"^2.1.2","@vanilla-extract/vite-plugin":"^4.0.17","@xyflow/react":"12.3.2","@xyflow/system":"0.0.43",autoprefixer:"^10.4.20",classnames:"^2.5.1",clsx:"^2.1.1",defu:"^6.1.4","dts-bundle-generator":"^9.5.1",esbuild:"^0.24.0","esbuild-node-externals":"^1.15.0",execa:"^9.3.1","fast-equals":"^5.0.1",fdir:"^6.4.2","framer-motion":"^11.11.10","get-port":"^7.1.0",glob:"^11.0.0","html-to-image":"^1.11.11",json5:"^2.2.3",langium:"3.2.0",mkdirp:"^3.0.1",nanostores:"0.11.3","npm-run-all2":"^6.2.6","p-limit":"^6.1.0","package-up":"^5.0.0",postcss:"^8.4.47","postcss-preset-mantine":"^1.17.0","pretty-ms":"^9.1.0","prop-types":"^15.8.1","react-error-boundary":"^4.1.2","react-resizable-panels":"^2.1.6","react-shadow":"^20.5.0",remeda:"^2.16.0","std-env":"^3.7.0","string-hash":"^1.1.3","strip-indent":"^4.0.0",terser:"^5.33.0",tinyrainbow:"^1.2.0",tsx:"~4.9.3",turbo:"^2.2.3",typescript:"^5.6.3",ufo:"^1.5.4",unbuild:"^3.0.0-rc.11","vite-plugin-css-injected-by-js":"^3.5.2","vite-plugin-shadow-style":"^1.1.1",vitest:"^2.1.4",yargs:"17.7.2"},Woe="yarn@4.5.1",t2={name:_oe,version:Aoe,license:xoe,homepage:Ioe,author:Poe,sponsor:Noe,repository:Ooe,engines:Foe,bugs:Loe,type:Moe,bin:zoe,exports:Boe,publishConfig:qoe,scripts:joe,dependencies:Uoe,devDependencies:Goe,packageManager:Woe},fm=Object.create(null),fd=t=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(t?fm:globalThis),ls=new Proxy(fm,{get(t,e){return fd()[e]??fm[e]},has(t,e){const n=fd();return e in n||e in fm},set(t,e,n){const r=fd(!0);return r[e]=n,!0},deleteProperty(t,e){if(!e)return!1;const n=fd(!0);return delete n[e],!0},ownKeys(){const t=fd(!0);return Object.keys(t)}}),Hoe=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",Voe=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"]];function Koe(){if(globalThis.process?.env)for(const t of Voe){const e=t[1]||t[0];if(globalThis.process?.env[e])return{name:t[0].toLowerCase(),...t[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}const n2=Koe();n2.name;function bo(t){return t?t!=="false":!1}const Yoe=globalThis.process?.platform||"",hm=bo(ls.CI)||n2.ci!==!1,r2=bo(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY);bo(ls.DEBUG);const Xoe=Hoe==="test"||bo(ls.TEST);bo(ls.MINIMAL);const Joe=/^win/i.test(Yoe);!bo(ls.NO_COLOR)&&(bo(ls.FORCE_COLOR)||(r2||Joe)&&ls.TERM);const Zoe=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(Zoe?.split(".")[0]);const Qoe=globalThis.process||Object.create(null),i2={versions:{}};new Proxy(Qoe,{get(t,e){if(e==="env")return ls;if(e in t)return t[e];if(e in i2)return i2[e]}});const eae=globalThis.process?.release?.name==="node",tae=!!globalThis.Bun||!!globalThis.process?.versions?.bun,nae=!!globalThis.Deno,rae=!!globalThis.fastly,iae=!!globalThis.Netlify,sae=!!globalThis.EdgeRuntime,oae=globalThis.navigator?.userAgent==="Cloudflare-Workers",aae=!!globalThis.__lagon__,cae=[[iae,"netlify"],[sae,"edge-light"],[oae,"workerd"],[rae,"fastly"],[nae,"deno"],[tae,"bun"],[eae,"node"],[aae,"lagon"]];function uae(){const t=cae.find(e=>e[0]);if(t)return{name:t[1]}}const lae=uae();lae?.name;const s2=dt.bold(dt.bgRed(dt.white("ERROR"))),dae=dt.bold(dt.yellow("WARN")),fae=dt.bold(dt.green("INFO"));function o2(t){const e=j2("info",{prefix:t,allowClearScreen:!hm}),n=!hm;return{...e,info(r,i){e.info(`${fae} ${r}`,{timestamp:n,...i})},warn(r,i){e.warn(`${dae} ${r}`,{timestamp:n,...i})},error(r,i){if(r instanceof Error){e.error(`${s2} ${dt.red(r.stack??r.name+" "+r.message)}`,{timestamp:n,error:r,...i});return}e.error(`${s2} ${r}`,{timestamp:n,...i})}}}const F0=()=>{},hae={info:F0,warn:F0,error:F0},pae=1e6;function a2(t){const[e,n]=md(t),r=e*1e3+n/pae;return{ms:r,pretty:CP(r)}}function mae(t){const e=md();return{stopAndLog(n="done in "){n=dt.green(`${n}${a2(e).pretty}`),t?t.info(n):Je.success(n)}}}class gae{constructor(e){this.services=e,this.layouter=e.likec4.Layouter}cache=new WeakMap;layouter;previousAction=Promise.resolve();limit=Bp(2);inflightRequest;async computedViews(){try{this.inflightRequest??=Promise.resolve().then(async()=>await this.services.likec4.ModelBuilder.buildComputedModel());const e=await Promise.resolve(this.inflightRequest);return Object.values(e?.views??{})}finally{this.inflightRequest=void 0}}async layoutViews(){const e=this.services.logger,n=this.previousAction.then(async()=>{const r=(await this.computedViews()).map(i=>this.limit(async()=>{try{let s=this.cache.get(i);return s||(s=await this.layouter.layout(i),this.cache.set(i,s)),s}catch(s){return e.error(s),null}}));return(await Promise.all(r)).filter(ae)});return this.previousAction=n.catch(r=>(e.error(r),Promise.resolve([]))),await n}async diagrams(){return(await this.layoutViews()).map(e=>e.diagram)}async viewsAsGraphvizOut(){const e="All-LayoutedViews-DotWithSvg",n=this.services.WorkspaceCache;if(n.has(e))return await Promise.resolve(n.get(e));const r=(await this.computedViews()).map(s=>this.limit(async()=>{const{dot:o,svg:a}=await this.layouter.svg(s);return{id:s.id,dot:o,svg:a}})),i=await Promise.all(r);return n.set(e,i),i}async overviewGraph(){const e="OverviewGraph",n=this.services.WorkspaceCache;if(n.has(e))return await Promise.resolve(n.get(e));const r=await this.computedViews(),i=await this.layouter.layoutOverviewGraph(r);return n.set(e,i),i}}class yae{constructor(e){this.services=e}isInitialized=!1;async initWorkspace(e){if(this.isInitialized)throw new Error("Workspace already initialized");const n=this.services.logger,r=this.services.shared.workspace.WorkspaceManager;n.info(`${dt.dim("workspace:")} ${e.uri}`),r.initialize({capabilities:{},processId:null,rootUri:null,workspaceFolders:[e]}),await r.initializeWorkspace([e])}async init(){if(this.isInitialized)throw new Error("Workspace already initialized");this.isInitialized=!0;const e=this.services.logger,n=this.services.likec4.ModelBuilder,r=this.services.shared.workspace.LangiumDocuments,i=this.services.shared.workspace.DocumentBuilder,s=r.all.toArray();if(s.length===0)throw e.error("no LikeC4 sources found"),new Error("no LikeC4 sources found");e.info(`${dt.dim("workspace:")} found ${s.length} source files`),await i.build(s,{validation:!0});const o=await n.buildComputedModel(),a=ah(o?.views??{}).length;if(a===0){e.warn(`${dt.dim("workspace:")} no views found`);return}e.info(`${dt.dim("workspace:")} ${dt.green(`\u2713 computed ${a} views`)}`);const c=await this.services.likec4.Views.diagrams();c.length===a?e.info(`${dt.dim("workspace:")} ${dt.green("\u2713 all views layouted")}`):e.warn(`${dt.dim("workspace:")} ${dt.yellow(`\u2717 layouted ${c.length} views`)}`)}}function c2(t){return e=>new t(e)}const vae={logger:()=>{throw new Error("Logger must be provided")},likec4:{Layouter:()=>{throw new Error("Layouter must be provided")},Views:c2(gae)},cli:{Workspace:c2(yae)}};function u2(t){const e=Fa(t,{useFileSystem:!0,logger:"default",graphviz:"wasm"});let n;switch(e.logger){case!1:n=hae;break;case"vite":n=o2("c4:lsp ");break;case"default":n=Je.withTag("lsp");break;default:n=e.logger}const r=e.graphviz==="binary";n.info(`${dt.dim("version")} ${t2.version}`),n.info(`${dt.dim("layout")} ${r?"binary":"wasm"}`);const i={logger:()=>n,likec4:{Layouter:()=>new WJ(r===!0?new Coe:new VJ)}};return LK(e.logger===!1?"silent":"info"),e.logger!==!1&&e.logger!=="default"&&Ne.setReporters([{log:({level:s,...o},a)=>{const c=o.tag||"",u=o.args.map(d=>cv(d)?d.stack??d.message:typeof d=="string"?d:String(d));c&&u.unshift(`[${c}]`);const l=u.join(" ");switch(!0){case s>=Xe.debug:break;case s>=Xe.info:{n.info(l);break}case s>=Xe.log:{n.info(l);break}case s>=Xe.warn:{n.warn(l);break}case s>=Xe.fatal:{n.error(l);break}}}}]),uX(e.useFileSystem?yG:{},vae,i).likec4}const l2=t=>new Error(`Invalid model:
1820
+ ${t.getErrors().map(e=>` ${e.sourceFsPath}:${e.line} ${e.message.slice(0,200)}`).join(`
1821
+ `)}`);class ds{constructor(e,n,r){this.workspace=e,this.langium=n,this.isPrintErrorEnabled=r,this.logger=n.logger,this.langiumDocuments=n.shared.workspace.LangiumDocuments,this.views=n.likec4.Views,this.isPrintErrorEnabled&&this.printErrors()}static async fromSource(e,n){const r=u2(Fa(n,{useFileSystem:!1,logger:!1,graphviz:"wasm"})),i=Jt.from({scheme:"virtual",path:"/workspace"});await r.cli.Workspace.initWorkspace({uri:i.toString(),name:"virtual"});const s=Dt.joinPath(i,"source.likec4");r.shared.workspace.LangiumDocuments.createDocument(s,e),await r.cli.Workspace.init();const o=new ds(i.path,r,n?.printErrors??!0);return n?.throwIfInvalid===!0&&o.hasErrors()?(o.dispose(),Promise.reject(l2(o))):o}static likec4Instances=new Map;static async fromWorkspace(e="",n){const r=w2(e);if(!y2(r))throw new Error(`Workspace not found: ${r}`);let i=ds.likec4Instances.get(r);if(!i){const s=u2(Fa(n,{useFileSystem:!0,logger:"default",graphviz:"wasm"}));await s.cli.Workspace.initWorkspace({uri:E2(r).toString(),name:b2(r)}),await s.cli.Workspace.init(),i=new ds(r,s,n?.printErrors??!0),ds.likec4Instances.set(r,i)}return n?.throwIfInvalid===!0&&i.hasErrors()?(i.dispose(),Promise.reject(l2(i))):i}modelComputedRef;modelLayoutedRef;logger;langiumDocuments;views;async diagrams(){return await this.langium.likec4.Views.diagrams()}model(){return this.computedModel()}computedModel(){let e=this.modelComputedRef?.deref();if(!e){const n=this.langium.likec4.ModelBuilder.unsafeSyncBuildModel();if(!n)throw new Error("Failed to build model");const r=this.langium.likec4.ModelBuilder.unsafeSyncBuildComputedModel(n);e=Ua.computed(r),this.modelComputedRef=new WeakRef(e)}return e}async layoutedModel(){let e=this.modelLayoutedRef?.deref();if(!e){const n=await this.langium.likec4.ModelBuilder.buildComputedModel();if(!n)throw new Error("Failed to build model");const r=await this.views.diagrams();e=Ua.layouted({__:"layouted",...n,views:uv(r,yi("id"))}),this.modelLayoutedRef=new WeakRef(e)}return e}getErrors(){return this.langiumDocuments.all.toArray().flatMap(e=>(e.diagnostics??[]).filter(n=>n.severity===Xc.Error).map(({message:n,range:r})=>({message:n,line:r.start.line,range:r,sourceFsPath:e.uri.fsPath})))}hasErrors(){return this.langiumDocuments.all.some(e=>e.diagnostics?.some(n=>n.severity===Xc.Error)??!1)}printErrors(){let e=!1;for(const n of this.langiumDocuments.all){const r=n.diagnostics?.filter(i=>i.severity===1);if(r&&r.length>0){e=!0;const i=r.flatMap(s=>{const o=s.range.start.line,a=s.message.split(`
1822
+ `);return a.length>10&&(a.length=10,a.push("...")),a.map((c,u)=>u===0?" "+dt.dim(`Line ${o}: `)+dt.red(c):" ".repeat(10)+dt.red(c))}).join(`
1823
+ `);this.logger.error(`Invalid ${n.uri.fsPath}
1824
+ ${i}`)}}return e}async notifyUpdate({changed:e,removed:n}){this.modelLayoutedRef=void 0,this.modelComputedRef=void 0;const r=this.langium.shared.workspace.WorkspaceLock;try{let i=!1;return await r.write(async s=>{await this.langium.shared.workspace.DocumentBuilder.update(e?[Jt.file(e)]:[],n?[Jt.file(n)]:[],s),i=!s.isCancellationRequested}),i}catch(i){return this.logger.error(i),!1}}onModelUpdate(e){const n=this.langium.likec4.ModelBuilder.onModelParsed(()=>e());return()=>{n.dispose()}}dispose(){for(const[e,n]of ds.likec4Instances)n===this&&ds.likec4Instances.delete(e)}}export{CD as $,ks as A,zr as B,So as C,nt as D,ae as E,Qe as F,Vi as G,tO as H,dt as I,nO as J,Bp as K,we as L,Ga as M,tT as N,Je as O,vi as P,Nk as Q,o2 as R,ZV as S,Lo as T,Mw as U,SE as V,QV as W,sa as X,Lk as Y,AC as Z,a2 as _,Ed as a,mae as a0,Nv as a1,Td as a2,Br as a3,PD as a4,Xe as a5,t2 as a6,$r as b,MO as c,Ma as d,Ie as e,kt as f,ID as g,Gn as h,za as i,ds as j,ko as k,IC as l,Ua as m,pn as n,r$ as o,sn as p,Bo as q,vt as r,Nd as s,ja as t,at as u,Ye as v,Am as w,Zr as x,kE as y,Nm as z};