@hydra-acp/browser 0.1.22 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/index.html +14 -14
- package/package.json +1 -1
package/dist/ui/index.html
CHANGED
|
@@ -200,21 +200,21 @@ pre code { background: transparent; padding: 0; }
|
|
|
200
200
|
</head>
|
|
201
201
|
<body>
|
|
202
202
|
<div id="app"></div>
|
|
203
|
-
<script nonce="__CSP_NONCE__">"use strict";(()=>{var Or=Object.create;var Pn=Object.defineProperty;var Cr=Object.getOwnPropertyDescriptor;var Lr=Object.getOwnPropertyNames;var Dr=Object.getPrototypeOf,Pr=Object.prototype.hasOwnProperty;var Br=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Fr=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of Lr(n))!Pr.call(e,s)&&s!==t&&Pn(e,s,{get:()=>n[s],enumerable:!(r=Cr(n,s))||r.enumerable});return e};var Ur=(e,n,t)=>(t=e!=null?Or(Dr(e)):{},Fr(n||!e||!e.__esModule?Pn(t,"default",{value:e,enumerable:!0}):t,e));var st=Br((oo,rt)=>{function Gn(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(n=>{let t=e[n],r=typeof t;(r==="object"||r==="function")&&!Object.isFrozen(t)&&Gn(t)}),e}var He=class{constructor(n){n.data===void 0&&(n.data={}),this.data=n.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Wn(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ue(e,...n){let t=Object.create(null);for(let r in e)t[r]=e[r];return n.forEach(function(r){for(let s in r)t[s]=r[s]}),t}var Hr="</span>",Un=e=>!!e.scope,zr=(e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let t=e.split(".");return[`${n}${t.shift()}`,...t.map((r,s)=>`${r}${"_".repeat(s+1)}`)].join(" ")}return`${n}${e}`},gn=class{constructor(n,t){this.buffer="",this.classPrefix=t.classPrefix,n.walk(this)}addText(n){this.buffer+=Wn(n)}openNode(n){if(!Un(n))return;let t=zr(n.scope,{prefix:this.classPrefix});this.span(t)}closeNode(n){Un(n)&&(this.buffer+=Hr)}value(){return this.buffer}span(n){this.buffer+=`<span class="${n}">`}},$n=(e={})=>{let n={children:[]};return Object.assign(n,e),n},fn=class e{constructor(){this.rootNode=$n(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(n){this.top.children.push(n)}openNode(n){let t=$n({scope:n});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(n){return this.constructor._walk(n,this.rootNode)}static _walk(n,t){return typeof t=="string"?n.addText(t):t.children&&(n.openNode(t),t.children.forEach(r=>this._walk(n,r)),n.closeNode(t)),n}static _collapse(n){typeof n!="string"&&n.children&&(n.children.every(t=>typeof t=="string")?n.children=[n.children.join("")]:n.children.forEach(t=>{e._collapse(t)}))}},mn=class extends fn{constructor(n){super(),this.options=n}addText(n){n!==""&&this.add(n)}startScope(n){this.openNode(n)}endScope(){this.closeNode()}__addSublanguage(n,t){let r=n.root;t&&(r.scope=`language:${t}`),this.add(r)}toHTML(){return new gn(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function Ie(e){return e?typeof e=="string"?e:e.source:null}function Yn(e){return fe("(?=",e,")")}function Kr(e){return fe("(?:",e,")*")}function qr(e){return fe("(?:",e,")?")}function fe(...e){return e.map(t=>Ie(t)).join("")}function Gr(e){let n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function En(...e){return"("+(Gr(e).capture?"":"?:")+e.map(r=>Ie(r)).join("|")+")"}function Zn(e){return new RegExp(e.toString()+"|").exec("").length-1}function Wr(e,n){let t=e&&e.exec(n);return t&&t.index===0}var Yr=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _n(e,{joinWith:n}){let t=0;return e.map(r=>{t+=1;let s=t,o=Ie(r),a="";for(;o.length>0;){let c=Yr.exec(o);if(!c){a+=o;break}a+=o.substring(0,c.index),o=o.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?a+="\\"+String(Number(c[1])+s):(a+=c[0],c[0]==="("&&t++)}return a}).map(r=>`(${r})`).join(n)}var Zr=/\b\B/,Qn="[a-zA-Z]\\w*",hn="[a-zA-Z_]\\w*",Vn="\\b\\d+(\\.\\d+)?",Xn="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Jn="\\b(0b[01]+)",Qr="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Vr=(e={})=>{let n=/^#![ ]*\//;return e.binary&&(e.begin=fe(n,/.*\b/,e.binary,/\b.*/)),ue({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(t,r)=>{t.index!==0&&r.ignoreMatch()}},e)},ke={begin:"\\\\[\\s\\S]",relevance:0},Xr={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ke]},Jr={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ke]},jr={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Ke=function(e,n,t={}){let r=ue({scope:"comment",begin:e,end:n,contains:[]},t);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let s=En("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:fe(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},es=Ke("//","$"),ns=Ke("/\\*","\\*/"),ts=Ke("#","$"),rs={scope:"number",begin:Vn,relevance:0},ss={scope:"number",begin:Xn,relevance:0},is={scope:"number",begin:Jn,relevance:0},os={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ke,{begin:/\[/,end:/\]/,relevance:0,contains:[ke]}]},as={scope:"title",begin:Qn,relevance:0},cs={scope:"title",begin:hn,relevance:0},ls={begin:"\\.\\s*"+hn,relevance:0},us=function(e){return Object.assign(e,{"on:begin":(n,t)=>{t.data._beginMatch=n[1]},"on:end":(n,t)=>{t.data._beginMatch!==n[1]&&t.ignoreMatch()}})},$e=Object.freeze({__proto__:null,APOS_STRING_MODE:Xr,BACKSLASH_ESCAPE:ke,BINARY_NUMBER_MODE:is,BINARY_NUMBER_RE:Jn,COMMENT:Ke,C_BLOCK_COMMENT_MODE:ns,C_LINE_COMMENT_MODE:es,C_NUMBER_MODE:ss,C_NUMBER_RE:Xn,END_SAME_AS_BEGIN:us,HASH_COMMENT_MODE:ts,IDENT_RE:Qn,MATCH_NOTHING_RE:Zr,METHOD_GUARD:ls,NUMBER_MODE:rs,NUMBER_RE:Vn,PHRASAL_WORDS_MODE:jr,QUOTE_STRING_MODE:Jr,REGEXP_MODE:os,RE_STARTERS_RE:Qr,SHEBANG:Vr,TITLE_MODE:as,UNDERSCORE_IDENT_RE:hn,UNDERSCORE_TITLE_MODE:cs});function ds(e,n){e.input[e.index-1]==="."&&n.ignoreMatch()}function ps(e,n){e.className!==void 0&&(e.scope=e.className,delete e.className)}function gs(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=ds,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function fs(e,n){Array.isArray(e.illegal)&&(e.illegal=En(...e.illegal))}function ms(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function bs(e,n){e.relevance===void 0&&(e.relevance=1)}var Es=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let t=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=t.keywords,e.begin=fe(t.beforeMatch,Yn(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},_s=["of","and","for","in","not","or","if","then","parent","list","value"],hs="keyword";function jn(e,n,t=hs){let r=Object.create(null);return typeof e=="string"?s(t,e.split(" ")):Array.isArray(e)?s(t,e):Object.keys(e).forEach(function(o){Object.assign(r,jn(e[o],n,o))}),r;function s(o,a){n&&(a=a.map(c=>c.toLowerCase())),a.forEach(function(c){let u=c.split("|");r[u[0]]=[o,ys(u[0],u[1])]})}}function ys(e,n){return n?Number(n):ws(e)?0:1}function ws(e){return _s.includes(e.toLowerCase())}var Hn={},ge=e=>{console.error(e)},zn=(e,...n)=>{console.log(`WARN: ${e}`,...n)},ye=(e,n)=>{Hn[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),Hn[`${e}/${n}`]=!0)},ze=new Error;function et(e,n,{key:t}){let r=0,s=e[t],o={},a={};for(let c=1;c<=n.length;c++)a[c+r]=s[c],o[c+r]=!0,r+=Zn(n[c-1]);e[t]=a,e[t]._emit=o,e[t]._multi=!0}function Ss(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw ge("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ze;if(typeof e.beginScope!="object"||e.beginScope===null)throw ge("beginScope must be object"),ze;et(e,e.begin,{key:"beginScope"}),e.begin=_n(e.begin,{joinWith:""})}}function vs(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw ge("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ze;if(typeof e.endScope!="object"||e.endScope===null)throw ge("endScope must be object"),ze;et(e,e.end,{key:"endScope"}),e.end=_n(e.end,{joinWith:""})}}function Ns(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Ts(e){Ns(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Ss(e),vs(e)}function As(e){function n(a,c){return new RegExp(Ie(a),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(c?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,c]),this.matchAt+=Zn(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let c=this.regexes.map(u=>u[1]);this.matcherRe=n(_n(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;let u=this.matcherRe.exec(c);if(!u)return null;let d=u.findIndex((m,b)=>b>0&&m!==void 0),p=this.matchIndexes[d];return u.splice(0,d),Object.assign(u,p)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];let u=new t;return this.rules.slice(c).forEach(([d,p])=>u.addRule(d,p)),u.compile(),this.multiRegexes[c]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,u){this.rules.push([c,u]),u.type==="begin"&&this.count++}exec(c){let u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let d=u.exec(c);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){let p=this.getMatcher(0);p.lastIndex=this.lastIndex+1,d=p.exec(c)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function s(a){let c=new r;return a.contains.forEach(u=>c.addRule(u.begin,{rule:u,type:"begin"})),a.terminatorEnd&&c.addRule(a.terminatorEnd,{type:"end"}),a.illegal&&c.addRule(a.illegal,{type:"illegal"}),c}function o(a,c){let u=a;if(a.isCompiled)return u;[ps,ms,Ts,Es].forEach(p=>p(a,c)),e.compilerExtensions.forEach(p=>p(a,c)),a.__beforeBegin=null,[gs,fs,bs].forEach(p=>p(a,c)),a.isCompiled=!0;let d=null;return typeof a.keywords=="object"&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),d=a.keywords.$pattern,delete a.keywords.$pattern),d=d||/\w+/,a.keywords&&(a.keywords=jn(a.keywords,e.case_insensitive)),u.keywordPatternRe=n(d,!0),c&&(a.begin||(a.begin=/\B|\b/),u.beginRe=n(u.begin),!a.end&&!a.endsWithParent&&(a.end=/\B|\b/),a.end&&(u.endRe=n(u.end)),u.terminatorEnd=Ie(u.end)||"",a.endsWithParent&&c.terminatorEnd&&(u.terminatorEnd+=(a.end?"|":"")+c.terminatorEnd)),a.illegal&&(u.illegalRe=n(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map(function(p){return Is(p==="self"?a:p)})),a.contains.forEach(function(p){o(p,u)}),a.starts&&o(a.starts,c),u.matcher=s(u),u}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=ue(e.classNameAliases||{}),o(e)}function nt(e){return e?e.endsWithParent||nt(e.starts):!1}function Is(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(n){return ue(e,{variants:null},n)})),e.cachedVariants?e.cachedVariants:nt(e)?ue(e,{starts:e.starts?ue(e.starts):null}):Object.isFrozen(e)?ue(e):e}var ks="11.11.1",bn=class extends Error{constructor(n,t){super(n),this.name="HTMLInjectionError",this.html=t}},pn=Wn,Kn=ue,qn=Symbol("nomatch"),Rs=7,tt=function(e){let n=Object.create(null),t=Object.create(null),r=[],s=!0,o="Could not find the language '{}', did you forget to load/include a language module?",a={disableAutodetect:!0,name:"Plain text",contains:[]},c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:mn};function u(g){return c.noHighlightRe.test(g)}function d(g){let w=g.className+" ";w+=g.parentNode?g.parentNode.className:"";let y=c.languageDetectRe.exec(w);if(y){let I=L(y[1]);return I||(zn(o.replace("{}",y[1])),zn("Falling back to no-highlight mode for this block.",g)),I?y[1]:"no-highlight"}return w.split(/\s+/).find(I=>u(I)||L(I))}function p(g,w,y){let I="",M="";typeof w=="object"?(I=g,y=w.ignoreIllegals,M=w.language):(ye("10.7.0","highlight(lang, code, ...args) has been deprecated."),ye("10.7.0",`Please use highlight(code, options) instead.
|
|
204
|
-
https://github.com/highlightjs/highlight.js/issues/2277`),M=g,I=w),y===void 0&&(y=!0);let U={code:I,language:M};G("before:highlight",U);let K=U.result?U.result:m(U.language,U.code,y);return K.code=U.code,G("after:highlight",K),K}function m(g,w,y,I){let M=Object.create(null);function U(E,v){return E.keywords[v]}function K(){if(!T.keywords){Z.addText($);return}let E=0;T.keywordPatternRe.lastIndex=0;let v=T.keywordPatternRe.exec($),R="";for(;v;){R+=$.substring(E,v.index);let D=
|
|
205
|
-
`,1;if(cn>1e5&&cn>v.index*3)throw new Error("potential infinite loop, way more iterations than matches");return $+=R,R.length}let
|
|
206
|
-
`),t="",
|
|
207
|
-
`))}</code></pre>`,
|
|
208
|
-
`))}</code></pre>`),u(),d(),t}function Ae(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.map(Ae).join("");if(e&&typeof e=="object"){let n=e;if(typeof n.text=="string")return n.text;if(typeof n.content=="string")return n.content}return""}var it=Ur(st(),1);var q=it.default;function ot(e){let n=e.regex,t={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});let s={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},o=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,s]};s.contains.push(c);let u={match:/\\"/},d={className:"string",begin:/'/,end:/'/},p={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},b=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],h=e.SHEBANG({binary:`(${b.join("|")})`,relevance:10}),f={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},_=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],A={match:/(\/[a-z._-]+)+/},k=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],P=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],O=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],C=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:_,literal:S,built_in:[...k,...P,"set","shopt",...O,...C]},contains:[h,e.SHEBANG(),f,m,o,a,A,c,u,d,p,t]}}function at(e){let n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",a="("+r+"|"+n.optional(s)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",c={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},p={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},m={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),{className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(s)+e.IDENT_RE,relevance:0},h=n.optional(s)+e.IDENT_RE+"\\s*\\(",S={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},A=[m,c,t,e.C_BLOCK_COMMENT_MODE,p,d],k={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:S,contains:A.concat([{begin:/\(/,end:/\)/,keywords:S,contains:A.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+a+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:S,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:S,relevance:0},{begin:h,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,d,p,c,{begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,d,p,c]}]},c,t,e.C_BLOCK_COMMENT_MODE,m]};return{name:"C",aliases:["h"],keywords:S,disableAutodetect:!0,illegal:"</",contains:[].concat(k,P,A,[m,{begin:e.IDENT_RE+"::",keywords:S},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:m,strings:d,keywords:S}}}function ct(e){let n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",a="(?!struct)("+r+"|"+n.optional(s)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},p={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},m={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),{className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(s)+e.IDENT_RE,relevance:0},h=n.optional(s)+e.IDENT_RE+"\\s*\\(",f=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],_=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],S=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],A=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],O={type:_,keyword:f,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:S},C={className:"function.dispatch",relevance:0,keywords:{_hint:A},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},x=[C,m,c,t,e.C_BLOCK_COMMENT_MODE,p,d],Y={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:O,contains:x.concat([{begin:/\(/,end:/\)/,keywords:O,contains:x.concat(["self"]),relevance:0}]),relevance:0},L={className:"function",begin:"("+a+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:O,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:O,relevance:0},{begin:h,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[d,p]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,d,p,c,{begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,d,p,c]}]},c,t,e.C_BLOCK_COMMENT_MODE,m]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:O,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(Y,L,C,x,[m,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:O,contains:["self",c]},{begin:e.IDENT_RE+"::",keywords:O},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}var xs=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Ms=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Os=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Cs=[...Ms,...Os],Ls=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Ds=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Ps=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Bs=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function lt(e){let n=e.regex,t=xs(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",o=/@-?\w[\w]*(-\w+)*/,a="[a-zA-Z-][a-zA-Z0-9_-]*",c=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[t.BLOCK_COMMENT,r,t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+a,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Ds.join("|")+")"},{begin:":(:)?("+Ps.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Bs.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:o},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:Ls.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Cs.join("|")+")\\b"}]}}function ut(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}function dt(e){let o={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:o,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:o,illegal:/["']/}]}]}}function pt(e){let n=e.regex,t={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let s={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},o={className:"literal",begin:/\bon|off|true|false|yes|no\b/},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[r,o,s,a,t,"self"],relevance:0},u=/[A-Za-z0-9_-]+/,d=/"(\\"|[^"])*"/,p=/'[^']*'/,m=n.either(u,d,p),b=n.concat(m,"(\\s*\\.\\s*",m,")*",n.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[r,{className:"section",begin:/\[+/,end:/\]+/},{begin:b,className:"attr",starts:{end:/$/,contains:[r,c,o,s,a,t]}}]}}var Se="[0-9](_*[0-9])*",qe=`\\.(${Se})`,Ge="[0-9a-fA-F](_*[0-9a-fA-F])*",gt={className:"number",variants:[{begin:`(\\b(${Se})((${qe})|\\.)?|(${qe}))[eE][+-]?(${Se})[fFdD]?\\b`},{begin:`\\b(${Se})((${qe})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${qe})[fFdD]?\\b`},{begin:`\\b(${Se})[fFdD]\\b`},{begin:`\\b0[xX]((${Ge})\\.?|(${Ge})?\\.(${Ge}))[pP][+-]?(${Se})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ge})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function ft(e,n,t){return t===-1?"":e.replace(n,r=>ft(e,n,t-1))}function mt(e){let n=e.regex,t="[\xC0-\u02B8a-zA-Z_$][\xC0-\u02B8a-zA-Z_$0-9]*",r=t+ft("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),u={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},d={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},p={className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:u,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",3:"title.class"},contains:[p,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:u,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,gt,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},gt,d]}}var bt="[A-Za-z$_][0-9A-Za-z$_]*",Fs=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Us=["true","false","null","undefined","NaN","Infinity"],Et=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],_t=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],ht=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],$s=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Hs=[].concat(ht,Et,_t);function yt(e){let n=e.regex,t=(y,{after:I})=>{let M="</"+y[0].slice(1);return y.input.indexOf(M,I)!==-1},r=bt,s={begin:"<>",end:"</>"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(y,I)=>{let M=y[0].length+y.index,U=y.input[M];if(U==="<"||U===","){I.ignoreMatch();return}U===">"&&(t(y,{after:M})||I.ignoreMatch());let K,ne=y.input.substring(M);if(K=ne.match(/^\s*=/)){I.ignoreMatch();return}if((K=ne.match(/^\s+extends\s+/))&&K.index===0){I.ignoreMatch();return}}},c={$pattern:bt,keyword:Fs,literal:Us,built_in:Hs,"variable.language":$s},u="[0-9](_?[0-9])*",d=`\\.(${u})`,p="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${p})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${p})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},f={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},k={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,{match:/\$\d+/},m];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(P)});let O=[].concat(k,b.contains),C=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(O)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C},Y={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,n.concat(r,"(",n.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Et,..._t]}},z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},J={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},ie={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ee(y){return n.concat("(?!",y.join("|"),")")}let se={match:n.concat(/\b/,ee([...ht,"super","import"].map(y=>`${y}\\s*\\(`)),r,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},G={begin:n.concat(/\./,n.lookahead(n.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},W={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",w={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),z,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,k,{match:/\$\d+/},m,L,{scope:"attr",match:r+n.lookahead(":"),relevance:0},w,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[k,e.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:o},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},J,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},se,ie,Y,W,{match:/\$[(.]/}]}}function wt(e){let n={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],s={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[n,t,e.QUOTE_STRING_MODE,s,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var ve="[0-9](_*[0-9])*",We=`\\.(${ve})`,Ye="[0-9a-fA-F](_*[0-9a-fA-F])*",zs={className:"number",variants:[{begin:`(\\b(${ve})((${We})|\\.)?|(${We}))[eE][+-]?(${ve})[fFdD]?\\b`},{begin:`\\b(${ve})((${We})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${We})[fFdD]?\\b`},{begin:`\\b(${ve})[fFdD]\\b`},{begin:`\\b0[xX]((${Ye})\\.?|(${Ye})?\\.(${Ye}))[pP][+-]?(${ve})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ye})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function St(e){let n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},t={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},o={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},a={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[o,s]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,o,s]}]};s.contains.push(a);let c={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},u={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(a,{className:"string"}),"self"]}]},d=zs,p=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),m={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},b=m;return b.variants[1].contains=[m],m.variants[1].contains=[b],{name:"Kotlin",aliases:["kt","kts"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,p,t,r,c,u,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[m,e.C_LINE_COMMENT_MODE,p],relevance:0},e.C_LINE_COMMENT_MODE,p,c,u,a,e.C_NUMBER_MODE]},p]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},c,u]},a,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
209
|
-
`},d]}}function vt(e){let n=e.regex,t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},
|
|
210
|
-
]`,f={scope:"string",variants:[p,d,m,b]},_={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},S=["false","null","true"],A=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],k=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],O={keyword:A,literal:(G=>{let W=[];return G.forEach(g=>{W.push(g),g.toLowerCase()===g?W.push(g.toUpperCase()):W.push(g.toLowerCase())}),W})(S),built_in:k},C=G=>G.map(W=>W.replace(/\|\d+$/,"")),x={variants:[{match:[/new/,n.concat(h,"+"),n.concat("(?!",C(k).join("\\b|"),"\\b)"),s],scope:{1:"keyword",4:"title.class"}}]},Y=n.concat(r,"\\b(?!\\()"),L={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),Y],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[s,n.concat(/::/,n.lookahead(/(?!class\b)/)),Y],scope:{1:"title.class",3:"variable.constant"}},{match:[s,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[s,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},z={scope:"attr",match:n.concat(r,n.lookahead(":"),n.lookahead(/(?!::)/))},J={relevance:0,begin:/\(/,end:/\)/,keywords:O,contains:[z,a,L,e.C_BLOCK_COMMENT_MODE,f,_,x]},ie={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",C(A).join("\\b|"),"|",C(k).join("\\b|"),"\\b)"),r,n.concat(h,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[J]};J.contains.push(ie);let ee=[z,L,e.C_BLOCK_COMMENT_MODE,f,_,x],se={begin:n.concat(/#\[\s*\\?/,n.either(s,o)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...ee]},...ee,{scope:"meta",variants:[{match:s},{match:o}]}]};return{case_insensitive:!1,keywords:O,contains:[se,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},c,{scope:"variable.language",match:/\$this\b/},a,ie,L,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},x,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:O,contains:["self",se,a,L,e.C_BLOCK_COMMENT_MODE,f,_]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},f,_]}}function Tt(e){let n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},p={begin:/\{\{/,relevance:0},m={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u,p,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u,p,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,p,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,p,d]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},b="[0-9](_?[0-9])*",h=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,f=`\\b|${r.join("|")}`,_={className:"number",relevance:0,variants:[{begin:`(\\b(${b})|(${h}))[eE][+-]?(${b})[jJ]?(?=${f})`},{begin:`(${h})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${f})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${f})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${f})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${f})`},{begin:`\\b(${b})[jJ](?=${f})`}]},S={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},A={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,_,m,e.HASH_COMMENT_MODE]}]};return d.contains=[m,_,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:c,illegal:/(<\/|\?)|=>/,contains:[u,_,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},m,S,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[A]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[_,A,m]}]}}function At(e){let n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),s=n.concat(r,/(::\w+)*/),a={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},c={className:"doctag",begin:"@[A-Za-z]+"},u={begin:"#<",end:">"},d=[e.COMMENT("#","$",{contains:[c]}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],p={className:"subst",begin:/#\{/,end:/\}/,keywords:a},m={className:"string",contains:[e.BACKSLASH_ESCAPE,p],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,p]})]}]},b="[1-9](_?[0-9])*|0",h="[0-9](_?[0-9])*",f={className:"number",relevance:0,variants:[{begin:`\\b(${b})(\\.(${h}))?([eE][+-]?(${h})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},_={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},x=[m,{variants:[{match:[/class\s+/,s,/\s+<\s+/,s]},{match:[/\b(class|module)\s+/,s]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},{match:[/(include|extend)\s+/,s],scope:{2:"title.class"},keywords:a},{relevance:0,match:[s,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[_]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[m,{begin:t}],relevance:0},f,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,p],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(u,d),relevance:0}].concat(u,d);p.contains=x,_.contains=x;let J=[{begin:/^\s*=>/,starts:{end:"$",contains:x}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:a,contains:x}}];return d.unshift(u),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(J).concat(d).concat(x)}}function It(e){let n=e.regex,t=/(r#)?/,r=n.concat(t,e.UNDERSCORE_IDENT_RE),s=n.concat(t,e.IDENT_RE),o={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,n.lookahead(/\s*\(/))},a="([ui](8|16|32|64|128|size)|f(32|64))?",c=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],u=["true","false","Some","None","Ok","Err"],d=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],p=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:p,keyword:c,literal:u,built_in:d},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+a},{begin:"\\b0o([0-7_]+)"+a},{begin:"\\b0x([A-Fa-f0-9_]+)"+a},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+a}],relevance:0},{begin:[/fn/,/\s+/,r],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,r],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,r,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:d,type:p}},{className:"punctuation",begin:"->"},o]}}function kt(e){let n=e.regex,t=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},o=["true","false","unknown"],a=["double precision","large object","with timezone","without timezone"],c=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],u=["add","asc","collation","desc","final","first","last","view"],d=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],p=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],m=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],b=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],h=p,f=[...d,...u].filter(C=>!p.includes(C)),_={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},A={match:n.concat(/\b/,n.either(...h),/\s*\(/),relevance:0,keywords:{built_in:h}};function k(C){return n.concat(/\b/,n.either(...C.map(x=>x.replace(/\s+/,"\\s+"))),/\b/)}let P={scope:"keyword",match:k(b),relevance:0};function O(C,{exceptions:x,when:Y}={}){let L=Y;return x=x||[],C.map(z=>z.match(/\|\d+$/)||x.includes(z)?z:L(z)?`${z}|0`:z)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:O(f,{when:C=>C.length<3}),literal:o,type:c,built_in:m},contains:[{scope:"type",match:k(a)},P,A,_,r,s,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,S]}}function Ot(e){return e?typeof e=="string"?e:e.source:null}function Re(e){return F("(?=",e,")")}function F(...e){return e.map(t=>Ot(t)).join("")}function Ks(e){let n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function X(...e){return"("+(Ks(e).capture?"":"?:")+e.map(r=>Ot(r)).join("|")+")"}var Sn=e=>F(/\b/,e,/\w$/.test(e)?/\b/:/\B/),qs=["Protocol","Type"].map(Sn),Rt=["init","self"].map(Sn),Gs=["Any","Self"],yn=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],xt=["false","nil","true"],Ws=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ys=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Mt=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ct=X(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Lt=X(Ct,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),wn=F(Ct,Lt,"*"),Dt=X(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Qe=X(Dt,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),oe=F(Dt,Qe,"*"),Ze=F(/[A-Z]/,Qe,"*"),Zs=["attached","autoclosure",F(/convention\(/,X("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",F(/objc\(/,oe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Qs=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function Pt(e){let n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,t],s={match:[/\./,X(...qs,...Rt)],className:{2:"keyword"}},o={match:F(/\./,X(...yn)),relevance:0},a=yn.filter(B=>typeof B=="string").concat(["_|0"]),c=yn.filter(B=>typeof B!="string").concat(Gs).map(Sn),u={variants:[{className:"keyword",match:X(...c,...Rt)}]},d={$pattern:X(/\b\w+/,/#\w+/),keyword:a.concat(Ys),literal:xt},p=[s,o,u],m={match:F(/\./,X(...Mt)),relevance:0},b={className:"built_in",match:F(/\b/,X(...Mt),/(?=\()/)},h=[m,b],f={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:wn},{match:`\\.(\\.|${Lt})+`}]},S=[f,_],A="([0-9]_*)+",k="([0-9a-fA-F]_*)+",P={className:"number",relevance:0,variants:[{match:`\\b(${A})(\\.(${A}))?([eE][+-]?(${A}))?\\b`},{match:`\\b0x(${k})(\\.(${k}))?([pP][+-]?(${A}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(B="")=>({className:"subst",variants:[{match:F(/\\/,B,/[0\\tnr"']/)},{match:F(/\\/,B,/u\{[0-9a-fA-F]{1,8}\}/)}]}),C=(B="")=>({className:"subst",match:F(/\\/,B,/[\t ]*(?:[\r\n]|\r\n)/)}),x=(B="")=>({className:"subst",label:"interpol",begin:F(/\\/,B,/\(/),end:/\)/}),Y=(B="")=>({begin:F(B,/"""/),end:F(/"""/,B),contains:[O(B),C(B),x(B)]}),L=(B="")=>({begin:F(B,/"/),end:F(/"/,B),contains:[O(B),x(B)]}),z={className:"string",variants:[Y(),Y("#"),Y("##"),Y("###"),L(),L("#"),L("##"),L("###")]},J=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],ie={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:J},ee=B=>{let le=F(B,/\//),T=F(/\//,B);return{begin:le,end:T,contains:[...J,{scope:"comment",begin:`#(?!.*${T})`,end:/$/}]}},se={scope:"regexp",variants:[ee("###"),ee("##"),ee("#"),ie]},G={match:F(/`/,oe,/`/)},W={className:"variable",match:/\$\d+/},g={className:"variable",match:`\\$${Qe}+`},w=[G,W,g],y={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:Qs,contains:[...S,P,z]}]}},I={scope:"keyword",match:F(/@/,X(...Zs),Re(X(/\(/,/\s+/)))},M={scope:"meta",match:F(/@/,oe)},U=[y,I,M],K={match:Re(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:F(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Qe,"+")},{className:"type",match:Ze,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:F(/\s+&\s+/,Re(Ze)),relevance:0}]},ne={begin:/</,end:/>/,keywords:d,contains:[...r,...p,...U,f,K]};K.contains.push(ne);let V={match:F(oe,/\s*:/),keywords:"_|0",relevance:0},j={begin:/\(/,end:/\)/,relevance:0,keywords:d,contains:["self",V,...r,se,...p,...h,...S,P,z,...w,...U,K]},Ee={begin:/</,end:/>/,keywords:"repeat each",contains:[...r,K]},Pe={begin:X(Re(F(oe,/\s*:/)),Re(F(oe,/\s+/,oe,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:oe}]},Te={begin:/\(/,end:/\)/,keywords:d,contains:[Pe,...r,...p,...S,P,z,...U,K,j],endsParent:!0,illegal:/["']/},rn={match:[/(func|macro)/,/\s+/,X(G.match,oe,wn)],className:{1:"keyword",3:"title.function"},contains:[Ee,Te,n],illegal:[/\[/,/%/]},sn={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ee,Te,n],illegal:/\[|%/},on={match:[/operator/,/\s+/,wn],className:{1:"keyword",3:"title"}},an={begin:[/precedencegroup/,/\s+/,Ze],className:{1:"keyword",3:"title"},contains:[K],keywords:[...Ws,...xt],end:/}/},_e={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Be={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},te={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,oe,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:d,contains:[Ee,...p,{begin:/:/,end:/\{/,keywords:d,contains:[{scope:"title.class.inherited",match:Ze},...p],relevance:0}]};for(let B of z.variants){let le=B.contains.find(Fe=>Fe.label==="interpol");le.keywords=d;let T=[...p,...h,...S,P,z,...w];le.contains=[...T,{begin:/\(/,end:/\)/,contains:["self",...T]}]}return{name:"Swift",keywords:d,contains:[...r,rn,sn,_e,Be,te,on,an,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},se,...p,...h,...S,P,z,...w,...U,K,j]}}var Ve="[A-Za-z$_][0-9A-Za-z$_]*",Bt=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Ft=["true","false","null","undefined","NaN","Infinity"],Ut=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],$t=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ht=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],zt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Kt=[].concat(Ht,Ut,$t);function Vs(e){let n=e.regex,t=(y,{after:I})=>{let M="</"+y[0].slice(1);return y.input.indexOf(M,I)!==-1},r=Ve,s={begin:"<>",end:"</>"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(y,I)=>{let M=y[0].length+y.index,U=y.input[M];if(U==="<"||U===","){I.ignoreMatch();return}U===">"&&(t(y,{after:M})||I.ignoreMatch());let K,ne=y.input.substring(M);if(K=ne.match(/^\s*=/)){I.ignoreMatch();return}if((K=ne.match(/^\s+extends\s+/))&&K.index===0){I.ignoreMatch();return}}},c={$pattern:Ve,keyword:Bt,literal:Ft,built_in:Kt,"variable.language":zt},u="[0-9](_?[0-9])*",d=`\\.(${u})`,p="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${p})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${p})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},f={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},k={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,{match:/\$\d+/},m];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(P)});let O=[].concat(k,b.contains),C=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(O)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C},Y={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,n.concat(r,"(",n.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Ut,...$t]}},z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},J={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},ie={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ee(y){return n.concat("(?!",y.join("|"),")")}let se={match:n.concat(/\b/,ee([...Ht,"super","import"].map(y=>`${y}\\s*\\(`)),r,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},G={begin:n.concat(/\./,n.lookahead(n.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},W={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",w={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),z,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,k,{match:/\$\d+/},m,L,{scope:"attr",match:r+n.lookahead(":"),relevance:0},w,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[k,e.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:o},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},J,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},se,ie,Y,W,{match:/\$[(.]/}]}}function qt(e){let n=e.regex,t=Vs(e),r=Ve,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],o={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[t.exports.CLASS_REFERENCE]},c={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],d={$pattern:Ve,keyword:Bt.concat(u),literal:Ft,built_in:Kt.concat(s),"variable.language":zt},p={className:"meta",begin:"@"+r},m=(_,S,A)=>{let k=_.contains.findIndex(P=>P.label===S);if(k===-1)throw new Error("can not find mode to replace");_.contains.splice(k,1,A)};Object.assign(t.keywords,d),t.exports.PARAMS_CONTAINS.push(p);let b=t.contains.find(_=>_.scope==="attr"),h=Object.assign({},b,{match:n.concat(r,n.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,b,h]),t.contains=t.contains.concat([p,o,a,h]),m(t,"shebang",e.SHEBANG()),m(t,"use_strict",c);let f=t.contains.find(_=>_.label==="func.def");return f.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function Gt(e){let n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},o={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=e.inherit(o,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[s]},{begin:/'/,end:/'/,contains:[s]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[o,u,c,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[o,a,u,c]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[d],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[d],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:d}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Wt(e){let n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},o={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},a={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,s]},c=e.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),b={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},h={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},f={begin:/\{/,end:/\}/,contains:[h],illegal:"\\n",relevance:0},_={begin:"\\[",end:"\\]",contains:[h],illegal:"\\n",relevance:0},S=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},b,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},f,_,o,a],A=[...S];return A.pop(),A.push(c),h.contains=A,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}q.registerLanguage("bash",ot);q.registerLanguage("c",at);q.registerLanguage("cpp",ct);q.registerLanguage("css",lt);q.registerLanguage("dockerfile",ut);q.registerLanguage("go",dt);q.registerLanguage("ini",pt);q.registerLanguage("java",mt);q.registerLanguage("javascript",yt);q.registerLanguage("json",wt);q.registerLanguage("kotlin",St);q.registerLanguage("markdown",vt);q.registerLanguage("php",Nt);q.registerLanguage("python",Tt);q.registerLanguage("ruby",At);q.registerLanguage("rust",It);q.registerLanguage("sql",kt);q.registerLanguage("swift",Pt);q.registerLanguage("typescript",qt);q.registerLanguage("xml",Gt);q.registerLanguage("yaml",Wt);var Xs={bash:"bash",sh:"bash",zsh:"bash",c:"c",h:"c",cc:"cpp",cpp:"cpp",cxx:"cpp",hpp:"cpp",hxx:"cpp",css:"css",dockerfile:"dockerfile",go:"go",ini:"ini",toml:"ini",java:"java",cjs:"javascript",js:"javascript",jsx:"javascript",mjs:"javascript",json:"json",jsonc:"json",kt:"kotlin",kts:"kotlin",md:"markdown",markdown:"markdown",php:"php",py:"python",rb:"ruby",rs:"rust",sql:"sql",swift:"swift",cts:"typescript",mts:"typescript",ts:"typescript",tsx:"typescript",htm:"xml",html:"xml",svg:"xml",xml:"xml",yaml:"yaml",yml:"yaml"};function Yt(e,n){let t=n.split(".").pop()?.toLowerCase()??"",r=Xs[t]??(n.toLowerCase()==="dockerfile"?"dockerfile":null);return r?q.highlight(e,{language:r}).value:null}function Nn(e){i.current&&i.current.log.push(e)}function Js(e){if(e.kind!=="stream"||e.role!=="user"||!e.queueEntry)return!1;let n=e.queueEntry.status;return n==="queued"||n==="editing"}function Zt(){if(!i.current)return 0;let e=i.current.log;for(let n=0;n<e.length;n++)if(Js(e[n]))return n;return e.length}function Ne(e){i.current&&i.current.log.splice(Zt(),0,e)}function js(){i.current&&(i.current.inTurn=!0)}function ei(){if(!i.current)return;i.current.inTurn=!1;let e=i.current.idleListeners;i.current.idleListeners=[];for(let n of e)try{n()}catch{}}function vn(e,n){if(!i.current)return;let t=Ae(n);if(!t)return;let r=i.current.log,s=Zt(),o;for(let a=s-1;a>=0;a--){let c=r[a];if(c.kind!=="spinner"){o=c;break}}if(o&&o.kind==="stream"&&o.role===e&&!o.closed){o.text+=t;return}r.splice(s,0,{kind:"stream",role:e,text:t})}function xe(){if(i.current)for(let e=i.current.log.length-1;e>=0;e--){let n=i.current.log[e];if(n.kind==="stream"&&!n.closed){n.closed=!0;return}}}function Qt(e){if(!i.current)return!1;let n=Ae(e);if(!n)return!1;let t=i.current.recentOwnPrompts;for(let r=0;r<t.length;r++)if(t[r].text===n)return t.splice(r,1),!0;return!1}function Xe(e){if(!e)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(Xe).join("");if(typeof e=="object"){let n=e;if(n.text)return String(n.text);if(n.content)return Xe(n.content);if(n.diff)return String(n.diff);try{return JSON.stringify(e,null,2)}catch{return String(e)}}return""}function Me(){if(!i.current)return;let e=i.current;if(e.spinner){e.log.some(n=>n.kind==="spinner")||Ne({kind:"spinner",spinner:e.spinner});return}e.spinner={toolCallIds:[],expanded:!1},Ne({kind:"spinner",spinner:e.spinner})}function ni(e){return e?e.toLowerCase().replace(/[_\s-]/g,"")==="exitplanmode":!1}function ti(e){let n=e.rawInput;if(!n||typeof n!="object"||Array.isArray(n))return null;let t=n.plan;return typeof t!="string"||t.length===0?null:t}function ri(e){if(!i.current)return null;let n=i.current.log;for(let t=0;t<n.length;t++){let r=n[t];if(r.kind==="exit-plan-mode"&&r.toolCallId===e)return{idx:t,item:r}}return null}function Vt(e){if(!i.current)return!1;let n=String(e.toolCallId??"");if(!n)return!1;let t=e.name??e.title,r=ri(n);if(!ni(t)&&!r)return!1;let s=ti(e),o=typeof e.status=="string"?e.status:void 0;if(r)return s!==null&&(r.item.plan=s),o!==void 0&&(r.item.status=o),!0;if(s===null)return!1;xe();let a={kind:"exit-plan-mode",toolCallId:n,plan:s};return o!==void 0&&(a.status=o),Ne(a),!0}function si(e){if(!i.current)return;if(xe(),Vt(e)){je(String(e.toolCallId),typeof e.status=="string"?e.status:void 0);return}let n={toolCallId:String(e.toolCallId),title:String(e.title??e.kind??"tool"),kind:String(e.kind??""),status:String(e.status??"in_progress"),content:Xe(e.content)};i.current.toolCalls.set(n.toolCallId,n),Me(),i.current.spinner.toolCallIds.push(n.toolCallId),je(n.toolCallId,n.status)}function ii(e){if(!i.current)return;if(Vt(e)){typeof e.status=="string"&&je(String(e.toolCallId),e.status);return}let n=i.current.toolCalls.get(String(e.toolCallId));n&&(typeof e.status=="string"&&(n.status=e.status,je(n.toolCallId,e.status)),typeof e.title=="string"&&(n.title=e.title),e.content!==void 0&&(n.content=(n.content||"")+Xe(e.content)))}function Tn(){if(i.current){i.current.spinner=null,i.current.log=i.current.log.filter(e=>e.kind!=="spinner"),xe();for(let e of i.current.promptQueue)e.status==="processing"&&(e.status="done");i.current.currentPlanEntry=null,i.current.currentHeadMessageId=void 0,ei()}}function oi(e){if(!i.current)return;let t=(Array.isArray(e.prompt)?e.prompt:[]).map(s=>Ae(s)).join("");if(!t)return;let r=typeof e.messageId=="string"?e.messageId:void 0;r&&i.current.queueByMessageId.has(r)||Qt({text:t})||(xe(),Ne({kind:"stream",role:"user",text:t,closed:!0}))}function Xt(e){if(i.current)for(let n of e){if(!n||typeof n!="object")continue;let t=n,r=typeof t.messageId=="string"?t.messageId:"";if(!r||i.current.queueByMessageId.has(r))continue;let s=Array.isArray(t.prompt)?t.prompt:[],o="";for(let u of s)if(u&&typeof u=="object"){let d=u;d.type==="text"&&typeof d.text=="string"&&(o+=d.text)}if(!o)continue;let a=typeof t.position=="number"?t.position:0,c={id:"snap_"+Math.random().toString(36).slice(2,10),text:o,status:a===0?"processing":"queued",aheadAtEnqueue:Math.max(0,a),messageId:r};i.current.queueByMessageId.set(r,c),a===0&&(i.current.currentHeadMessageId=r),i.current.log.push({kind:"stream",role:"user",text:o,closed:!0,queueEntry:c})}}function ai(e){if(!i.current)return;let n=typeof e.messageId=="string"?e.messageId:"";if(!n)return;let r=(e._meta??{})["hydra-acp"]??{},s=typeof r.amending=="string"?r.amending:void 0,o=e.originator??{},a=typeof o.clientId=="string"?o.clientId:"";if(!!i.current.ownClientId&&a===i.current.ownClientId){let f=i.current.promptQueue.find(S=>S.messageId===void 0&&S.status!=="cancelled");if(!f)return;f.messageId=n,i.current.queueByMessageId.set(n,f),s!==void 0&&(f.amendsMessageId=s,Je(s,n));let _=typeof e.position=="number"?e.position:1;f.aheadAtEnqueue=Math.max(0,_),_===0?f.status="processing":f.status==="pending"&&(f.status="queued");return}let u=Array.isArray(e.prompt)?e.prompt:[],d="";for(let f of u)if(f&&typeof f=="object"){let _=f;_.type==="text"&&typeof _.text=="string"&&(d+=_.text)}if(!d)return;let p=typeof e.position=="number"?e.position:0,m=typeof e.queueDepth=="number"?e.queueDepth:1,b={id:"peer_"+Math.random().toString(36).slice(2,10),text:d,status:p===0?"processing":"queued",aheadAtEnqueue:Math.max(0,p),messageId:n};s!==void 0&&(b.amendsMessageId=s,Je(s,n)),i.current.queueByMessageId.set(n,b),xe();let h={kind:"stream",role:"user",text:d,closed:!0,queueEntry:b};p===0?Ne(h):i.current.log.push(h)}function ci(e){if(!i.current)return;let n=typeof e.messageId=="string"?e.messageId:"";if(!n)return;let t=i.current.queueByMessageId.get(n);if(!t)return;let r=Array.isArray(e.prompt)?e.prompt:[],s="";for(let o of r)if(o&&typeof o=="object"){let a=o;a.type==="text"&&typeof a.text=="string"&&(s+=a.text)}if(s){t.text=s;for(let o of i.current.log)if(o.kind==="stream"&&o.role==="user"&&o.queueEntry===t){o.text=s;break}}}function li(e){if(!i.current)return;let n=typeof e.messageId=="string"?e.messageId:"";if(!n)return;let t=typeof e.reason=="string"?e.reason:"";t==="started"&&(i.current.currentHeadMessageId=n);let r=i.current.queueByMessageId.get(n);r&&(t==="started"?r.status="processing":(t==="cancelled"||t==="abandoned")&&(r.amendedByMessageId!==void 0?r.status="amended":r.status="cancelled",i.current.queueByMessageId.delete(n)))}function ui(e){if(!i.current)return;let n=typeof e.cancelledMessageId=="string"?e.cancelledMessageId:"",t=typeof e.newMessageId=="string"?e.newMessageId:"";if(!n||!t)return;Je(n,t);let r=i.current.queueByMessageId.get(t);r&&r.amendsMessageId===void 0&&(r.amendsMessageId=n)}function Je(e,n){if(!i.current)return;let t=i.current.queueByMessageId.get(e)??i.current.promptQueue.find(r=>r.messageId===e);t&&(t.amendedByMessageId=n,t.status==="cancelled"&&(t.status="amended"))}function di(e){if(!i.current)return;let n=e.entries??e.plan??null;if(i.current.plan=n,i.current.currentPlanEntry){i.current.currentPlanEntry.entries=n;return}let t={kind:"plan",entries:n};Ne(t),i.current.currentPlanEntry=t}function pi(e){if(!i.current)return;let n=typeof e?.toolCallId=="string"?e.toolCallId:void 0;n&&Jt(n)}function Jt(e){i.current&&(i.current.pendingPermissions.delete(e),i.current.log=i.current.log.filter(n=>!(n.kind==="perm"&&n.toolCallId===e)))}function je(e,n){!i.current||!e||!n||n==="pending"||i.current.pendingPermissions.has(e)&&Jt(e)}function jt(e){if(e.method==="hydra-acp/prompt_queue/added"){ai(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/updated"){ci(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/removed"){li(e.params??{});return}if(e.method==="hydra-acp/prompt/amended"){ui(e.params??{});return}if(e.method!=="session/update")return;let n=e.params?.update??null;if(!n||typeof n!="object")return;let t=String(n.sessionUpdate??"");if(t==="permission_resolved"){pi(n);return}switch(t){case"prompt_received":case"user_message_chunk":case"agent_message_chunk":case"agent_thought_chunk":case"tool_call":case"tool_call_update":case"plan":js();break;default:break}switch(t){case"user_message_chunk":{if(((n._meta??{})["hydra-acp"]??{}).compatFor==="prompt_received")break;Qt(n.content)||vn("user",n.content);break}case"agent_message_chunk":vn("agent",n.content);break;case"agent_thought_chunk":vn("thought",n.content);break;case"tool_call":si(n);break;case"tool_call_update":ii(n);break;case"current_mode_update":i.current&&(i.current.mode=n.modeId??n.currentModeId??null,Array.isArray(n.availableModes)&&(i.current.modes=n.availableModes),N());break;case"available_modes_update":i.current&&Array.isArray(n.availableModes)&&(i.current.modes=n.availableModes,N());break;case"current_model_update":i.current&&(i.current.model=n.modelId??n.currentModelId??null,Array.isArray(n.availableModels)&&(i.current.models=n.availableModels),N());break;case"usage_update":if(i.current){let r=n.used??n.contextUsed,s=n.size??n.contextSize;typeof r=="number"&&(i.current.contextUsed=r),typeof s=="number"&&(i.current.contextSize=s),n.cost&&(i.current.cost=n.cost)}break;case"plan":di(n);break;case"prompt_received":oi(n);break;case"stop":case"turn_complete":{let o=((n._meta??{})["hydra-acp"]??{}).amended;if(o){let a=typeof o.cancelledMessageId=="string"?o.cancelledMessageId:"",c=typeof o.newMessageId=="string"?o.newMessageId:"";a&&c&&Je(a,c)}Tn();break}case"session_info_update":i.current&&typeof n.title=="string"&&(i.current.title=n.title);break;default:break}i.current?.inTurn&&Me()}function er(e){if(i.current){if(e.method==="session/request_permission"){let n=e.params??{},t=n.toolCall??{},r=typeof t.toolCallId=="string"?t.toolCallId:"";if(!r){i.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32602,message:"missing toolCall.toolCallId"}}));return}i.current.pendingPermissions.set(r,{requestId:e.id,toolCallId:r,toolCall:t,options:n.options??[]}),Nn({kind:"perm",toolCallId:r});return}i.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32601,message:`method not handled: ${String(e.method)}`}}))}}function Oe(){let e=i.current;if(!e)return;let n=e.composerValue.trim();if(!n)return;if(!e.ws||e.ws.readyState!==WebSocket.OPEN){e.log.push({kind:"error",text:"Not connected to session \u2014 prompt not sent."}),e.composerValue="",N();return}let t=e.promptQueue.filter(u=>u.status==="queued"||u.status==="pending"||u.status==="processing").length,r=e.inTurn&&!e.promptQueue.some(u=>u.status==="processing"),s=t+(r?1:0),o={id:"p_"+Math.random().toString(36).slice(2,10),text:n,status:s>0?"queued":"pending",aheadAtEnqueue:s};e.promptQueue.push(o),e.log.push({kind:"stream",role:"user",text:n,closed:!0,queueEntry:o}),e.recentOwnPrompts.push({text:n,at:Date.now()});let a=Date.now()-6e4;e.recentOwnPrompts=e.recentOwnPrompts.filter(u=>u.at>=a).slice(-16);let c=me("session/prompt",{sessionId:e.sessionId,prompt:[{type:"text",text:n}]});c!==void 0&&e.ownPromptIds.add(String(c)),Me(),rr(e,n),e.composerValue="",N()}var nr=100;function rr(e,n){e.history[0]!==n&&(e.history.unshift(n),e.history.length>nr&&(e.history.length=nr)),e.historyIndex=null,e.historyDraft=null}function An(e){let n=i.current;if(n){if(e.messageId!==void 0){me("hydra-acp/prompt/cancel",{sessionId:n.sessionId,messageId:e.messageId});return}e.status="cancelled",N()}}function sr(e,n){let t=i.current;if(!t)return;let r=n.trim();if(r){if(e.messageId===void 0){e.text=r,N();return}me("hydra-acp/prompt/update",{sessionId:t.sessionId,messageId:e.messageId,prompt:[{type:"text",text:r}]})}}function ir(){let e=i.current;if(!e)return;let n=e.composerValue.trim();if(!n)return;if(!e.ws||e.ws.readyState!==WebSocket.OPEN){e.log.push({kind:"error",text:"Not connected to session \u2014 prompt not sent."}),e.composerValue="",N();return}if(!e.daemonSupportsAmend||e.currentHeadMessageId===void 0){Oe();return}let t=e.currentHeadMessageId,r=e.composerValue;e.composerValue="",rr(e,n);let s={id:"p_"+Math.random().toString(36).slice(2,10),text:n,status:"pending",aheadAtEnqueue:0,amendsMessageId:t};e.promptQueue.push(s),e.log.push({kind:"stream",role:"user",text:n,closed:!0,queueEntry:s}),e.recentOwnPrompts.push({text:n,at:Date.now()});let o=Date.now()-6e4;e.recentOwnPrompts=e.recentOwnPrompts.filter(c=>c.at>=o).slice(-16);let a=me("hydra-acp/prompt/amend",{sessionId:e.sessionId,targetMessageId:t,prompt:[{type:"text",text:n}]});a!==void 0&&e.responseHandlers.set(String(a),c=>{gi(s,r,c)}),Me(),N()}function gi(e,n,t){let r=i.current;if(!r)return;if(t.error){tr(r,e,n),H({banner:{kind:"bad",text:`amend failed: ${fi(t.error)}`}});return}let s=t.result??{};if(s.amended&&s.reason==="ok")return;tr(r,e,n);let o="amend rejected";s.reason==="target_completed"?o="previous response finished \u2014 press Send to send as a new turn":s.reason==="target_cancelled"?o="amend skipped \u2014 previous turn was cancelled":s.reason==="target_not_found"&&(o="amend skipped \u2014 no matching prompt"),H({banner:{kind:"warn",text:o}})}function tr(e,n,t){let r=e.promptQueue.indexOf(n);r>=0&&e.promptQueue.splice(r,1),e.log=e.log.filter(s=>!(s.kind==="stream"&&s.role==="user"&&s.queueEntry===n)),e.composerValue=t,N()}function fi(e){if(e&&typeof e=="object"&&"message"in e){let n=e.message;if(typeof n=="string")return n}return"unknown error"}function or(){let e=i.current;!e||!e.inTurn||kn("session/cancel",{sessionId:e.sessionId})}function ar(){let e=i.current;if(!e)return;let n=!1;for(let t of e.promptQueue)(t.status==="queued"||t.status==="pending")&&(An(t),n=!0);e.inTurn&&kn("session/cancel",{sessionId:e.sessionId}),n&&N()}function In(e){i.current&&me("session/set_mode",{sessionId:i.current.sessionId,modeId:e})}function cr(e){i.current&&me("session/set_model",{sessionId:i.current.sessionId,modelId:e})}function en(e){for(let n of e.promptQueue)n.status!=="done"&&n.status!=="cancelled"&&(n.status="cancelled",n.messageId!==void 0&&e.queueByMessageId.delete(n.messageId))}function me(e,n){let t=i.current;if(!t||!t.ws||t.ws.readyState!==WebSocket.OPEN)return;let r=t.nextId=t.nextId??1;return t.nextId=r+1,t.ws.send(JSON.stringify({jsonrpc:"2.0",id:r,method:e,params:n})),r}function kn(e,n){let t=i.current;!t||!t.ws||t.ws.readyState!==WebSocket.OPEN||t.ws.send(JSON.stringify({jsonrpc:"2.0",method:e,params:n}))}function mi(e,n){let t=i.current;!t||!t.ws||t.ws.readyState!==WebSocket.OPEN||t.ws.send(JSON.stringify({jsonrpc:"2.0",id:e,result:n}))}function lr(e){if(i.current){if(e.method==="bridge/ready"){i.current.ready=!0,i.banner=null,i.current.reconnectAttempt=0;let n=e.params??{};typeof n.clientId=="string"&&(i.current.ownClientId=n.clientId);let r=n._meta?.["hydra-acp"],s=r?.queue;Array.isArray(s)&&Xt(s),r?.prompt?.amending===!0&&(i.current.daemonSupportsAmend=!0);let a=i.current.readyListeners;i.current.readyListeners=[];for(let c of a)try{c()}catch{}N();return}if(e.method==="bridge/error"){Nn({kind:"error",text:`Bridge error: ${e.params?.message??"?"}`}),N();return}if(e.method==="hydra-acp/session/closed"){i.current&&(i.current.ready=!1,en(i.current)),i.banner={kind:"warn",text:"Session is now cold \u2014 opening a new prompt will resurrect it."},N();return}if(e.method&&"id"in e){er(e),N();return}if(e.method){jt(e),N();return}if("id"in e&&e.id!==void 0&&i.current.ownPromptIds.has(String(e.id))){i.current.ownPromptIds.delete(String(e.id)),Tn(),N();return}if("id"in e&&e.id!==void 0){let n=i.current.responseHandlers.get(String(e.id));n&&(i.current.responseHandlers.delete(String(e.id)),n({result:e.result,error:e.error}))}}}function Rn(e,n){if(!i.current)return;let t=i.current.pendingPermissions.get(e);t&&(i.current.pendingPermissions.delete(e),i.current.log=i.current.log.filter(r=>!(r.kind==="perm"&&r.toolCallId===e)),mi(t.requestId,{outcome:n==="__cancel__"?{outcome:"cancelled"}:{outcome:"selected",optionId:n}}),N())}var ur=[1e3,2e3,4e3,8e3,16e3,3e4],bi=5;function Ei(e,n){let t=encodeURIComponent(e);return n?`#/session/${t}?load=true`:`#/session/${t}`}var xn=!1;function dr(e){if(window.location.hash!==e){xn=!0;try{history.pushState(null,"",e||window.location.pathname+window.location.search)}finally{queueMicrotask(()=>{xn=!1})}}}function Mn(){if(xn)return;let n=window.location.hash.match(/^#\/session\/([^?]+)(?:\?(.*))?$/);if(n){let t=decodeURIComponent(n[1]),s=new URLSearchParams(n[2]??"").get("load")==="true";if(i.view==="chat"&&i.current?.sessionId===t)return;nn(t,s);return}i.view!=="list"&&On()}function nn(e,n){dr(Ei(e,n)),gr();let t=i.sessions.find(s=>s.sessionId===e),r={sessionId:e,title:t?.title??"",cwd:t?.cwd||"",agentId:t?.agentId||"",ws:null,ready:!1,log:[],toolCalls:new Map,pendingPermissions:new Map,pendingRequestById:new Map,responseHandlers:new Map,spinner:null,plan:null,mode:null,model:null,modes:[],models:[],contextUsed:null,contextSize:null,cost:null,fileOverlay:null,composerValue:"",busy:!1,recentOwnPrompts:[],history:[],historyIndex:null,historyDraft:null,_lastMetaFp:t?`${t.title}|${t.cwd}|${t.agentId}`:"",promptQueue:[],queueByMessageId:new Map,ownPromptIds:new Set,inTurn:!1,idleListeners:[],readyListeners:[],currentPlanEntry:null,daemonSupportsAmend:!1,loadOnConnect:n,reconnectAttempt:0};i.current=r,H({view:"chat"}),pr(r)}function pr(e){let n=new URL("/ws",location.href);n.protocol=location.protocol==="https:"?"wss:":"ws:",n.searchParams.set("session",e.sessionId),e.loadOnConnect&&n.searchParams.set("load","true");let t=new WebSocket(n.toString());e.ws=t,t.addEventListener("open",()=>{}),t.addEventListener("message",r=>{let s;try{s=JSON.parse(String(r.data))}catch{return}lr(s)}),t.addEventListener("close",()=>{!i.current||i.current.ws!==t||_i(i.current)}),t.addEventListener("error",()=>{})}function _i(e){e.ready=!1,en(e);let n=e.reconnectAttempt??0,t=ur[Math.min(n,ur.length-1)],r=n>=bi;H({banner:r?{kind:"bad",text:"Still disconnected \u2014 retrying\u2026"}:{kind:"warn",text:"Reconnecting\u2026"}}),e.reconnectTimer=setTimeout(()=>{!i.current||i.current!==e||(e.reconnectTimer=void 0,e.reconnectAttempt=n+1,hi(e),N(),pr(e))},t)}function hi(e){e.ws=null,e.ready=!1,e.log=[],e.toolCalls=new Map,e.pendingPermissions=new Map,e.pendingRequestById=new Map,e.responseHandlers=new Map,e.spinner=null,e.plan=null,e.mode=null,e.model=null,e.modes=[],e.models=[],e.contextUsed=null,e.contextSize=null,e.cost=null,e.busy=!1,e.recentOwnPrompts=[],e.promptQueue=[],e.queueByMessageId=new Map,e.ownPromptIds=new Set,e.inTurn=!1,e.idleListeners=[],e.readyListeners=[],e.currentPlanEntry=null,e.daemonSupportsAmend=!1,e.ownClientId=void 0,e.currentHeadMessageId=void 0,e.nextId=void 0}function On(){dr(""),gr(),H({view:"list",current:null})}function gr(){if(i.current&&(i.current.reconnectTimer&&(clearTimeout(i.current.reconnectTimer),i.current.reconnectTimer=void 0),i.current.ws)){try{i.current.ws.close()}catch{}i.current.ws=null}}var tn=new WeakSet;function hr(e){return"untitled"}function de(e){return e.replace(/^hydra_session_/,"")}function yi(e){if(!e)return;let n=e.lastIndexOf("/");return n===-1?e:e.slice(n+1)}function yr(e,n){let t=e||"?",r=yi(n);return r?`${t}\u2022${r}`:t}function wi(e,n=Date.now()){if(!e)return"?";let t=Date.parse(e);if(Number.isNaN(t))return"?";let r=Math.max(0,n-t),s=Math.floor(r/1e3);if(s<60)return"<1m";let o=Math.floor(s/60);if(o<60)return`${o}m`;let a=Math.floor(o/60);if(a<24)return`${a}h`;let c=Math.floor(a/24);if(c<14)return`${c}d`;let u=Math.floor(c/7);if(u<9)return`${u}w`;let d=Math.floor(c/30);return d<12?`${d}mo`:`${Math.floor(c/365)}y`}function fr(e){return Number.isFinite(e)?e<1e3?String(e):e<1e6?(e/1e3).toFixed(e<1e4?1:0).replace(/\.0$/,"")+"k":(e/1e6).toFixed(2).replace(/\.?0+$/,"")+"M":"?"}function mr(e){let n=null,t="USD";if(typeof e=="number")n=e;else if(e&&typeof e=="object"){let s=e;if(typeof s.amount=="number")n=s.amount;else if(typeof s.total=="number")n=s.total;else if(s.total&&typeof s.total=="object"){let o=s.total;typeof o.amount=="number"&&(n=o.amount),typeof o.currency=="string"&&(t=o.currency)}typeof s.currency=="string"&&(t=s.currency)}if(n===null)return null;let r=n<.01?4:n<1?3:2;return t==="USD"?`$${n.toFixed(r)}`:`${n.toFixed(r)} ${t}`}function wr(e,n){n.banner&&e.appendChild(l("div",{class:"banner "+n.banner.kind},n.banner.text)),n.view==="list"?(e.appendChild(Si()),e.appendChild(Ni())):n.view==="chat"&&n.current&&(e.appendChild(Pi(n.current)),n.current.fileOverlay&&e.appendChild(Ji(n.current))),n.modal&&(n.modal.kind==="session"?e.appendChild(Mi(n.modal)):n.modal.kind==="modes"&&n.current?e.appendChild(Er("Mode",n.current.modes,n.current.mode,t=>In(t.id))):n.modal.kind==="models"&&n.current&&e.appendChild(Er("Model",n.current.models,n.current.model,t=>cr(t.id))))}function Si(){return l("div",{class:"topbar"},l("span",{class:"title"},"hydra-acp-browser"),l("span",{class:"pill clickable",onclick:()=>H({groupBy:i.groupBy==="project"?"recent":"project"})},`group: ${i.groupBy}`),l("span",{class:"pill clickable",title:"Click to toggle showing disk-only sessions",onclick:()=>{H({showCold:!i.showCold})}},i.showCold?"all":"warm"),vi(),l("span",{class:"spacer"}),l("button",{onclick:ki,title:"Import a *.hydra bundle from disk"},"Import"),l("button",{onclick:xi},"New Session"))}function vi(){let e=new Set;for(let s of i.sessions)s.importedFromMachine&&!s.upstreamSessionId&&e.add(s.importedFromMachine);let n=[...e].sort(),t=l("select",{class:"host-select",title:"Filter sessions by origin host",onchange:s=>{let o=s.target.value;H({hostFilter:o})}}),r=(s,o)=>{let a=document.createElement("option");a.value=s,a.textContent=o,i.hostFilter===s&&(a.selected=!0),t.appendChild(a)};r("__local","host: local");for(let s of n)r(s,`host: ${s}`);return r("__all","host: all"),i.hostFilter!=="__local"&&i.hostFilter!=="__all"&&!n.includes(i.hostFilter)&&(t.value=i.hostFilter),t}function Ni(){let e=i.showCold?i.sessions:i.sessions.filter(s=>s.status!=="cold");i.hostFilter==="__local"?e=e.filter(s=>!s.importedFromMachine||!!s.upstreamSessionId):i.hostFilter!=="__all"&&(e=e.filter(s=>s.importedFromMachine===i.hostFilter&&!s.upstreamSessionId));let n=i.showCold?0:i.sessions.filter(s=>s.status==="cold").length,t=Ti(e,i.groupBy),r=l("div",{class:"list"});if(e.length===0){let s;i.sessions.length===0?s="No sessions. Use + to create one, or run `hydra-acp launch <agent>` from your editor.":i.hostFilter==="__local"?s="No local sessions. Switch the host filter to see imported sessions.":i.hostFilter!=="__all"?s=`No sessions from ${i.hostFilter}. Try a different host.`:s=`No warm sessions. ${n} cold session${n===1?"":"s"} hidden \u2014 click "warm" to switch to "all".`,r.appendChild(l("div",{class:"empty"},s))}for(let s of t){let o=l("div",{class:"group"});s.label&&o.appendChild(l("h2",null,s.label));for(let a of s.sessions)o.appendChild(Ai(a,s.label===null));r.appendChild(o)}return r}function br(e,n){let t=(n.status==="warm"?1:0)-(e.status==="warm"?1:0);return t!==0?t:String(n.updatedAt||"").localeCompare(String(e.updatedAt||""))}function Ti(e,n){if(n==="recent")return[{label:null,sessions:e.slice().sort(br)}];let t=new Map;for(let s of e){let o=s.cwd||"(unknown)";t.has(o)||t.set(o,[]),t.get(o).push(s)}let r=[];for(let[s,o]of[...t.entries()].sort((a,c)=>a[0].localeCompare(c[0])))o.sort(br),r.push({label:s,sessions:o});return r}function Ai(e,n){let t=e.title||hr(e.sessionId),r=[de(e.sessionId),yr(e.agentId,e.currentModel),`age ${wi(e.updatedAt)}`];n&&r.push(e.cwd||"?");let s=r.join(" \xB7 ");return l("div",{class:"card",onclick:o=>{o.target.closest("button")||nn(e.sessionId,e.status==="cold")}},l("div",{class:"meta"},l("div",{class:"row1"},t),l("div",{class:"row2"},s)),l("div",{class:"badges"},l("span",{class:`badge ${e.status==="cold"?"cold":"warm"}`,title:e.status==="cold"?"Disk-only \u2014 opening will resurrect the session":"Live in-memory session"},e.status==="cold"?"cold":"warm"),l("span",{class:"badge"},`${e.attachedClients??0} attached`),...e.importedFromMachine&&!e.upstreamSessionId?[l("span",{class:"badge imported",title:`Passive mirror imported from ${e.importedFromMachine} \u2014 attach to start working on it here.`},`\u2190 ${e.importedFromMachine}`)]:[]),l("div",{class:"actions"},l("button",{class:"ghost",title:"Export session as *.hydra bundle",onclick:o=>{o.stopPropagation(),Sr(e.sessionId)}},"\u2193"),l("button",{class:"danger",onclick:o=>{o.stopPropagation(),Ii(e)}},"\xD7")))}async function Ii(e){if(confirm(`Kill session ${e.title?`"${e.title}" (${de(e.sessionId)})`:de(e.sessionId)}?`))try{await ce("/api/kill",{method:"POST",body:JSON.stringify({sessionId:e.sessionId})}),be()}catch(n){H({banner:{kind:"bad",text:"kill failed: "+n.message}})}}function Sr(e){let n=document.createElement("a");n.href=`/api/sessions/${encodeURIComponent(e)}/export`,n.download="",n.rel="noopener",document.body.appendChild(n),n.click(),n.remove()}function ki(){let e=document.createElement("input");e.type="file",e.accept=".hydra,application/json",e.style.display="none",e.onchange=()=>{let n=e.files&&e.files[0];document.body.removeChild(e),n&&Ri(n)},document.body.appendChild(e),e.click()}async function Ri(e){let n;try{let r=await e.text();n=JSON.parse(r)}catch(r){H({banner:{kind:"bad",text:"import: bundle is not valid JSON: "+r.message}});return}let t=await Nr(n);if(t.ok){let r=t.result;H({banner:{kind:"good",text:r.replaced?`Replaced ${de(r.sessionId)} from bundle`:`Imported as ${de(r.sessionId)}`}}),be();return}if(t.status===409&&t.existingSessionId){let r=t.existingSessionId;if(!confirm(`This session is already imported locally as ${de(r)}.
|
|
203
|
+
<script nonce="__CSP_NONCE__">"use strict";(()=>{var Os=Object.create;var Pn=Object.defineProperty;var Cs=Object.getOwnPropertyDescriptor;var Ls=Object.getOwnPropertyNames;var Ds=Object.getPrototypeOf,Ps=Object.prototype.hasOwnProperty;var Bs=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Fs=(e,n,t,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Ls(n))!Ps.call(e,r)&&r!==t&&Pn(e,r,{get:()=>n[r],enumerable:!(s=Cs(n,r))||s.enumerable});return e};var Us=(e,n,t)=>(t=e!=null?Os(Ds(e)):{},Fs(n||!e||!e.__esModule?Pn(t,"default",{value:e,enumerable:!0}):t,e));var rt=Bs((oo,st)=>{function Gn(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(n=>{let t=e[n],s=typeof t;(s==="object"||s==="function")&&!Object.isFrozen(t)&&Gn(t)}),e}var He=class{constructor(n){n.data===void 0&&(n.data={}),this.data=n.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Wn(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ue(e,...n){let t=Object.create(null);for(let s in e)t[s]=e[s];return n.forEach(function(s){for(let r in s)t[r]=s[r]}),t}var Hs="</span>",Un=e=>!!e.scope,zs=(e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let t=e.split(".");return[`${n}${t.shift()}`,...t.map((s,r)=>`${s}${"_".repeat(r+1)}`)].join(" ")}return`${n}${e}`},gn=class{constructor(n,t){this.buffer="",this.classPrefix=t.classPrefix,n.walk(this)}addText(n){this.buffer+=Wn(n)}openNode(n){if(!Un(n))return;let t=zs(n.scope,{prefix:this.classPrefix});this.span(t)}closeNode(n){Un(n)&&(this.buffer+=Hs)}value(){return this.buffer}span(n){this.buffer+=`<span class="${n}">`}},$n=(e={})=>{let n={children:[]};return Object.assign(n,e),n},fn=class e{constructor(){this.rootNode=$n(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(n){this.top.children.push(n)}openNode(n){let t=$n({scope:n});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(n){return this.constructor._walk(n,this.rootNode)}static _walk(n,t){return typeof t=="string"?n.addText(t):t.children&&(n.openNode(t),t.children.forEach(s=>this._walk(n,s)),n.closeNode(t)),n}static _collapse(n){typeof n!="string"&&n.children&&(n.children.every(t=>typeof t=="string")?n.children=[n.children.join("")]:n.children.forEach(t=>{e._collapse(t)}))}},mn=class extends fn{constructor(n){super(),this.options=n}addText(n){n!==""&&this.add(n)}startScope(n){this.openNode(n)}endScope(){this.closeNode()}__addSublanguage(n,t){let s=n.root;t&&(s.scope=`language:${t}`),this.add(s)}toHTML(){return new gn(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function Ie(e){return e?typeof e=="string"?e:e.source:null}function Yn(e){return fe("(?=",e,")")}function Ks(e){return fe("(?:",e,")*")}function qs(e){return fe("(?:",e,")?")}function fe(...e){return e.map(t=>Ie(t)).join("")}function Gs(e){let n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function En(...e){return"("+(Gs(e).capture?"":"?:")+e.map(s=>Ie(s)).join("|")+")"}function Zn(e){return new RegExp(e.toString()+"|").exec("").length-1}function Ws(e,n){let t=e&&e.exec(n);return t&&t.index===0}var Ys=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _n(e,{joinWith:n}){let t=0;return e.map(s=>{t+=1;let r=t,o=Ie(s),a="";for(;o.length>0;){let c=Ys.exec(o);if(!c){a+=o;break}a+=o.substring(0,c.index),o=o.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?a+="\\"+String(Number(c[1])+r):(a+=c[0],c[0]==="("&&t++)}return a}).map(s=>`(${s})`).join(n)}var Zs=/\b\B/,Qn="[a-zA-Z]\\w*",hn="[a-zA-Z_]\\w*",Vn="\\b\\d+(\\.\\d+)?",Xn="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Jn="\\b(0b[01]+)",Qs="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Vs=(e={})=>{let n=/^#![ ]*\//;return e.binary&&(e.begin=fe(n,/.*\b/,e.binary,/\b.*/)),ue({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(t,s)=>{t.index!==0&&s.ignoreMatch()}},e)},ke={begin:"\\\\[\\s\\S]",relevance:0},Xs={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ke]},Js={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ke]},js={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Ke=function(e,n,t={}){let s=ue({scope:"comment",begin:e,end:n,contains:[]},t);s.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let r=En("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return s.contains.push({begin:fe(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s},er=Ke("//","$"),nr=Ke("/\\*","\\*/"),tr=Ke("#","$"),sr={scope:"number",begin:Vn,relevance:0},rr={scope:"number",begin:Xn,relevance:0},ir={scope:"number",begin:Jn,relevance:0},or={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ke,{begin:/\[/,end:/\]/,relevance:0,contains:[ke]}]},ar={scope:"title",begin:Qn,relevance:0},cr={scope:"title",begin:hn,relevance:0},lr={begin:"\\.\\s*"+hn,relevance:0},ur=function(e){return Object.assign(e,{"on:begin":(n,t)=>{t.data._beginMatch=n[1]},"on:end":(n,t)=>{t.data._beginMatch!==n[1]&&t.ignoreMatch()}})},$e=Object.freeze({__proto__:null,APOS_STRING_MODE:Xs,BACKSLASH_ESCAPE:ke,BINARY_NUMBER_MODE:ir,BINARY_NUMBER_RE:Jn,COMMENT:Ke,C_BLOCK_COMMENT_MODE:nr,C_LINE_COMMENT_MODE:er,C_NUMBER_MODE:rr,C_NUMBER_RE:Xn,END_SAME_AS_BEGIN:ur,HASH_COMMENT_MODE:tr,IDENT_RE:Qn,MATCH_NOTHING_RE:Zs,METHOD_GUARD:lr,NUMBER_MODE:sr,NUMBER_RE:Vn,PHRASAL_WORDS_MODE:js,QUOTE_STRING_MODE:Js,REGEXP_MODE:or,RE_STARTERS_RE:Qs,SHEBANG:Vs,TITLE_MODE:ar,UNDERSCORE_IDENT_RE:hn,UNDERSCORE_TITLE_MODE:cr});function dr(e,n){e.input[e.index-1]==="."&&n.ignoreMatch()}function pr(e,n){e.className!==void 0&&(e.scope=e.className,delete e.className)}function gr(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=dr,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function fr(e,n){Array.isArray(e.illegal)&&(e.illegal=En(...e.illegal))}function mr(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function br(e,n){e.relevance===void 0&&(e.relevance=1)}var Er=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let t=Object.assign({},e);Object.keys(e).forEach(s=>{delete e[s]}),e.keywords=t.keywords,e.begin=fe(t.beforeMatch,Yn(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},_r=["of","and","for","in","not","or","if","then","parent","list","value"],hr="keyword";function jn(e,n,t=hr){let s=Object.create(null);return typeof e=="string"?r(t,e.split(" ")):Array.isArray(e)?r(t,e):Object.keys(e).forEach(function(o){Object.assign(s,jn(e[o],n,o))}),s;function r(o,a){n&&(a=a.map(c=>c.toLowerCase())),a.forEach(function(c){let u=c.split("|");s[u[0]]=[o,yr(u[0],u[1])]})}}function yr(e,n){return n?Number(n):wr(e)?0:1}function wr(e){return _r.includes(e.toLowerCase())}var Hn={},ge=e=>{console.error(e)},zn=(e,...n)=>{console.log(`WARN: ${e}`,...n)},ye=(e,n)=>{Hn[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),Hn[`${e}/${n}`]=!0)},ze=new Error;function et(e,n,{key:t}){let s=0,r=e[t],o={},a={};for(let c=1;c<=n.length;c++)a[c+s]=r[c],o[c+s]=!0,s+=Zn(n[c-1]);e[t]=a,e[t]._emit=o,e[t]._multi=!0}function Sr(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw ge("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ze;if(typeof e.beginScope!="object"||e.beginScope===null)throw ge("beginScope must be object"),ze;et(e,e.begin,{key:"beginScope"}),e.begin=_n(e.begin,{joinWith:""})}}function vr(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw ge("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ze;if(typeof e.endScope!="object"||e.endScope===null)throw ge("endScope must be object"),ze;et(e,e.end,{key:"endScope"}),e.end=_n(e.end,{joinWith:""})}}function Nr(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Tr(e){Nr(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Sr(e),vr(e)}function Ar(e){function n(a,c){return new RegExp(Ie(a),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(c?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,c]),this.matchAt+=Zn(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let c=this.regexes.map(u=>u[1]);this.matcherRe=n(_n(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;let u=this.matcherRe.exec(c);if(!u)return null;let d=u.findIndex((m,b)=>b>0&&m!==void 0),p=this.matchIndexes[d];return u.splice(0,d),Object.assign(u,p)}}class s{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];let u=new t;return this.rules.slice(c).forEach(([d,p])=>u.addRule(d,p)),u.compile(),this.multiRegexes[c]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,u){this.rules.push([c,u]),u.type==="begin"&&this.count++}exec(c){let u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let d=u.exec(c);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){let p=this.getMatcher(0);p.lastIndex=this.lastIndex+1,d=p.exec(c)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function r(a){let c=new s;return a.contains.forEach(u=>c.addRule(u.begin,{rule:u,type:"begin"})),a.terminatorEnd&&c.addRule(a.terminatorEnd,{type:"end"}),a.illegal&&c.addRule(a.illegal,{type:"illegal"}),c}function o(a,c){let u=a;if(a.isCompiled)return u;[pr,mr,Tr,Er].forEach(p=>p(a,c)),e.compilerExtensions.forEach(p=>p(a,c)),a.__beforeBegin=null,[gr,fr,br].forEach(p=>p(a,c)),a.isCompiled=!0;let d=null;return typeof a.keywords=="object"&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),d=a.keywords.$pattern,delete a.keywords.$pattern),d=d||/\w+/,a.keywords&&(a.keywords=jn(a.keywords,e.case_insensitive)),u.keywordPatternRe=n(d,!0),c&&(a.begin||(a.begin=/\B|\b/),u.beginRe=n(u.begin),!a.end&&!a.endsWithParent&&(a.end=/\B|\b/),a.end&&(u.endRe=n(u.end)),u.terminatorEnd=Ie(u.end)||"",a.endsWithParent&&c.terminatorEnd&&(u.terminatorEnd+=(a.end?"|":"")+c.terminatorEnd)),a.illegal&&(u.illegalRe=n(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map(function(p){return Ir(p==="self"?a:p)})),a.contains.forEach(function(p){o(p,u)}),a.starts&&o(a.starts,c),u.matcher=r(u),u}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=ue(e.classNameAliases||{}),o(e)}function nt(e){return e?e.endsWithParent||nt(e.starts):!1}function Ir(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(n){return ue(e,{variants:null},n)})),e.cachedVariants?e.cachedVariants:nt(e)?ue(e,{starts:e.starts?ue(e.starts):null}):Object.isFrozen(e)?ue(e):e}var kr="11.11.1",bn=class extends Error{constructor(n,t){super(n),this.name="HTMLInjectionError",this.html=t}},pn=Wn,Kn=ue,qn=Symbol("nomatch"),Rr=7,tt=function(e){let n=Object.create(null),t=Object.create(null),s=[],r=!0,o="Could not find the language '{}', did you forget to load/include a language module?",a={disableAutodetect:!0,name:"Plain text",contains:[]},c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:mn};function u(g){return c.noHighlightRe.test(g)}function d(g){let w=g.className+" ";w+=g.parentNode?g.parentNode.className:"";let y=c.languageDetectRe.exec(w);if(y){let I=L(y[1]);return I||(zn(o.replace("{}",y[1])),zn("Falling back to no-highlight mode for this block.",g)),I?y[1]:"no-highlight"}return w.split(/\s+/).find(I=>u(I)||L(I))}function p(g,w,y){let I="",M="";typeof w=="object"?(I=g,y=w.ignoreIllegals,M=w.language):(ye("10.7.0","highlight(lang, code, ...args) has been deprecated."),ye("10.7.0",`Please use highlight(code, options) instead.
|
|
204
|
+
https://github.com/highlightjs/highlight.js/issues/2277`),M=g,I=w),y===void 0&&(y=!0);let U={code:I,language:M};G("before:highlight",U);let K=U.result?U.result:m(U.language,U.code,y);return K.code=U.code,G("after:highlight",K),K}function m(g,w,y,I){let M=Object.create(null);function U(E,v){return E.keywords[v]}function K(){if(!T.keywords){Z.addText($);return}let E=0;T.keywordPatternRe.lastIndex=0;let v=T.keywordPatternRe.exec($),R="";for(;v;){R+=$.substring(E,v.index);let D=se.case_insensitive?v[0].toLowerCase():v[0],Q=U(T,D);if(Q){let[ae,xs]=Q;if(Z.addText(R),R="",M[D]=(M[D]||0)+1,M[D]<=Rr&&(Ue+=xs),ae.startsWith("_"))R+=v[0];else{let Ms=se.classNameAliases[ae]||ae;j(v[0],Ms)}}else R+=v[0];E=T.keywordPatternRe.lastIndex,v=T.keywordPatternRe.exec($)}R+=$.substring(E),Z.addText(R)}function te(){if($==="")return;let E=null;if(typeof T.subLanguage=="string"){if(!n[T.subLanguage]){Z.addText($);return}E=m(T.subLanguage,$,!0,Fe[T.subLanguage]),Fe[T.subLanguage]=E._top}else E=h($,T.subLanguage.length?T.subLanguage:null);T.relevance>0&&(Ue+=E.relevance),Z.__addSublanguage(E._emitter,E.language)}function V(){T.subLanguage!=null?te():K(),$=""}function j(E,v){E!==""&&(Z.startScope(v),Z.addText(E),Z.endScope())}function Ee(E,v){let R=1,D=v.length-1;for(;R<=D;){if(!E._emit[R]){R++;continue}let Q=se.classNameAliases[E[R]]||E[R],ae=v[R];Q?j(ae,Q):($=ae,K(),$=""),R++}}function Pe(E,v){return E.scope&&typeof E.scope=="string"&&Z.openNode(se.classNameAliases[E.scope]||E.scope),E.beginScope&&(E.beginScope._wrap?(j($,se.classNameAliases[E.beginScope._wrap]||E.beginScope._wrap),$=""):E.beginScope._multi&&(Ee(E.beginScope,v),$="")),T=Object.create(E,{parent:{value:T}}),T}function Te(E,v,R){let D=Ws(E.endRe,R);if(D){if(E["on:end"]){let Q=new He(E);E["on:end"](v,Q),Q.isMatchIgnored&&(D=!1)}if(D){for(;E.endsParent&&E.parent;)E=E.parent;return E}}if(E.endsWithParent)return Te(E.parent,v,R)}function sn(E){return T.matcher.regexIndex===0?($+=E[0],1):(ln=!0,0)}function rn(E){let v=E[0],R=E.rule,D=new He(R),Q=[R.__beforeBegin,R["on:begin"]];for(let ae of Q)if(ae&&(ae(E,D),D.isMatchIgnored))return sn(v);return R.skip?$+=v:(R.excludeBegin&&($+=v),V(),!R.returnBegin&&!R.excludeBegin&&($=v)),Pe(R,E),R.returnBegin?0:v.length}function on(E){let v=E[0],R=w.substring(E.index),D=Te(T,E,R);if(!D)return qn;let Q=T;T.endScope&&T.endScope._wrap?(V(),j(v,T.endScope._wrap)):T.endScope&&T.endScope._multi?(V(),Ee(T.endScope,E)):Q.skip?$+=v:(Q.returnEnd||Q.excludeEnd||($+=v),V(),Q.excludeEnd&&($=v));do T.scope&&Z.closeNode(),!T.skip&&!T.subLanguage&&(Ue+=T.relevance),T=T.parent;while(T!==D.parent);return D.starts&&Pe(D.starts,E),Q.returnEnd?0:v.length}function an(){let E=[];for(let v=T;v!==se;v=v.parent)v.scope&&E.unshift(v.scope);E.forEach(v=>Z.openNode(v))}let _e={};function Be(E,v){let R=v&&v[0];if($+=E,R==null)return V(),0;if(_e.type==="begin"&&v.type==="end"&&_e.index===v.index&&R===""){if($+=w.slice(v.index,v.index+1),!r){let D=new Error(`0 width match regex (${g})`);throw D.languageName=g,D.badRule=_e.rule,D}return 1}if(_e=v,v.type==="begin")return rn(v);if(v.type==="illegal"&&!y){let D=new Error('Illegal lexeme "'+R+'" for mode "'+(T.scope||"<unnamed>")+'"');throw D.mode=T,D}else if(v.type==="end"){let D=on(v);if(D!==qn)return D}if(v.type==="illegal"&&R==="")return $+=`
|
|
205
|
+
`,1;if(cn>1e5&&cn>v.index*3)throw new Error("potential infinite loop, way more iterations than matches");return $+=R,R.length}let se=L(g);if(!se)throw ge(o.replace("{}",g)),new Error('Unknown language: "'+g+'"');let B=Ar(se),le="",T=I||B,Fe={},Z=new c.__emitter(c);an();let $="",Ue=0,pe=0,cn=0,ln=!1;try{if(se.__emitTokens)se.__emitTokens(w,Z);else{for(T.matcher.considerAll();;){cn++,ln?ln=!1:T.matcher.considerAll(),T.matcher.lastIndex=pe;let E=T.matcher.exec(w);if(!E)break;let v=w.substring(pe,E.index),R=Be(v,E);pe=E.index+R}Be(w.substring(pe))}return Z.finalize(),le=Z.toHTML(),{language:g,value:le,relevance:Ue,illegal:!1,_emitter:Z,_top:T}}catch(E){if(E.message&&E.message.includes("Illegal"))return{language:g,value:pn(w),illegal:!0,relevance:0,_illegalBy:{message:E.message,index:pe,context:w.slice(pe-100,pe+100),mode:E.mode,resultSoFar:le},_emitter:Z};if(r)return{language:g,value:pn(w),illegal:!1,relevance:0,errorRaised:E,_emitter:Z,_top:T};throw E}}function b(g){let w={value:pn(g),illegal:!1,relevance:0,_top:a,_emitter:new c.__emitter(c)};return w._emitter.addText(g),w}function h(g,w){w=w||c.languages||Object.keys(n);let y=b(g),I=w.filter(L).filter(J).map(V=>m(V,g,!1));I.unshift(y);let M=I.sort((V,j)=>{if(V.relevance!==j.relevance)return j.relevance-V.relevance;if(V.language&&j.language){if(L(V.language).supersetOf===j.language)return 1;if(L(j.language).supersetOf===V.language)return-1}return 0}),[U,K]=M,te=U;return te.secondBest=K,te}function f(g,w,y){let I=w&&t[w]||y;g.classList.add("hljs"),g.classList.add(`language-${I}`)}function _(g){let w=null,y=d(g);if(u(y))return;if(G("before:highlightElement",{el:g,language:y}),g.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",g);return}if(g.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(g)),c.throwUnescapedHTML))throw new bn("One of your code blocks includes unescaped HTML.",g.innerHTML);w=g;let I=w.textContent,M=y?p(I,{language:y,ignoreIllegals:!0}):h(I);g.innerHTML=M.value,g.dataset.highlighted="yes",f(g,y,M.language),g.result={language:M.language,re:M.relevance,relevance:M.relevance},M.secondBest&&(g.secondBest={language:M.secondBest.language,relevance:M.secondBest.relevance}),G("after:highlightElement",{el:g,result:M,text:I})}function S(g){c=Kn(c,g)}let A=()=>{O(),ye("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function k(){O(),ye("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let P=!1;function O(){function g(){O()}if(document.readyState==="loading"){P||window.addEventListener("DOMContentLoaded",g,!1),P=!0;return}document.querySelectorAll(c.cssSelector).forEach(_)}function C(g,w){let y=null;try{y=w(e)}catch(I){if(ge("Language definition for '{}' could not be registered.".replace("{}",g)),r)ge(I);else throw I;y=a}y.name||(y.name=g),n[g]=y,y.rawDefinition=w.bind(null,e),y.aliases&&z(y.aliases,{languageName:g})}function x(g){delete n[g];for(let w of Object.keys(t))t[w]===g&&delete t[w]}function Y(){return Object.keys(n)}function L(g){return g=(g||"").toLowerCase(),n[g]||n[t[g]]}function z(g,{languageName:w}){typeof g=="string"&&(g=[g]),g.forEach(y=>{t[y.toLowerCase()]=w})}function J(g){let w=L(g);return w&&!w.disableAutodetect}function ie(g){g["before:highlightBlock"]&&!g["before:highlightElement"]&&(g["before:highlightElement"]=w=>{g["before:highlightBlock"](Object.assign({block:w.el},w))}),g["after:highlightBlock"]&&!g["after:highlightElement"]&&(g["after:highlightElement"]=w=>{g["after:highlightBlock"](Object.assign({block:w.el},w))})}function ne(g){ie(g),s.push(g)}function re(g){let w=s.indexOf(g);w!==-1&&s.splice(w,1)}function G(g,w){let y=g;s.forEach(function(I){I[y]&&I[y](w)})}function W(g){return ye("10.7.0","highlightBlock will be removed entirely in v12.0"),ye("10.7.0","Please use highlightElement now."),_(g)}Object.assign(e,{highlight:p,highlightAuto:h,highlightAll:O,highlightElement:_,highlightBlock:W,configure:S,initHighlighting:A,initHighlightingOnLoad:k,registerLanguage:C,unregisterLanguage:x,listLanguages:Y,getLanguage:L,registerAliases:z,autoDetection:J,inherit:Kn,addPlugin:ne,removePlugin:re}),e.debugMode=function(){r=!1},e.safeMode=function(){r=!0},e.versionString=kr,e.regex={concat:fe,lookahead:Yn,either:En,optional:qs,anyNumberOfTimes:Ks};for(let g in $e)typeof $e[g]=="object"&&Gn($e[g]);return Object.assign(e,$e),e},we=tt({});we.newInstance=()=>tt({});st.exports=we;we.HighlightJS=we;we.default=we});function l(e,n,...t){let s=document.createElement(e);if(n)for(let[r,o]of Object.entries(n))o==null||o===!1||(r==="class"?s.className=o:r.startsWith("on")&&typeof o=="function"?s.addEventListener(r.slice(2).toLowerCase(),o):r==="html"?s.innerHTML=o:s.setAttribute(r,String(o)));for(let r of t)if(!(r==null||r===!1))if(Array.isArray(r))for(let o of r)Bn(s,o);else Bn(s,r);return s}function Bn(e,n){n==null||n===!1||(n instanceof Node?e.appendChild(n):e.appendChild(document.createTextNode(String(n))))}function ee(e){return String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function he(e){return e=e.replace(/`([^`\n]+)`/g,(n,t)=>`<code>${t}</code>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,"<strong>$1</strong>"),e=e.replace(/(^|[^*])\*([^*\n]+)\*/g,"$1<em>$2</em>"),e=e.replace(/__([^_\n]+)__/g,"<strong>$1</strong>"),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,t,s)=>{let r=s.match(/^hydra:\/\/(?:[^/\s]+\/)?sessions\/([A-Za-z0-9_-]+)(?:#turn-\d+)?$/);if(r){let o=r[1];return`<a href="#/session/${ee(o)}">${t}</a>`}return/^(https?:\/\/|\/|\.)/i.test(s)?`<a href="${ee(s)}" target="_blank" rel="noopener noreferrer">${t}</a>`:`[${t}](${s})`}),e}function un(e){let n=e.trim();if(!n.includes("|"))return null;let t=n;return t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1)),t.split("|").map(s=>s.trim())}function $s(e){let n=un(e);if(!n||n.length===0)return null;let t=[];for(let s of n){if(!/^:?-+:?$/.test(s))return null;let r=s.startsWith(":"),o=s.endsWith(":");r&&o?t.push("center"):o?t.push("right"):r?t.push("left"):t.push(null)}return t}function Fn(e,n,t){let s="<tr>";for(let r=0;r<e.length;r++){let o=n[r]??null,a=o?` style="text-align:${o}"`:"";s+=`<${t}${a}>${he(ee(e[r]))}</${t}>`}return s+="</tr>",s}function dn(e){typeof e!="string"&&(e=String(e??""));let n=e.split(`
|
|
206
|
+
`),t="",s=!1,r="",o=[],a=null,c=[];function u(){c.length!==0&&(t+=`<p>${he(c.join(" "))}</p>`,c=[])}function d(){a&&(t+=`</${a}>`,a=null)}let p=0;for(;p<n.length;){let m=n[p];if(s){if(/^```/.test(m)){t+=`<pre><code data-lang="${ee(r)}">${ee(o.join(`
|
|
207
|
+
`))}</code></pre>`,s=!1,o=[],r="",p++;continue}o.push(m),p++;continue}if(/^```/.test(m)){u(),d(),s=!0,r=m.slice(3).trim(),p++;continue}if(p+1<n.length&&m.includes("|")){let h=un(m),f=$s(n[p+1]);if(h&&f&&h.length>0&&f.length>0){u(),d();let _=Math.max(h.length,f.length),S=[];for(let k=0;k<_;k++)S.push(f[k]??null);t+="<table><thead>",t+=Fn(h,S,"th"),t+="</thead><tbody>";let A=p+2;for(;A<n.length;){let k=un(n[A]);if(!k)break;t+=Fn(k,S,"td"),A++}t+="</tbody></table>",p=A;continue}}if(/^\s*$/.test(m)){u(),d(),p++;continue}let b;if(b=m.match(/^(#{1,3})\s+(.+)$/)){u(),d();let h=b[1].length;t+=`<h${h}>${he(ee(b[2]))}</h${h}>`,p++;continue}if(b=m.match(/^\s*[-*]\s+(.*)$/)){u(),a!=="ul"&&(d(),t+="<ul>",a="ul"),t+=`<li>${he(ee(b[1]))}</li>`,p++;continue}if(b=m.match(/^\s*\d+\.\s+(.*)$/)){u(),a!=="ol"&&(d(),t+="<ol>",a="ol"),t+=`<li>${he(ee(b[1]))}</li>`,p++;continue}if(b=m.match(/^\s*>\s?(.*)$/)){u(),d(),t+=`<blockquote>${he(ee(b[1]))}</blockquote>`,p++;continue}d(),c.push(ee(m)),p++}return s&&(t+=`<pre><code>${ee(o.join(`
|
|
208
|
+
`))}</code></pre>`),u(),d(),t}function Ae(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.map(Ae).join("");if(e&&typeof e=="object"){let n=e;if(typeof n.text=="string")return n.text;if(typeof n.content=="string")return n.content}return""}var it=Us(rt(),1);var q=it.default;function ot(e){let n=e.regex,t={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});let r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},o=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,r]};r.contains.push(c);let u={match:/\\"/},d={className:"string",begin:/'/,end:/'/},p={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},b=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],h=e.SHEBANG({binary:`(${b.join("|")})`,relevance:10}),f={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},_=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],A={match:/(\/[a-z._-]+)+/},k=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],P=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],O=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],C=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:_,literal:S,built_in:[...k,...P,"set","shopt",...O,...C]},contains:[h,e.SHEBANG(),f,m,o,a,A,c,u,d,p,t]}}function at(e){let n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="("+s+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",c={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},p={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},m={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),{className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},h=n.optional(r)+e.IDENT_RE+"\\s*\\(",S={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},A=[m,c,t,e.C_BLOCK_COMMENT_MODE,p,d],k={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:S,contains:A.concat([{begin:/\(/,end:/\)/,keywords:S,contains:A.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+a+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:S,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:S,relevance:0},{begin:h,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,d,p,c,{begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,d,p,c]}]},c,t,e.C_BLOCK_COMMENT_MODE,m]};return{name:"C",aliases:["h"],keywords:S,disableAutodetect:!0,illegal:"</",contains:[].concat(k,P,A,[m,{begin:e.IDENT_RE+"::",keywords:S},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:m,strings:d,keywords:S}}}function ct(e){let n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="(?!struct)("+s+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},p={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},m={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),{className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},h=n.optional(r)+e.IDENT_RE+"\\s*\\(",f=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],_=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],S=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],A=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],O={type:_,keyword:f,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:S},C={className:"function.dispatch",relevance:0,keywords:{_hint:A},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},x=[C,m,c,t,e.C_BLOCK_COMMENT_MODE,p,d],Y={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:O,contains:x.concat([{begin:/\(/,end:/\)/,keywords:O,contains:x.concat(["self"]),relevance:0}]),relevance:0},L={className:"function",begin:"("+a+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:O,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:O,relevance:0},{begin:h,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[d,p]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,d,p,c,{begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,d,p,c]}]},c,t,e.C_BLOCK_COMMENT_MODE,m]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:O,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(Y,L,C,x,[m,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:O,contains:["self",c]},{begin:e.IDENT_RE+"::",keywords:O},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}var xr=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Mr=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Or=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Cr=[...Mr,...Or],Lr=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Dr=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Pr=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Br=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function lt(e){let n=e.regex,t=xr(e),s={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",o=/@-?\w[\w]*(-\w+)*/,a="[a-zA-Z-][a-zA-Z0-9_-]*",c=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[t.BLOCK_COMMENT,s,t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+a,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Dr.join("|")+")"},{begin:":(:)?("+Pr.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Br.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:o},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:Lr.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Cr.join("|")+")\\b"}]}}function ut(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}function dt(e){let o={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:o,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:o,illegal:/["']/}]}]}}function pt(e){let n=e.regex,t={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},s=e.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let r={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},o={className:"literal",begin:/\bon|off|true|false|yes|no\b/},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[s,o,r,a,t,"self"],relevance:0},u=/[A-Za-z0-9_-]+/,d=/"(\\"|[^"])*"/,p=/'[^']*'/,m=n.either(u,d,p),b=n.concat(m,"(\\s*\\.\\s*",m,")*",n.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[s,{className:"section",begin:/\[+/,end:/\]+/},{begin:b,className:"attr",starts:{end:/$/,contains:[s,c,o,r,a,t]}}]}}var Se="[0-9](_*[0-9])*",qe=`\\.(${Se})`,Ge="[0-9a-fA-F](_*[0-9a-fA-F])*",gt={className:"number",variants:[{begin:`(\\b(${Se})((${qe})|\\.)?|(${qe}))[eE][+-]?(${Se})[fFdD]?\\b`},{begin:`\\b(${Se})((${qe})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${qe})[fFdD]?\\b`},{begin:`\\b(${Se})[fFdD]\\b`},{begin:`\\b0[xX]((${Ge})\\.?|(${Ge})?\\.(${Ge}))[pP][+-]?(${Se})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ge})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function ft(e,n,t){return t===-1?"":e.replace(n,s=>ft(e,n,t-1))}function mt(e){let n=e.regex,t="[\xC0-\u02B8a-zA-Z_$][\xC0-\u02B8a-zA-Z_$0-9]*",s=t+ft("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),u={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},d={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},p={className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:u,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",3:"title.class"},contains:[p,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+s+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:u,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,gt,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},gt,d]}}var bt="[A-Za-z$_][0-9A-Za-z$_]*",Fr=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Ur=["true","false","null","undefined","NaN","Infinity"],Et=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],_t=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],ht=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],$r=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Hr=[].concat(ht,Et,_t);function yt(e){let n=e.regex,t=(y,{after:I})=>{let M="</"+y[0].slice(1);return y.input.indexOf(M,I)!==-1},s=bt,r={begin:"<>",end:"</>"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(y,I)=>{let M=y[0].length+y.index,U=y.input[M];if(U==="<"||U===","){I.ignoreMatch();return}U===">"&&(t(y,{after:M})||I.ignoreMatch());let K,te=y.input.substring(M);if(K=te.match(/^\s*=/)){I.ignoreMatch();return}if((K=te.match(/^\s+extends\s+/))&&K.index===0){I.ignoreMatch();return}}},c={$pattern:bt,keyword:Fr,literal:Ur,built_in:Hr,"variable.language":$r},u="[0-9](_?[0-9])*",d=`\\.(${u})`,p="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${p})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${p})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},f={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},k={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,{match:/\$\d+/},m];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(P)});let O=[].concat(k,b.contains),C=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(O)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C},Y={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,n.concat(s,"(",n.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Et,..._t]}},z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},J={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},ie={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ne(y){return n.concat("(?!",y.join("|"),")")}let re={match:n.concat(/\b/,ne([...ht,"super","import"].map(y=>`${y}\\s*\\(`)),s,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},G={begin:n.concat(/\./,n.lookahead(n.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},W={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",w={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),z,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,k,{match:/\$\d+/},m,L,{scope:"attr",match:s+n.lookahead(":"),relevance:0},w,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[k,e.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:o},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},J,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},re,ie,Y,W,{match:/\$[(.]/}]}}function wt(e){let n={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},s=["true","false","null"],r={scope:"literal",beginKeywords:s.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:s},contains:[n,t,e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var ve="[0-9](_*[0-9])*",We=`\\.(${ve})`,Ye="[0-9a-fA-F](_*[0-9a-fA-F])*",zr={className:"number",variants:[{begin:`(\\b(${ve})((${We})|\\.)?|(${We}))[eE][+-]?(${ve})[fFdD]?\\b`},{begin:`\\b(${ve})((${We})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${We})[fFdD]?\\b`},{begin:`\\b(${ve})[fFdD]\\b`},{begin:`\\b0[xX]((${Ye})\\.?|(${Ye})?\\.(${Ye}))[pP][+-]?(${ve})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ye})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function St(e){let n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},t={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},s={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},o={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},a={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[o,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,o,r]}]};r.contains.push(a);let c={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},u={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(a,{className:"string"}),"self"]}]},d=zr,p=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),m={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},b=m;return b.variants[1].contains=[m],m.variants[1].contains=[b],{name:"Kotlin",aliases:["kt","kts"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,p,t,s,c,u,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[m,e.C_LINE_COMMENT_MODE,p],relevance:0},e.C_LINE_COMMENT_MODE,p,c,u,a,e.C_NUMBER_MODE]},p]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},c,u]},a,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
209
|
+
`},d]}}function vt(e){let n=e.regex,t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},s={begin:"^[-\\*]{3,}",end:"$"},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},o={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},a={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},c=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,c,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},d={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},p={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},m=e.inherit(d,{contains:[]}),b=e.inherit(p,{contains:[]});d.contains.push(b),p.contains.push(m);let h=[t,u];return[d,p,m,b].forEach(A=>{A.contains=A.contains.concat(h)}),h=h.concat(d,p),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:h},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:h}]}]},t,o,d,p,{className:"quote",begin:"^>\\s+",contains:h,end:"$"},r,s,u,a,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Nt(e){let n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,s=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),r=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),o=n.concat(/[A-Z]+/,t),a={scope:"variable",match:"\\$+"+s},c={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},u={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},d=e.inherit(e.APOS_STRING_MODE,{illegal:null}),p=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(u)}),m={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(u),"on:begin":(G,W)=>{W.data._beginMatch=G[1]||G[2]},"on:end":(G,W)=>{W.data._beginMatch!==G[1]&&W.ignoreMatch()}},b=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),h=`[
|
|
210
|
+
]`,f={scope:"string",variants:[p,d,m,b]},_={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},S=["false","null","true"],A=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],k=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],O={keyword:A,literal:(G=>{let W=[];return G.forEach(g=>{W.push(g),g.toLowerCase()===g?W.push(g.toUpperCase()):W.push(g.toLowerCase())}),W})(S),built_in:k},C=G=>G.map(W=>W.replace(/\|\d+$/,"")),x={variants:[{match:[/new/,n.concat(h,"+"),n.concat("(?!",C(k).join("\\b|"),"\\b)"),r],scope:{1:"keyword",4:"title.class"}}]},Y=n.concat(s,"\\b(?!\\()"),L={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),Y],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[r,n.concat(/::/,n.lookahead(/(?!class\b)/)),Y],scope:{1:"title.class",3:"variable.constant"}},{match:[r,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[r,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},z={scope:"attr",match:n.concat(s,n.lookahead(":"),n.lookahead(/(?!::)/))},J={relevance:0,begin:/\(/,end:/\)/,keywords:O,contains:[z,a,L,e.C_BLOCK_COMMENT_MODE,f,_,x]},ie={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",C(A).join("\\b|"),"|",C(k).join("\\b|"),"\\b)"),s,n.concat(h,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[J]};J.contains.push(ie);let ne=[z,L,e.C_BLOCK_COMMENT_MODE,f,_,x],re={begin:n.concat(/#\[\s*\\?/,n.either(r,o)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...ne]},...ne,{scope:"meta",variants:[{match:r},{match:o}]}]};return{case_insensitive:!1,keywords:O,contains:[re,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},c,{scope:"variable.language",match:/\$this\b/},a,ie,L,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},x,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:O,contains:["self",re,a,L,e.C_BLOCK_COMMENT_MODE,f,_]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},f,_]}}function Tt(e){let n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},p={begin:/\{\{/,relevance:0},m={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u,p,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u,p,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,p,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,p,d]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},b="[0-9](_?[0-9])*",h=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,f=`\\b|${s.join("|")}`,_={className:"number",relevance:0,variants:[{begin:`(\\b(${b})|(${h}))[eE][+-]?(${b})[jJ]?(?=${f})`},{begin:`(${h})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${f})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${f})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${f})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${f})`},{begin:`\\b(${b})[jJ](?=${f})`}]},S={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},A={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,_,m,e.HASH_COMMENT_MODE]}]};return d.contains=[m,_,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:c,illegal:/(<\/|\?)|=>/,contains:[u,_,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},m,S,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[A]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[_,A,m]}]}}function At(e){let n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),r=n.concat(s,/(::\w+)*/),a={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},c={className:"doctag",begin:"@[A-Za-z]+"},u={begin:"#<",end:">"},d=[e.COMMENT("#","$",{contains:[c]}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],p={className:"subst",begin:/#\{/,end:/\}/,keywords:a},m={className:"string",contains:[e.BACKSLASH_ESCAPE,p],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,p]})]}]},b="[1-9](_?[0-9])*|0",h="[0-9](_?[0-9])*",f={className:"number",relevance:0,variants:[{begin:`\\b(${b})(\\.(${h}))?([eE][+-]?(${h})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},_={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},x=[m,{variants:[{match:[/class\s+/,r,/\s+<\s+/,r]},{match:[/\b(class|module)\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},{match:[/(include|extend)\s+/,r],scope:{2:"title.class"},keywords:a},{relevance:0,match:[r,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[_]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[m,{begin:t}],relevance:0},f,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,p],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(u,d),relevance:0}].concat(u,d);p.contains=x,_.contains=x;let J=[{begin:/^\s*=>/,starts:{end:"$",contains:x}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:a,contains:x}}];return d.unshift(u),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(J).concat(d).concat(x)}}function It(e){let n=e.regex,t=/(r#)?/,s=n.concat(t,e.UNDERSCORE_IDENT_RE),r=n.concat(t,e.IDENT_RE),o={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,r,n.lookahead(/\s*\(/))},a="([ui](8|16|32|64|128|size)|f(32|64))?",c=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],u=["true","false","Some","None","Ok","Err"],d=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],p=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:p,keyword:c,literal:u,built_in:d},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+a},{begin:"\\b0o([0-7_]+)"+a},{begin:"\\b0x([A-Fa-f0-9_]+)"+a},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+a}],relevance:0},{begin:[/fn/,/\s+/,s],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,s],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,s,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:d,type:p}},{className:"punctuation",begin:"->"},o]}}function kt(e){let n=e.regex,t=e.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},o=["true","false","unknown"],a=["double precision","large object","with timezone","without timezone"],c=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],u=["add","asc","collation","desc","final","first","last","view"],d=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],p=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],m=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],b=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],h=p,f=[...d,...u].filter(C=>!p.includes(C)),_={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},A={match:n.concat(/\b/,n.either(...h),/\s*\(/),relevance:0,keywords:{built_in:h}};function k(C){return n.concat(/\b/,n.either(...C.map(x=>x.replace(/\s+/,"\\s+"))),/\b/)}let P={scope:"keyword",match:k(b),relevance:0};function O(C,{exceptions:x,when:Y}={}){let L=Y;return x=x||[],C.map(z=>z.match(/\|\d+$/)||x.includes(z)?z:L(z)?`${z}|0`:z)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:O(f,{when:C=>C.length<3}),literal:o,type:c,built_in:m},contains:[{scope:"type",match:k(a)},P,A,_,s,r,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,S]}}function Ot(e){return e?typeof e=="string"?e:e.source:null}function Re(e){return F("(?=",e,")")}function F(...e){return e.map(t=>Ot(t)).join("")}function Kr(e){let n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function X(...e){return"("+(Kr(e).capture?"":"?:")+e.map(s=>Ot(s)).join("|")+")"}var Sn=e=>F(/\b/,e,/\w$/.test(e)?/\b/:/\B/),qr=["Protocol","Type"].map(Sn),Rt=["init","self"].map(Sn),Gr=["Any","Self"],yn=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],xt=["false","nil","true"],Wr=["assignment","associativity","higherThan","left","lowerThan","none","right"],Yr=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Mt=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ct=X(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Lt=X(Ct,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),wn=F(Ct,Lt,"*"),Dt=X(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Qe=X(Dt,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),oe=F(Dt,Qe,"*"),Ze=F(/[A-Z]/,Qe,"*"),Zr=["attached","autoclosure",F(/convention\(/,X("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",F(/objc\(/,oe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Qr=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function Pt(e){let n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),s=[e.C_LINE_COMMENT_MODE,t],r={match:[/\./,X(...qr,...Rt)],className:{2:"keyword"}},o={match:F(/\./,X(...yn)),relevance:0},a=yn.filter(B=>typeof B=="string").concat(["_|0"]),c=yn.filter(B=>typeof B!="string").concat(Gr).map(Sn),u={variants:[{className:"keyword",match:X(...c,...Rt)}]},d={$pattern:X(/\b\w+/,/#\w+/),keyword:a.concat(Yr),literal:xt},p=[r,o,u],m={match:F(/\./,X(...Mt)),relevance:0},b={className:"built_in",match:F(/\b/,X(...Mt),/(?=\()/)},h=[m,b],f={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:wn},{match:`\\.(\\.|${Lt})+`}]},S=[f,_],A="([0-9]_*)+",k="([0-9a-fA-F]_*)+",P={className:"number",relevance:0,variants:[{match:`\\b(${A})(\\.(${A}))?([eE][+-]?(${A}))?\\b`},{match:`\\b0x(${k})(\\.(${k}))?([pP][+-]?(${A}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(B="")=>({className:"subst",variants:[{match:F(/\\/,B,/[0\\tnr"']/)},{match:F(/\\/,B,/u\{[0-9a-fA-F]{1,8}\}/)}]}),C=(B="")=>({className:"subst",match:F(/\\/,B,/[\t ]*(?:[\r\n]|\r\n)/)}),x=(B="")=>({className:"subst",label:"interpol",begin:F(/\\/,B,/\(/),end:/\)/}),Y=(B="")=>({begin:F(B,/"""/),end:F(/"""/,B),contains:[O(B),C(B),x(B)]}),L=(B="")=>({begin:F(B,/"/),end:F(/"/,B),contains:[O(B),x(B)]}),z={className:"string",variants:[Y(),Y("#"),Y("##"),Y("###"),L(),L("#"),L("##"),L("###")]},J=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],ie={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:J},ne=B=>{let le=F(B,/\//),T=F(/\//,B);return{begin:le,end:T,contains:[...J,{scope:"comment",begin:`#(?!.*${T})`,end:/$/}]}},re={scope:"regexp",variants:[ne("###"),ne("##"),ne("#"),ie]},G={match:F(/`/,oe,/`/)},W={className:"variable",match:/\$\d+/},g={className:"variable",match:`\\$${Qe}+`},w=[G,W,g],y={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:Qr,contains:[...S,P,z]}]}},I={scope:"keyword",match:F(/@/,X(...Zr),Re(X(/\(/,/\s+/)))},M={scope:"meta",match:F(/@/,oe)},U=[y,I,M],K={match:Re(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:F(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Qe,"+")},{className:"type",match:Ze,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:F(/\s+&\s+/,Re(Ze)),relevance:0}]},te={begin:/</,end:/>/,keywords:d,contains:[...s,...p,...U,f,K]};K.contains.push(te);let V={match:F(oe,/\s*:/),keywords:"_|0",relevance:0},j={begin:/\(/,end:/\)/,relevance:0,keywords:d,contains:["self",V,...s,re,...p,...h,...S,P,z,...w,...U,K]},Ee={begin:/</,end:/>/,keywords:"repeat each",contains:[...s,K]},Pe={begin:X(Re(F(oe,/\s*:/)),Re(F(oe,/\s+/,oe,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:oe}]},Te={begin:/\(/,end:/\)/,keywords:d,contains:[Pe,...s,...p,...S,P,z,...U,K,j],endsParent:!0,illegal:/["']/},sn={match:[/(func|macro)/,/\s+/,X(G.match,oe,wn)],className:{1:"keyword",3:"title.function"},contains:[Ee,Te,n],illegal:[/\[/,/%/]},rn={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ee,Te,n],illegal:/\[|%/},on={match:[/operator/,/\s+/,wn],className:{1:"keyword",3:"title"}},an={begin:[/precedencegroup/,/\s+/,Ze],className:{1:"keyword",3:"title"},contains:[K],keywords:[...Wr,...xt],end:/}/},_e={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Be={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},se={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,oe,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:d,contains:[Ee,...p,{begin:/:/,end:/\{/,keywords:d,contains:[{scope:"title.class.inherited",match:Ze},...p],relevance:0}]};for(let B of z.variants){let le=B.contains.find(Fe=>Fe.label==="interpol");le.keywords=d;let T=[...p,...h,...S,P,z,...w];le.contains=[...T,{begin:/\(/,end:/\)/,contains:["self",...T]}]}return{name:"Swift",keywords:d,contains:[...s,sn,rn,_e,Be,se,on,an,{beginKeywords:"import",end:/$/,contains:[...s],relevance:0},re,...p,...h,...S,P,z,...w,...U,K,j]}}var Ve="[A-Za-z$_][0-9A-Za-z$_]*",Bt=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Ft=["true","false","null","undefined","NaN","Infinity"],Ut=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],$t=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ht=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],zt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Kt=[].concat(Ht,Ut,$t);function Vr(e){let n=e.regex,t=(y,{after:I})=>{let M="</"+y[0].slice(1);return y.input.indexOf(M,I)!==-1},s=Ve,r={begin:"<>",end:"</>"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(y,I)=>{let M=y[0].length+y.index,U=y.input[M];if(U==="<"||U===","){I.ignoreMatch();return}U===">"&&(t(y,{after:M})||I.ignoreMatch());let K,te=y.input.substring(M);if(K=te.match(/^\s*=/)){I.ignoreMatch();return}if((K=te.match(/^\s+extends\s+/))&&K.index===0){I.ignoreMatch();return}}},c={$pattern:Ve,keyword:Bt,literal:Ft,built_in:Kt,"variable.language":zt},u="[0-9](_?[0-9])*",d=`\\.(${u})`,p="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${p})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${p})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},f={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},k={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,{match:/\$\d+/},m];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(P)});let O=[].concat(k,b.contains),C=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(O)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C},Y={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,n.concat(s,"(",n.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Ut,...$t]}},z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},J={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},ie={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ne(y){return n.concat("(?!",y.join("|"),")")}let re={match:n.concat(/\b/,ne([...Ht,"super","import"].map(y=>`${y}\\s*\\(`)),s,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},G={begin:n.concat(/\./,n.lookahead(n.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},W={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",w={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),z,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,f,_,S,k,{match:/\$\d+/},m,L,{scope:"attr",match:s+n.lookahead(":"),relevance:0},w,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[k,e.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:o},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},J,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},re,ie,Y,W,{match:/\$[(.]/}]}}function qt(e){let n=e.regex,t=Vr(e),s=Ve,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],o={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[t.exports.CLASS_REFERENCE]},c={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],d={$pattern:Ve,keyword:Bt.concat(u),literal:Ft,built_in:Kt.concat(r),"variable.language":zt},p={className:"meta",begin:"@"+s},m=(_,S,A)=>{let k=_.contains.findIndex(P=>P.label===S);if(k===-1)throw new Error("can not find mode to replace");_.contains.splice(k,1,A)};Object.assign(t.keywords,d),t.exports.PARAMS_CONTAINS.push(p);let b=t.contains.find(_=>_.scope==="attr"),h=Object.assign({},b,{match:n.concat(s,n.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,b,h]),t.contains=t.contains.concat([p,o,a,h]),m(t,"shebang",e.SHEBANG()),m(t,"use_strict",c);let f=t.contains.find(_=>_.label==="func.def");return f.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function Gt(e){let n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},o={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=e.inherit(o,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:s,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[o,u,c,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[o,a,u,c]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[d],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[d],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:d}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Wt(e){let n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},o={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},a={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},c=e.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),b={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},h={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},f={begin:/\{/,end:/\}/,contains:[h],illegal:"\\n",relevance:0},_={begin:"\\[",end:"\\]",contains:[h],illegal:"\\n",relevance:0},S=[s,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},b,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},f,_,o,a],A=[...S];return A.pop(),A.push(c),h.contains=A,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}q.registerLanguage("bash",ot);q.registerLanguage("c",at);q.registerLanguage("cpp",ct);q.registerLanguage("css",lt);q.registerLanguage("dockerfile",ut);q.registerLanguage("go",dt);q.registerLanguage("ini",pt);q.registerLanguage("java",mt);q.registerLanguage("javascript",yt);q.registerLanguage("json",wt);q.registerLanguage("kotlin",St);q.registerLanguage("markdown",vt);q.registerLanguage("php",Nt);q.registerLanguage("python",Tt);q.registerLanguage("ruby",At);q.registerLanguage("rust",It);q.registerLanguage("sql",kt);q.registerLanguage("swift",Pt);q.registerLanguage("typescript",qt);q.registerLanguage("xml",Gt);q.registerLanguage("yaml",Wt);var Xr={bash:"bash",sh:"bash",zsh:"bash",c:"c",h:"c",cc:"cpp",cpp:"cpp",cxx:"cpp",hpp:"cpp",hxx:"cpp",css:"css",dockerfile:"dockerfile",go:"go",ini:"ini",toml:"ini",java:"java",cjs:"javascript",js:"javascript",jsx:"javascript",mjs:"javascript",json:"json",jsonc:"json",kt:"kotlin",kts:"kotlin",md:"markdown",markdown:"markdown",php:"php",py:"python",rb:"ruby",rs:"rust",sql:"sql",swift:"swift",cts:"typescript",mts:"typescript",ts:"typescript",tsx:"typescript",htm:"xml",html:"xml",svg:"xml",xml:"xml",yaml:"yaml",yml:"yaml"};function Yt(e,n){let t=n.split(".").pop()?.toLowerCase()??"",s=Xr[t]??(n.toLowerCase()==="dockerfile"?"dockerfile":null);return s?q.highlight(e,{language:s}).value:null}function Nn(e){i.current&&i.current.log.push(e)}function Jr(e){if(e.kind!=="stream"||e.role!=="user"||!e.queueEntry)return!1;let n=e.queueEntry.status;return n==="queued"||n==="editing"}function Zt(){if(!i.current)return 0;let e=i.current.log;for(let n=0;n<e.length;n++)if(Jr(e[n]))return n;return e.length}function Ne(e){i.current&&i.current.log.splice(Zt(),0,e)}function jr(){i.current&&(i.current.inTurn=!0)}function ei(){if(!i.current)return;i.current.inTurn=!1;let e=i.current.idleListeners;i.current.idleListeners=[];for(let n of e)try{n()}catch{}}function vn(e,n){if(!i.current)return;let t=Ae(n);if(!t)return;let s=i.current.log,r=Zt(),o;for(let a=r-1;a>=0;a--){let c=s[a];if(c.kind!=="spinner"){o=c;break}}if(o&&o.kind==="stream"&&o.role===e&&!o.closed){o.text+=t;return}s.splice(r,0,{kind:"stream",role:e,text:t})}function xe(){if(i.current)for(let e=i.current.log.length-1;e>=0;e--){let n=i.current.log[e];if(n.kind==="stream"&&!n.closed){n.closed=!0;return}}}function Qt(e){if(!i.current)return!1;let n=Ae(e);if(!n)return!1;let t=i.current.recentOwnPrompts;for(let s=0;s<t.length;s++)if(t[s].text===n)return t.splice(s,1),!0;return!1}function Xe(e){if(!e)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(Xe).join("");if(typeof e=="object"){let n=e;if(n.text)return String(n.text);if(n.content)return Xe(n.content);if(n.diff)return String(n.diff);try{return JSON.stringify(e,null,2)}catch{return String(e)}}return""}function Me(){if(!i.current)return;let e=i.current;if(e.spinner){e.log.some(n=>n.kind==="spinner")||Ne({kind:"spinner",spinner:e.spinner});return}e.spinner={toolCallIds:[],expanded:!1},Ne({kind:"spinner",spinner:e.spinner})}function ni(e){return e?e.toLowerCase().replace(/[_\s-]/g,"")==="exitplanmode":!1}function ti(e){let n=e.rawInput;if(!n||typeof n!="object"||Array.isArray(n))return null;let t=n.plan;return typeof t!="string"||t.length===0?null:t}function si(e){if(!i.current)return null;let n=i.current.log;for(let t=0;t<n.length;t++){let s=n[t];if(s.kind==="exit-plan-mode"&&s.toolCallId===e)return{idx:t,item:s}}return null}function Vt(e){if(!i.current)return!1;let n=String(e.toolCallId??"");if(!n)return!1;let t=e.name??e.title,s=si(n);if(!ni(t)&&!s)return!1;let r=ti(e),o=typeof e.status=="string"?e.status:void 0;if(s)return r!==null&&(s.item.plan=r),o!==void 0&&(s.item.status=o),!0;if(r===null)return!1;xe();let a={kind:"exit-plan-mode",toolCallId:n,plan:r};return o!==void 0&&(a.status=o),Ne(a),!0}function ri(e){if(!i.current)return;if(xe(),Vt(e)){je(String(e.toolCallId),typeof e.status=="string"?e.status:void 0);return}let n={toolCallId:String(e.toolCallId),title:String(e.title??e.kind??"tool"),kind:String(e.kind??""),status:String(e.status??"in_progress"),content:Xe(e.content)};i.current.toolCalls.set(n.toolCallId,n),Me(),i.current.spinner.toolCallIds.push(n.toolCallId),je(n.toolCallId,n.status)}function ii(e){if(!i.current)return;if(Vt(e)){typeof e.status=="string"&&je(String(e.toolCallId),e.status);return}let n=i.current.toolCalls.get(String(e.toolCallId));n&&(typeof e.status=="string"&&(n.status=e.status,je(n.toolCallId,e.status)),typeof e.title=="string"&&(n.title=e.title),e.content!==void 0&&(n.content=(n.content||"")+Xe(e.content)))}function Tn(){if(i.current){i.current.spinner=null,i.current.log=i.current.log.filter(e=>e.kind!=="spinner"),xe();for(let e of i.current.promptQueue)e.status==="processing"&&(e.status="done");i.current.currentPlanEntry=null,i.current.currentHeadMessageId=void 0,ei()}}function oi(e){if(!i.current)return;let t=(Array.isArray(e.prompt)?e.prompt:[]).map(r=>Ae(r)).join("");if(!t)return;let s=typeof e.messageId=="string"?e.messageId:void 0;s&&i.current.queueByMessageId.has(s)||Qt({text:t})||(xe(),Ne({kind:"stream",role:"user",text:t,closed:!0}))}function Xt(e){if(i.current)for(let n of e){if(!n||typeof n!="object")continue;let t=n,s=typeof t.messageId=="string"?t.messageId:"";if(!s||i.current.queueByMessageId.has(s))continue;let r=Array.isArray(t.prompt)?t.prompt:[],o="";for(let u of r)if(u&&typeof u=="object"){let d=u;d.type==="text"&&typeof d.text=="string"&&(o+=d.text)}if(!o)continue;let a=typeof t.position=="number"?t.position:0,c={id:"snap_"+Math.random().toString(36).slice(2,10),text:o,status:a===0?"processing":"queued",aheadAtEnqueue:Math.max(0,a),messageId:s};i.current.queueByMessageId.set(s,c),a===0&&(i.current.currentHeadMessageId=s),i.current.log.push({kind:"stream",role:"user",text:o,closed:!0,queueEntry:c})}}function ai(e){if(!i.current)return;let n=typeof e.messageId=="string"?e.messageId:"";if(!n)return;let s=(e._meta??{})["hydra-acp"]??{},r=typeof s.amending=="string"?s.amending:void 0,o=e.originator??{},a=typeof o.clientId=="string"?o.clientId:"";if(!!i.current.ownClientId&&a===i.current.ownClientId){let f=i.current.promptQueue.find(S=>S.messageId===void 0&&S.status!=="cancelled");if(!f)return;f.messageId=n,i.current.queueByMessageId.set(n,f),r!==void 0&&(f.amendsMessageId=r,Je(r,n));let _=typeof e.position=="number"?e.position:1;f.aheadAtEnqueue=Math.max(0,_),_===0?f.status="processing":f.status==="pending"&&(f.status="queued");return}let u=Array.isArray(e.prompt)?e.prompt:[],d="";for(let f of u)if(f&&typeof f=="object"){let _=f;_.type==="text"&&typeof _.text=="string"&&(d+=_.text)}if(!d)return;let p=typeof e.position=="number"?e.position:0,m=typeof e.queueDepth=="number"?e.queueDepth:1,b={id:"peer_"+Math.random().toString(36).slice(2,10),text:d,status:p===0?"processing":"queued",aheadAtEnqueue:Math.max(0,p),messageId:n};r!==void 0&&(b.amendsMessageId=r,Je(r,n)),i.current.queueByMessageId.set(n,b),xe();let h={kind:"stream",role:"user",text:d,closed:!0,queueEntry:b};p===0?Ne(h):i.current.log.push(h)}function ci(e){if(!i.current)return;let n=typeof e.messageId=="string"?e.messageId:"";if(!n)return;let t=i.current.queueByMessageId.get(n);if(!t)return;let s=Array.isArray(e.prompt)?e.prompt:[],r="";for(let o of s)if(o&&typeof o=="object"){let a=o;a.type==="text"&&typeof a.text=="string"&&(r+=a.text)}if(r){t.text=r;for(let o of i.current.log)if(o.kind==="stream"&&o.role==="user"&&o.queueEntry===t){o.text=r;break}}}function li(e){if(!i.current)return;let n=typeof e.messageId=="string"?e.messageId:"";if(!n)return;let t=typeof e.reason=="string"?e.reason:"";t==="started"&&(i.current.currentHeadMessageId=n);let s=i.current.queueByMessageId.get(n);s&&(t==="started"?s.status="processing":(t==="cancelled"||t==="abandoned")&&(s.amendedByMessageId!==void 0?s.status="amended":s.status="cancelled",i.current.queueByMessageId.delete(n)))}function ui(e){if(!i.current)return;let n=typeof e.cancelledMessageId=="string"?e.cancelledMessageId:"",t=typeof e.newMessageId=="string"?e.newMessageId:"";if(!n||!t)return;Je(n,t);let s=i.current.queueByMessageId.get(t);s&&s.amendsMessageId===void 0&&(s.amendsMessageId=n)}function Je(e,n){if(!i.current)return;let t=i.current.queueByMessageId.get(e)??i.current.promptQueue.find(s=>s.messageId===e);t&&(t.amendedByMessageId=n,t.status==="cancelled"&&(t.status="amended"))}function di(e){if(!i.current)return;let n=e.entries??e.plan??null;if(i.current.plan=n,i.current.currentPlanEntry){i.current.currentPlanEntry.entries=n;return}let t={kind:"plan",entries:n};Ne(t),i.current.currentPlanEntry=t}function pi(e){if(!i.current)return;let n=typeof e?.toolCallId=="string"?e.toolCallId:void 0;n&&Jt(n)}function Jt(e){i.current&&(i.current.pendingPermissions.delete(e),i.current.log=i.current.log.filter(n=>!(n.kind==="perm"&&n.toolCallId===e)))}function je(e,n){!i.current||!e||!n||n==="pending"||i.current.pendingPermissions.has(e)&&Jt(e)}function jt(e){if(e.method==="hydra-acp/prompt_queue/added"){ai(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/updated"){ci(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/removed"){li(e.params??{});return}if(e.method==="hydra-acp/prompt/amended"){ui(e.params??{});return}if(e.method!=="session/update")return;let n=e.params?.update??null;if(!n||typeof n!="object")return;let t=String(n.sessionUpdate??"");if(t==="permission_resolved"){pi(n);return}switch(t){case"prompt_received":case"user_message_chunk":case"agent_message_chunk":case"agent_thought_chunk":case"tool_call":case"tool_call_update":case"plan":jr();break;default:break}switch(t){case"user_message_chunk":{if(((n._meta??{})["hydra-acp"]??{}).compatFor==="prompt_received")break;Qt(n.content)||vn("user",n.content);break}case"agent_message_chunk":vn("agent",n.content);break;case"agent_thought_chunk":vn("thought",n.content);break;case"tool_call":ri(n);break;case"tool_call_update":ii(n);break;case"current_mode_update":i.current&&(i.current.mode=n.modeId??n.currentModeId??null,Array.isArray(n.availableModes)&&(i.current.modes=n.availableModes),N());break;case"available_modes_update":i.current&&Array.isArray(n.availableModes)&&(i.current.modes=n.availableModes,N());break;case"current_model_update":i.current&&(i.current.model=n.modelId??n.currentModelId??null,Array.isArray(n.availableModels)&&(i.current.models=n.availableModels),N());break;case"usage_update":if(i.current){let s=n.used??n.contextUsed,r=n.size??n.contextSize;typeof s=="number"&&(i.current.contextUsed=s),typeof r=="number"&&(i.current.contextSize=r),n.cost&&(i.current.cost=n.cost)}break;case"plan":di(n);break;case"prompt_received":oi(n);break;case"stop":case"turn_complete":{let o=((n._meta??{})["hydra-acp"]??{}).amended;if(o){let a=typeof o.cancelledMessageId=="string"?o.cancelledMessageId:"",c=typeof o.newMessageId=="string"?o.newMessageId:"";a&&c&&Je(a,c)}Tn();break}case"session_info_update":i.current&&typeof n.title=="string"&&(i.current.title=n.title);break;default:break}i.current?.inTurn&&Me()}function es(e){if(i.current){if(e.method==="session/request_permission"){let n=e.params??{},t=n.toolCall??{},s=typeof t.toolCallId=="string"?t.toolCallId:"";if(!s){i.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32602,message:"missing toolCall.toolCallId"}}));return}i.current.pendingPermissions.set(s,{requestId:e.id,toolCallId:s,toolCall:t,options:n.options??[]}),Nn({kind:"perm",toolCallId:s});return}i.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32601,message:`method not handled: ${String(e.method)}`}}))}}function Oe(){let e=i.current;if(!e)return;let n=e.composerValue.trim();if(!n)return;if(!e.ws||e.ws.readyState!==WebSocket.OPEN){e.log.push({kind:"error",text:"Not connected to session \u2014 prompt not sent."}),e.composerValue="",N();return}let t=e.promptQueue.filter(u=>u.status==="queued"||u.status==="pending"||u.status==="processing").length,s=e.inTurn&&!e.promptQueue.some(u=>u.status==="processing"),r=t+(s?1:0),o={id:"p_"+Math.random().toString(36).slice(2,10),text:n,status:r>0?"queued":"pending",aheadAtEnqueue:r};e.promptQueue.push(o),e.log.push({kind:"stream",role:"user",text:n,closed:!0,queueEntry:o}),e.recentOwnPrompts.push({text:n,at:Date.now()});let a=Date.now()-6e4;e.recentOwnPrompts=e.recentOwnPrompts.filter(u=>u.at>=a).slice(-16);let c=me("session/prompt",{sessionId:e.sessionId,prompt:[{type:"text",text:n}]});c!==void 0&&e.ownPromptIds.add(String(c)),Me(),ss(e,n),e.composerValue="",N()}var ns=100;function ss(e,n){e.history[0]!==n&&(e.history.unshift(n),e.history.length>ns&&(e.history.length=ns)),e.historyIndex=null,e.historyDraft=null}function An(e){let n=i.current;if(n){if(e.messageId!==void 0){me("hydra-acp/prompt/cancel",{sessionId:n.sessionId,messageId:e.messageId});return}e.status="cancelled",N()}}function rs(e,n){let t=i.current;if(!t)return;let s=n.trim();if(s){if(e.messageId===void 0){e.text=s,N();return}me("hydra-acp/prompt/update",{sessionId:t.sessionId,messageId:e.messageId,prompt:[{type:"text",text:s}]})}}function is(){let e=i.current;if(!e)return;let n=e.composerValue.trim();if(!n)return;if(!e.ws||e.ws.readyState!==WebSocket.OPEN){e.log.push({kind:"error",text:"Not connected to session \u2014 prompt not sent."}),e.composerValue="",N();return}if(!e.daemonSupportsAmend||e.currentHeadMessageId===void 0){Oe();return}let t=e.currentHeadMessageId,s=e.composerValue;e.composerValue="",ss(e,n);let r={id:"p_"+Math.random().toString(36).slice(2,10),text:n,status:"pending",aheadAtEnqueue:0,amendsMessageId:t};e.promptQueue.push(r),e.log.push({kind:"stream",role:"user",text:n,closed:!0,queueEntry:r}),e.recentOwnPrompts.push({text:n,at:Date.now()});let o=Date.now()-6e4;e.recentOwnPrompts=e.recentOwnPrompts.filter(c=>c.at>=o).slice(-16);let a=me("hydra-acp/prompt/amend",{sessionId:e.sessionId,targetMessageId:t,prompt:[{type:"text",text:n}]});a!==void 0&&e.responseHandlers.set(String(a),c=>{gi(r,s,c)}),Me(),N()}function gi(e,n,t){let s=i.current;if(!s)return;if(t.error){ts(s,e,n),H({banner:{kind:"bad",text:`amend failed: ${fi(t.error)}`}});return}let r=t.result??{};if(r.amended&&r.reason==="ok")return;ts(s,e,n);let o="amend rejected";r.reason==="target_completed"?o="previous response finished \u2014 press Send to send as a new turn":r.reason==="target_cancelled"?o="amend skipped \u2014 previous turn was cancelled":r.reason==="target_not_found"&&(o="amend skipped \u2014 no matching prompt"),H({banner:{kind:"warn",text:o}})}function ts(e,n,t){let s=e.promptQueue.indexOf(n);s>=0&&e.promptQueue.splice(s,1),e.log=e.log.filter(r=>!(r.kind==="stream"&&r.role==="user"&&r.queueEntry===n)),e.composerValue=t,N()}function fi(e){if(e&&typeof e=="object"&&"message"in e){let n=e.message;if(typeof n=="string")return n}return"unknown error"}function os(){let e=i.current;!e||!e.inTurn||kn("session/cancel",{sessionId:e.sessionId})}function as(){let e=i.current;if(!e)return;let n=!1;for(let t of e.promptQueue)(t.status==="queued"||t.status==="pending")&&(An(t),n=!0);e.inTurn&&kn("session/cancel",{sessionId:e.sessionId}),n&&N()}function In(e){i.current&&me("session/set_mode",{sessionId:i.current.sessionId,modeId:e})}function cs(e){i.current&&me("session/set_model",{sessionId:i.current.sessionId,modelId:e})}function en(e){for(let n of e.promptQueue)n.status!=="done"&&n.status!=="cancelled"&&(n.status="cancelled",n.messageId!==void 0&&e.queueByMessageId.delete(n.messageId))}function me(e,n){let t=i.current;if(!t||!t.ws||t.ws.readyState!==WebSocket.OPEN)return;let s=t.nextId=t.nextId??1;return t.nextId=s+1,t.ws.send(JSON.stringify({jsonrpc:"2.0",id:s,method:e,params:n})),s}function kn(e,n){let t=i.current;!t||!t.ws||t.ws.readyState!==WebSocket.OPEN||t.ws.send(JSON.stringify({jsonrpc:"2.0",method:e,params:n}))}function mi(e,n){let t=i.current;!t||!t.ws||t.ws.readyState!==WebSocket.OPEN||t.ws.send(JSON.stringify({jsonrpc:"2.0",id:e,result:n}))}function ls(e){if(i.current){if(e.method==="bridge/ready"){i.current.ready=!0,i.banner=null,i.current.reconnectAttempt=0;let n=e.params??{};typeof n.clientId=="string"&&(i.current.ownClientId=n.clientId);let s=n._meta?.["hydra-acp"],r=s?.queue;Array.isArray(r)&&Xt(r),s?.prompt?.amending===!0&&(i.current.daemonSupportsAmend=!0);let a=i.current.readyListeners;i.current.readyListeners=[];for(let c of a)try{c()}catch{}N();return}if(e.method==="bridge/error"){Nn({kind:"error",text:`Bridge error: ${e.params?.message??"?"}`}),N();return}if(e.method==="hydra-acp/session/closed"){i.current&&(i.current.ready=!1,en(i.current)),i.banner={kind:"warn",text:"Session is now cold \u2014 opening a new prompt will resurrect it."},N();return}if(e.method&&"id"in e){es(e),N();return}if(e.method){jt(e),N();return}if("id"in e&&e.id!==void 0&&i.current.ownPromptIds.has(String(e.id))){i.current.ownPromptIds.delete(String(e.id)),Tn(),N();return}if("id"in e&&e.id!==void 0){let n=i.current.responseHandlers.get(String(e.id));n&&(i.current.responseHandlers.delete(String(e.id)),n({result:e.result,error:e.error}))}}}function Rn(e,n){if(!i.current)return;let t=i.current.pendingPermissions.get(e);t&&(i.current.pendingPermissions.delete(e),i.current.log=i.current.log.filter(s=>!(s.kind==="perm"&&s.toolCallId===e)),mi(t.requestId,{outcome:n==="__cancel__"?{outcome:"cancelled"}:{outcome:"selected",optionId:n}}),N())}var us=[1e3,2e3,4e3,8e3,16e3,3e4],bi=5;function Ei(e,n){let t=encodeURIComponent(e);return n?`#/session/${t}?load=true`:`#/session/${t}`}var xn=!1;function ds(e){if(window.location.hash!==e){xn=!0;try{history.pushState(null,"",e||window.location.pathname+window.location.search)}finally{queueMicrotask(()=>{xn=!1})}}}function Mn(){if(xn)return;let n=window.location.hash.match(/^#\/session\/([^?]+)(?:\?(.*))?$/);if(n){let t=decodeURIComponent(n[1]),r=new URLSearchParams(n[2]??"").get("load")==="true";if(i.view==="chat"&&i.current?.sessionId===t)return;nn(t,r);return}i.view!=="list"&&On()}function nn(e,n){ds(Ei(e,n)),gs();let t=i.sessions.find(r=>r.sessionId===e),s={sessionId:e,title:t?.title??"",cwd:t?.cwd||"",agentId:t?.agentId||"",ws:null,ready:!1,log:[],toolCalls:new Map,pendingPermissions:new Map,pendingRequestById:new Map,responseHandlers:new Map,spinner:null,plan:null,mode:null,model:null,modes:[],models:[],contextUsed:null,contextSize:null,cost:null,fileOverlay:null,composerValue:"",busy:!1,recentOwnPrompts:[],history:[],historyIndex:null,historyDraft:null,_lastMetaFp:t?`${t.title}|${t.cwd}|${t.agentId}`:"",promptQueue:[],queueByMessageId:new Map,ownPromptIds:new Set,inTurn:!1,idleListeners:[],readyListeners:[],currentPlanEntry:null,daemonSupportsAmend:!1,loadOnConnect:n,reconnectAttempt:0};i.current=s,H({view:"chat"}),ps(s)}function ps(e){let n=new URL("/ws",location.href);n.protocol=location.protocol==="https:"?"wss:":"ws:",n.searchParams.set("session",e.sessionId),e.loadOnConnect&&n.searchParams.set("load","true");let t=new WebSocket(n.toString());e.ws=t,t.addEventListener("open",()=>{}),t.addEventListener("message",s=>{let r;try{r=JSON.parse(String(s.data))}catch{return}ls(r)}),t.addEventListener("close",()=>{!i.current||i.current.ws!==t||_i(i.current)}),t.addEventListener("error",()=>{})}function _i(e){e.ready=!1,en(e);let n=e.reconnectAttempt??0,t=us[Math.min(n,us.length-1)],s=n>=bi;H({banner:s?{kind:"bad",text:"Still disconnected \u2014 retrying\u2026"}:{kind:"warn",text:"Reconnecting\u2026"}}),e.reconnectTimer=setTimeout(()=>{!i.current||i.current!==e||(e.reconnectTimer=void 0,e.reconnectAttempt=n+1,hi(e),N(),ps(e))},t)}function hi(e){e.ws=null,e.ready=!1,e.log=[],e.toolCalls=new Map,e.pendingPermissions=new Map,e.pendingRequestById=new Map,e.responseHandlers=new Map,e.spinner=null,e.plan=null,e.mode=null,e.model=null,e.modes=[],e.models=[],e.contextUsed=null,e.contextSize=null,e.cost=null,e.busy=!1,e.recentOwnPrompts=[],e.promptQueue=[],e.queueByMessageId=new Map,e.ownPromptIds=new Set,e.inTurn=!1,e.idleListeners=[],e.readyListeners=[],e.currentPlanEntry=null,e.daemonSupportsAmend=!1,e.ownClientId=void 0,e.currentHeadMessageId=void 0,e.nextId=void 0}function On(){ds(""),gs(),H({view:"list",current:null})}function gs(){if(i.current&&(i.current.reconnectTimer&&(clearTimeout(i.current.reconnectTimer),i.current.reconnectTimer=void 0),i.current.ws)){try{i.current.ws.close()}catch{}i.current.ws=null}}var tn=new WeakSet;function hs(e){return"untitled"}function de(e){return e.replace(/^hydra_session_/,"")}function yi(e){if(!e)return;let n=e.lastIndexOf("/");return n===-1?e:e.slice(n+1)}function ys(e,n){let t=e||"?",s=yi(n);return s?`${t}\u2022${s}`:t}function wi(e,n=Date.now()){if(!e)return"?";let t=Date.parse(e);if(Number.isNaN(t))return"?";let s=Math.max(0,n-t),r=Math.floor(s/1e3);if(r<60)return"<1m";let o=Math.floor(r/60);if(o<60)return`${o}m`;let a=Math.floor(o/60);if(a<24)return`${a}h`;let c=Math.floor(a/24);if(c<14)return`${c}d`;let u=Math.floor(c/7);if(u<9)return`${u}w`;let d=Math.floor(c/30);return d<12?`${d}mo`:`${Math.floor(c/365)}y`}function fs(e){return Number.isFinite(e)?e<1e3?String(e):e<1e6?(e/1e3).toFixed(e<1e4?1:0).replace(/\.0$/,"")+"k":(e/1e6).toFixed(2).replace(/\.?0+$/,"")+"M":"?"}function ms(e){let n=null,t="USD";if(typeof e=="number")n=e;else if(e&&typeof e=="object"){let r=e;if(typeof r.amount=="number")n=r.amount;else if(typeof r.total=="number")n=r.total;else if(r.total&&typeof r.total=="object"){let o=r.total;typeof o.amount=="number"&&(n=o.amount),typeof o.currency=="string"&&(t=o.currency)}typeof r.currency=="string"&&(t=r.currency)}if(n===null)return null;let s=n<.01?4:n<1?3:2;return t==="USD"?`$${n.toFixed(s)}`:`${n.toFixed(s)} ${t}`}function ws(e,n){n.banner&&e.appendChild(l("div",{class:"banner "+n.banner.kind},n.banner.text)),n.view==="list"?(e.appendChild(Si()),e.appendChild(Ni())):n.view==="chat"&&n.current&&(e.appendChild(Pi(n.current)),n.current.fileOverlay&&e.appendChild(Ji(n.current))),n.modal&&(n.modal.kind==="session"?e.appendChild(Mi(n.modal)):n.modal.kind==="modes"&&n.current?e.appendChild(Es("Mode",n.current.modes,n.current.mode,t=>In(t.id))):n.modal.kind==="models"&&n.current&&e.appendChild(Es("Model",n.current.models,n.current.model,t=>cs(t.id))))}function Si(){return l("div",{class:"topbar"},l("span",{class:"title"},"hydra-acp-browser"),l("span",{class:"pill clickable",onclick:()=>H({groupBy:i.groupBy==="project"?"recent":"project"})},`group: ${i.groupBy}`),l("span",{class:"pill clickable",title:"Click to toggle showing disk-only sessions",onclick:()=>{H({showCold:!i.showCold})}},i.showCold?"all":"warm"),vi(),l("span",{class:"spacer"}),l("button",{onclick:ki,title:"Import a *.hydra bundle from disk"},"Import"),l("button",{onclick:xi},"New Session"))}function vi(){let e=new Set;for(let r of i.sessions)r.importedFromMachine&&!r.upstreamSessionId&&e.add(r.importedFromMachine);let n=[...e].sort(),t=l("select",{class:"host-select",title:"Filter sessions by origin host",onchange:r=>{let o=r.target.value;H({hostFilter:o})}}),s=(r,o)=>{let a=document.createElement("option");a.value=r,a.textContent=o,i.hostFilter===r&&(a.selected=!0),t.appendChild(a)};s("__local","host: local");for(let r of n)s(r,`host: ${r}`);return s("__all","host: all"),i.hostFilter!=="__local"&&i.hostFilter!=="__all"&&!n.includes(i.hostFilter)&&(t.value=i.hostFilter),t}function Ni(){let e=i.showCold?i.sessions:i.sessions.filter(r=>r.status!=="cold");i.hostFilter==="__local"?e=e.filter(r=>!r.importedFromMachine||!!r.upstreamSessionId):i.hostFilter!=="__all"&&(e=e.filter(r=>r.importedFromMachine===i.hostFilter&&!r.upstreamSessionId));let n=i.showCold?0:i.sessions.filter(r=>r.status==="cold").length,t=Ti(e,i.groupBy),s=l("div",{class:"list"});if(e.length===0){let r;i.sessions.length===0?r="No sessions. Use + to create one, or run `hydra-acp launch <agent>` from your editor.":i.hostFilter==="__local"?r="No local sessions. Switch the host filter to see imported sessions.":i.hostFilter!=="__all"?r=`No sessions from ${i.hostFilter}. Try a different host.`:r=`No warm sessions. ${n} cold session${n===1?"":"s"} hidden \u2014 click "warm" to switch to "all".`,s.appendChild(l("div",{class:"empty"},r))}for(let r of t){let o=l("div",{class:"group"});r.label&&o.appendChild(l("h2",null,r.label));for(let a of r.sessions)o.appendChild(Ai(a,r.label===null));s.appendChild(o)}return s}function bs(e,n){let t=(n.status==="warm"?1:0)-(e.status==="warm"?1:0);return t!==0?t:String(n.updatedAt||"").localeCompare(String(e.updatedAt||""))}function Ti(e,n){if(n==="recent")return[{label:null,sessions:e.slice().sort(bs)}];let t=new Map;for(let r of e){let o=r.cwd||"(unknown)";t.has(o)||t.set(o,[]),t.get(o).push(r)}let s=[];for(let[r,o]of[...t.entries()].sort((a,c)=>a[0].localeCompare(c[0])))o.sort(bs),s.push({label:r,sessions:o});return s}function Ai(e,n){let t=e.title||hs(e.sessionId),s=[de(e.sessionId),ys(e.agentId,e.currentModel),`age ${wi(e.updatedAt)}`];n&&s.push(e.cwd||"?");let r=s.join(" \xB7 ");return l("div",{class:"card",onclick:o=>{o.target.closest("button")||nn(e.sessionId,e.status==="cold")}},l("div",{class:"meta"},l("div",{class:"row1"},t),l("div",{class:"row2"},r)),l("div",{class:"badges"},l("span",{class:`badge ${e.status==="cold"?"cold":"warm"}`,title:e.status==="cold"?"Disk-only \u2014 opening will resurrect the session":"Live in-memory session"},e.status==="cold"?"cold":"warm"),l("span",{class:"badge"},`${e.attachedClients??0} attached`),...e.importedFromMachine&&!e.upstreamSessionId?[l("span",{class:"badge imported",title:`Passive mirror imported from ${e.importedFromMachine} \u2014 attach to start working on it here.`},`\u2190 ${e.importedFromMachine}`)]:[]),l("div",{class:"actions"},l("button",{class:"ghost",title:"Export session as *.hydra bundle",onclick:o=>{o.stopPropagation(),Ss(e.sessionId)}},"\u2193"),l("button",{class:"danger",onclick:o=>{o.stopPropagation(),Ii(e)}},"\xD7")))}async function Ii(e){if(confirm(`Kill session ${e.title?`"${e.title}" (${de(e.sessionId)})`:de(e.sessionId)}?`))try{await ce("/api/kill",{method:"POST",body:JSON.stringify({sessionId:e.sessionId})}),be()}catch(n){H({banner:{kind:"bad",text:"kill failed: "+n.message}})}}function Ss(e){let n=document.createElement("a");n.href=`/api/sessions/${encodeURIComponent(e)}/export`,n.download="",n.rel="noopener",document.body.appendChild(n),n.click(),n.remove()}function ki(){let e=document.createElement("input");e.type="file",e.accept=".hydra,application/json",e.style.display="none",e.onchange=()=>{let n=e.files&&e.files[0];document.body.removeChild(e),n&&Ri(n)},document.body.appendChild(e),e.click()}async function Ri(e){let n;try{let s=await e.text();n=JSON.parse(s)}catch(s){H({banner:{kind:"bad",text:"import: bundle is not valid JSON: "+s.message}});return}let t=await Ns(n);if(t.ok){let s=t.result;H({banner:{kind:"good",text:s.replaced?`Replaced ${de(s.sessionId)} from bundle`:`Imported as ${de(s.sessionId)}`}}),be();return}if(t.status===409&&t.existingSessionId){let s=t.existingSessionId;if(!confirm(`This session is already imported locally as ${de(s)}.
|
|
211
211
|
|
|
212
|
-
Replace it? (Any live attach will be closed.)`)){H({banner:{kind:"warn",text:"Import cancelled."}});return}try{let o=await
|
|
213
|
-
`);return}f.preventDefault(),Oe()}},m=l("textarea",{"data-focus-key":"composer",placeholder:e.ready?"Message\u2026":"Connecting\u2026",rows:"1",onkeydown:p,oninput:f=>{let _=f.target;e.composerValue=_.value,e.historyIndex!==null&&(e.historyIndex=null,e.historyDraft=null),u(_)}},e.composerValue);e.composerValue&&e.composerValue.length>0&&queueMicrotask(()=>u(m));let b=[];e.inTurn?(e.daemonSupportsAmend&&e.currentHeadMessageId!==void 0&&b.push(l("button",{onclick:
|
|
214
|
-
`).length,c=l("div",{class:"code-gutter"});for(let u=1;u<=a;u++){let d=u;c.appendChild(l("div",{class:"ln",onclick:()=>Vi(
|
|
215
|
-
`).slice(1,5).map(
|
|
216
|
-
`);e.textContent=`renders: ${
|
|
217
|
-
${n}`}function no(){let e=document.getElementById("app");if(!e)return;let n=document.activeElement,t=null,
|
|
212
|
+
Replace it? (Any live attach will be closed.)`)){H({banner:{kind:"warn",text:"Import cancelled."}});return}try{let o=await vs(n,{replace:!0});H({banner:{kind:"good",text:`Replaced ${de(o.sessionId)} from bundle`}}),be()}catch(o){H({banner:{kind:"bad",text:"import failed: "+o.message}})}return}H({banner:{kind:"bad",text:"import failed: "+t.message}})}function xi(){let e=i.defaultAgent&&i.agents.some(n=>n.id===i.defaultAgent);H({modal:{kind:"session",cwd:i.defaultCwd??"",agentId:e?i.defaultAgent:i.agents[0]?.id??"",name:"",prompt:"",err:null,busy:!1}})}function Mi(e){return l("div",{class:"modal-bg",onclick:n=>{n.target.classList.contains("modal-bg")&&Ce()}},l("div",{class:"modal"},l("h2",null,"New session"),l("div",{class:"field"},l("label",{for:"f-cwd"},"cwd"),l("input",{id:"f-cwd","data-focus-key":"session-modal-cwd",value:e.cwd,placeholder:"/home/you/dev/project",oninput:n=>{e.cwd=n.target.value}})),l("div",{class:"field"},l("label",{for:"f-agent"},"agent"),Oi(e)),l("div",{class:"field"},l("label",{for:"f-name"},"name (optional)"),l("input",{id:"f-name","data-focus-key":"session-modal-name",value:e.name,placeholder:"feature-x",oninput:n=>{e.name=n.target.value}})),l("div",{class:"field"},l("label",{for:"f-prompt"},"first prompt (optional)"),l("textarea",{id:"f-prompt","data-focus-key":"session-modal-prompt",rows:"4",placeholder:"What should the agent do first?",oninput:n=>{e.prompt=n.target.value}},e.prompt)),e.err?l("div",{class:"err"},e.err):null,l("div",{class:"actions"},l("button",{onclick:Ce,disabled:e.busy},"Cancel"),l("button",{class:"primary",onclick:Ci,disabled:e.busy},e.busy?"Creating\u2026":"Create"))))}function Oi(e){let n=l("select",{id:"f-agent","data-focus-key":"session-modal-agent",onchange:t=>{e.agentId=t.target.value}});i.agents.length===0&&n.appendChild(l("option",{value:""},"(default)"));for(let t of i.agents){let s=l("option",{value:t.id},t.id);t.id===e.agentId&&s.setAttribute("selected",""),n.appendChild(s)}return n}async function Ci(){let e=i.modal;if(!(!e||e.kind!=="session")){if(!e.cwd){e.err="cwd is required",N();return}e.busy=!0,e.err=null,N();try{let n={cwd:e.cwd};e.agentId&&(n.agentId=e.agentId),e.name&&(n.name=e.name),e.prompt&&(n.prompt=e.prompt);let t=await ce("/api/sessions",{method:"POST",body:JSON.stringify(n)});Ce(),be(),t&&t.sessionId&&nn(t.sessionId,!1)}catch(n){e.err=n.message,e.busy=!1,N()}}}function Ce(){H({modal:null})}function Li(){let e=i.current;if(!e?.modes||e.modes.length===0)return;let n=e.modes.findIndex(s=>s.id===e.mode),t=e.modes[(n+1)%e.modes.length];e.mode=t.id,N(),In(t.id)}function Di(){!i.current?.models||i.current.models.length===0||H({modal:{kind:"models"}})}function Es(e,n,t,s){return l("div",{class:"modal-bg",onclick:r=>{r.target.classList.contains("modal-bg")&&Ce()}},l("div",{class:"modal"},l("h2",null,e),...n.map(r=>l("div",{class:"card",onclick:()=>{s(r),Ce()}},l("div",{class:"meta"},l("div",{class:"row1"},r.name||r.id),l("div",{class:"row2"},r.id)),r.id===t?l("span",{class:"badge warm"},"current"):null))))}function Pi(e){let n=i.sessions.find(f=>f.sessionId===e.sessionId),t=n?.title||e.title||hs(e.sessionId),s=n?.cwd||e.cwd,r=n?.agentId||e.agentId,o=e.model||n?.currentModel,a=l("div",{class:"chat-header"},l("button",{class:"ghost",onclick:On},"\u2190"),l("div",{class:"info"},l("div",{class:"row1"},t),l("div",{class:"row2"},`${de(e.sessionId)} \xB7 ${ys(r,o)} \xB7 ${s||"?"}`)),e.ready?e.inTurn?l("span",{class:"pill working",title:"Agent is working"},l("span",{class:"dot"},"\u25CF"),"working"):l("span",{class:"pill ready",title:"Ready for a prompt"},l("span",{class:"dot"},"\u25CF"),"ready"):l("span",{class:"pill"},"connecting\u2026"),e.mode?l("span",{class:"pill clickable",onclick:Li},"mode: "+e.mode):null,e.model?l("span",{class:"pill clickable",onclick:Di},"model: "+e.model):null,e.contextUsed!=null&&e.contextSize?l("span",{class:"pill",title:`${e.contextUsed.toLocaleString()} / ${e.contextSize.toLocaleString()} context tokens`},`${fs(e.contextUsed)}/${fs(e.contextSize)} tokens`):null,ms(e.cost)?l("span",{class:"pill",title:"Session cost so far"},ms(e.cost)):null,l("button",{onclick:Wi},"Files"),l("button",{title:"Export this session as a *.hydra bundle",onclick:()=>Ss(e.sessionId)},"Export")),c=l("div",{class:"chat-body"});for(let f of e.log)c.appendChild(Bi(f));let u=f=>{f.style.height="auto",f.style.height=f.scrollHeight+"px"},d=(f,_)=>{f.value=_,e.composerValue=_,u(f),f.setSelectionRange(_.length,_.length)},p=f=>{if(f.isComposing)return;let _=f.target;if(f.key==="ArrowUp"&&!f.shiftKey&&!f.altKey&&!f.ctrlKey&&!f.metaKey&&_.selectionStart===0&&_.selectionEnd===0&&e.history.length>0){let S=e.historyIndex===null?0:Math.min(e.history.length-1,e.historyIndex+1);e.historyIndex===null&&(e.historyDraft=e.composerValue),e.historyIndex=S,f.preventDefault(),d(_,e.history[S]);return}if(f.key==="ArrowDown"&&!f.shiftKey&&!f.altKey&&!f.ctrlKey&&!f.metaKey&&_.selectionStart===_.value.length&&_.selectionEnd===_.value.length&&e.historyIndex!==null){if(f.preventDefault(),e.historyIndex>0)e.historyIndex-=1,d(_,e.history[e.historyIndex]);else{let S=e.historyDraft??"";e.historyIndex=null,e.historyDraft=null,d(_,S)}return}if(f.key==="Enter"&&!f.shiftKey){if(f.altKey||f.ctrlKey||f.metaKey){f.preventDefault(),ji(_,`
|
|
213
|
+
`);return}f.preventDefault(),Oe()}},m=l("textarea",{"data-focus-key":"composer",placeholder:e.ready?"Message\u2026":"Connecting\u2026",rows:"1",onkeydown:p,oninput:f=>{let _=f.target;e.composerValue=_.value,e.historyIndex!==null&&(e.historyIndex=null,e.historyDraft=null),u(_)}},e.composerValue);e.composerValue&&e.composerValue.length>0&&queueMicrotask(()=>u(m));let b=[];e.inTurn?(e.daemonSupportsAmend&&e.currentHeadMessageId!==void 0&&b.push(l("button",{onclick:is,title:"Cancel the current turn and replace its prompt"},"Amend")),b.push(l("button",{class:"primary",onclick:Oe,title:"Queue this prompt to run after the current turn"},"Enqueue"))):b.push(l("button",{class:"primary",onclick:Oe},"Send"));let h=l("div",{class:"composer"},m,l("button",{class:"stop",onclick:as,title:"Cancel current turn"},"Stop"),...b);return l("div",{class:"chat"},a,c,h)}function Bi(e){if(e.kind==="stream"){let n=e.role==="thought",t=e.role==="user"?"msg user":n?"msg system":"msg agent",s=n&&tn.has(e),r=l("div",{class:s?t+" collapsed":t});n&&r.addEventListener("click",()=>{if(!!tn.has(e)){tn.delete(e),N();return}let c=document.querySelector(".chat-body"),u=c?.getBoundingClientRect(),d=r.getBoundingClientRect(),p=d.top-(u?.top??0)+(c?.scrollTop??0),b=!u||d.top>=u.top&&d.top<u.bottom?c?.scrollTop??0:p;tn.add(e),N(),requestAnimationFrame(()=>{let h=document.querySelector(".chat-body");h&&(h.scrollTop=b)})});let o=e.queueEntry;if(o&&o.amendedByMessageId!==void 0&&o.status==="amended"&&r.classList.add("amended-target"),o&&(o.status==="queued"||o.status==="pending"||o.status==="cancelled"||o.status==="editing"||o.status==="amended")&&r.appendChild($i(o)),o&&o.amendsMessageId!==void 0&&r.appendChild(l("span",{class:"amend-badge",title:"Merged amend \u2014 replaces the previous, cancelled prompt"},"+")),o&&o.status==="editing")r.appendChild(Hi(o,a=>{e.text=a}));else{let a=l("div",{class:"body"});a.innerHTML=dn(e.text),o&&o.status==="cancelled"&&(a.style.textDecoration="line-through",a.style.opacity="0.6"),r.appendChild(a)}return r}if(e.kind==="system")return l("div",{class:"msg system"},e.text);if(e.kind==="error")return l("div",{class:"msg error"},e.text);if(e.kind==="spinner")return zi(e.spinner);if(e.kind==="perm"){if(!i.current)return document.createTextNode("");let n=i.current.pendingPermissions.get(e.toolCallId);return n?qi(n):document.createTextNode("")}return e.kind==="plan"?Gi(e.entries):e.kind==="exit-plan-mode"?Fi(e):document.createTextNode("")}function Fi(e){let n=l("div",{class:"msg agent plan-markdown"});n.appendChild(l("div",{class:"plan-header"},"\u{1F4CB} Plan"));let t=l("div",{class:"body"});t.innerHTML=dn(e.plan),n.appendChild(t);let s=Ui(e.status);return s!==null&&n.appendChild(s),n}function Ui(e){if(e===void 0)return null;switch(e){case"completed":case"succeeded":case"ok":return l("div",{class:"plan-status plan-status-ok"},"\u2713 Approved");case"failed":case"error":case"rejected":return l("div",{class:"plan-status plan-status-fail"},"\u2717 Rejected");case"cancelled":return l("div",{class:"plan-status plan-status-cancelled"},"\u229D Cancelled");case"pending":case"in_progress":case"running":case"updated":return l("div",{class:"plan-status plan-status-pending"},"awaiting approval\u2026");default:return null}}function $i(e){if(e.status==="queued"||e.status==="pending"){let n=Math.max(1,e.aheadAtEnqueue);return l("div",{class:"queue-chip queue-queued"},l("span",null,n===1?"queued \xB7 waiting on 1 turn":`queued \xB7 waiting on ${n} turns`),l("button",{class:"queue-edit",onclick:()=>{e.status="editing",N()},title:"Edit before sending"},"\u270E"),l("button",{class:"queue-cancel",onclick:()=>An(e),title:"Cancel before sending"},"\xD7"))}return e.status==="editing"?l("div",{class:"queue-chip queue-editing"},l("span",null,"editing \xB7 enter to save \xB7 esc to cancel edit")):e.status==="processing"?l("div",{class:"queue-chip queue-processing"},l("span",{class:"dot"}),l("span",null,"processing")):e.status==="cancelled"?l("div",{class:"queue-chip queue-cancelled"},l("span",null,"cancelled")):e.status==="amended"?l("div",{class:"queue-chip queue-amended"},l("span",null,"amended \u2014 merged into the next prompt")):document.createTextNode("")}function Hi(e,n){let t=l("textarea",{class:"queue-edit-area",rows:"3"});return t.value=e.text,t.addEventListener("keydown",s=>{if(s.key==="Enter"&&!s.shiftKey){s.preventDefault();let r=t.value;e.text=r,n(r),e.status="queued",rs(e,r),N()}else s.key==="Escape"&&(s.preventDefault(),e.status="queued",N())}),queueMicrotask(()=>{t.focus(),t.setSelectionRange(t.value.length,t.value.length)}),l("div",{class:"queue-editor"},t)}function zi(e){let n=l("button",{class:"queue-cancel",onclick:s=>{s.stopPropagation(),os()},title:"Cancel this turn"},"\xD7");if(!e.expanded)return l("div",{class:"spinner",onclick:()=>{e.expanded=!0,N()}},l("div",{class:"head"},l("span",{class:"dot"}),l("span",null,e.toolCallIds.length===0?"thinking\u2026":`working \u2014 ${e.toolCallIds.length} tool call${e.toolCallIds.length===1?"":"s"}`),n));let t=e.toolCallIds.map(s=>{let r=i.current?.toolCalls.get(s);if(!r)return null;let o=r.status==="completed"||r.status==="success"?"\u2705":r.status==="failed"||r.status==="error"?"\u274C":"\u25B6";return l("li",null,l("span",{class:"icon"},o),document.createTextNode(" "+r.title))});return l("div",{class:"spinner expanded",onclick:()=>{e.expanded=!1,N()}},l("div",{class:"head"},l("span",{class:"dot"}),l("span",null,"working"),n),l("ul",null,t))}function Ki(e){let n=p=>typeof p=="string"&&p.length>0?p:void 0,t=[],s=(p,m)=>l("div",{class:"detail"},l("span",{class:"k"},p),l("code",null,m)),r=n(e.kind);r&&t.push(s("kind",r));let o=new Set,a=[],c=p=>{let m=n(p);m&&!o.has(m)&&(o.add(m),a.push(m))},u=e.locations;if(Array.isArray(u))for(let p of u)p&&typeof p=="object"&&c(p.path);let d=e.rawInput&&typeof e.rawInput=="object"?e.rawInput:void 0;d&&(c(d.file_path),c(d.filePath),c(d.path));for(let p of a)t.push(s("path",p));if(d){let p=n(d.command);p&&t.push(s("command",p));let m=n(d.url);m&&t.push(s("url",m));let b=n(d.description);b&&t.push(l("div",{class:"detail note"},b))}return t}function qi(e){let n=e.toolCall||{};return l("div",{class:"perm"},l("div",{class:"title"},"\u{1F512} Permission requested"),l("div",{class:"desc"},n.title||n.name||"tool call"),Ki(n),l("div",{class:"opts"},...e.options.map(t=>l("button",{class:t.kind?.startsWith("allow")?"primary":t.kind?.startsWith("reject")?"danger":"",onclick:()=>Rn(e.toolCallId,t.optionId)},t.name||t.optionId)),l("button",{onclick:()=>Rn(e.toolCallId,"__cancel__")},"Cancel")))}function Gi(e){return Array.isArray(e)?l("div",{class:"msg agent"},l("div",{class:"body"},l("strong",null,"Plan")),l("ul",null,...e.map(n=>l("li",null,`${n.status==="completed"?"\u2713":n.status==="in_progress"?"\u25B8":"\xB7"} ${n.content||n.title||""}`)))):document.createTextNode("")}function Wi(){i.current&&(i.current.fileOverlay={path:"",entries:[],preview:null,err:null},N(),Le(""))}async function Le(e){if(i.current)try{let n=await ce("/api/files/list",{method:"POST",body:JSON.stringify({sessionId:i.current.sessionId,path:e})});i.current.fileOverlay={path:n.path,entries:n.entries??[],preview:null,err:null},N()}catch(n){i.current.fileOverlay={path:e,entries:[],preview:null,err:n.message},N()}}async function Yi(e){if(i.current)try{let n=await ce("/api/files/read",{method:"POST",body:JSON.stringify({sessionId:i.current.sessionId,path:e})}),t=i.current.fileOverlay;i.current.fileOverlay={path:t.path,entries:t.entries,preview:{path:e,content:n.content},err:null},N()}catch(n){i.current.fileOverlay&&(i.current.fileOverlay={...i.current.fileOverlay,err:n.message}),N()}}function _s(){i.current&&(i.current.fileOverlay=null,N())}function Zi(e){if(!i.current?.fileOverlay)return;let n=i.current.fileOverlay,t=n.path?`${n.path}/${e.name}`:e.name;e.kind==="dir"?Le(t):e.kind==="file"&&Yi(t)}function Qi(e){let n=e?e.split("/").filter(Boolean):[],t=[l("span",{class:"crumb",onclick:()=>Le("")},".")],s="";for(let r of n){s=s?`${s}/${r}`:r;let o=s;t.push(document.createTextNode(" / ")),t.push(l("span",{class:"crumb",onclick:()=>Le(o)},r))}return l("div",{class:"crumbs"},t)}function Vi(e,n){if(!i.current)return;let t=`${e}:${n}`,s=i.current.composerValue;i.current.composerValue=s?`${s} ${t}`:t,N()}function Xi(){i.current?.fileOverlay&&(i.current.fileOverlay.preview=null,N())}function Ji(e){let n=e.fileOverlay;if(!n)return document.createTextNode("");let t;if(n.preview){let{path:s,content:r}=n.preview,o=Yt(r,s)??ee(r),a=r.split(`
|
|
214
|
+
`).length,c=l("div",{class:"code-gutter"});for(let u=1;u<=a;u++){let d=u;c.appendChild(l("div",{class:"ln",onclick:()=>Vi(s,d)},String(d)))}t=l("div",{class:"preview"},l("div",{class:"crumbs"},l("span",{class:"crumb",onclick:()=>Xi()},"\u2190 back to listing"),document.createTextNode(` ${s}`)),l("div",{class:"code-view"},c,l("pre",{},l("code",{class:"hljs",html:o}))))}else t=l("div",{class:"body"},n.err?l("div",{class:"msg error"},n.err):null,n.path?l("div",{class:"entry",onclick:()=>Le(n.path.split("/").slice(0,-1).join("/"))},l("span",{class:"icon"},"\u25B8"),l("span",{class:"name"},".."),l("span",{class:"size"},"")):null,...n.entries.map(s=>l("div",{class:"entry",onclick:()=>Zi(s)},l("span",{class:"icon"},s.kind==="dir"?"\u25B8":"\xB7"),l("span",{class:"name"},s.name),l("span",{class:"size"},s.kind==="file"?`${s.size}b`:""))));return l("div",{class:"modal-bg",onclick:s=>{s.target.classList.contains("modal-bg")&&_s()}},l("div",{class:"modal file-modal"},l("div",{class:"topbar",style:"border-bottom:1px solid var(--border)"},l("span",{class:"title"},"Files"),l("span",{class:"pill"},e.cwd),l("span",{class:"spacer"}),l("button",{onclick:_s},"\xD7")),Qi(n.path),l("div",{class:"files"},t)))}function ji(e,n){e.focus();let t=!1;if(typeof document.execCommand=="function")try{t=document.execCommand("insertText",!1,n)}catch{t=!1}if(!t){let s=e.selectionStart??e.value.length,r=e.selectionEnd??e.value.length,o=e.value.slice(0,s),a=e.value.slice(r);e.value=o+n+a;let c=s+n.length;e.setSelectionRange(c,c),e.dispatchEvent(new Event("input",{bubbles:!0}))}}var Cn=!1,Ts=(()=>{try{return new URLSearchParams(window.location.search).get("debug")==="1"}catch{return!1}})(),As=0,De=[];function N(){if(Ts){let t=(new Error().stack??"").split(`
|
|
215
|
+
`).slice(1,5).map(s=>s.trim()).join(" \u2190 ");De.push(`${new Date().toISOString().slice(11,23)} ${t}`),De.length>20&&(De=De.slice(-20))}Cn||(Cn=!0,requestAnimationFrame(()=>{Cn=!1,no(),Ts&&(As+=1,eo())}))}function eo(){let e=document.getElementById("__render_debug__");e||(e=document.createElement("div"),e.id="__render_debug__",e.style.cssText="position:fixed;bottom:0.5rem;right:0.5rem;z-index:9999;background:rgba(0,0,0,0.85);color:#9fd;padding:0.4rem 0.6rem;font:11px/1.3 ui-monospace,monospace;border:1px solid #6ea8fe;border-radius:6px;max-width:30rem;max-height:14rem;overflow:auto;pointer-events:none;white-space:pre-wrap",document.body.appendChild(e));let n=De.slice(-5).join(`
|
|
216
|
+
`);e.textContent=`renders: ${As}
|
|
217
|
+
${n}`}function no(){let e=document.getElementById("app");if(!e)return;let n=document.activeElement,t=null,s=null,r=null;if(n&&n!==document.body&&n.dataset&&n.dataset.focusKey&&(t=n.dataset.focusKey,"selectionStart"in n))try{s=n.selectionStart,r=n.selectionEnd}catch{}let o=e.querySelector(".chat-body"),a=null,c=!0;o&&(a=o.scrollTop,c=o.scrollHeight-o.scrollTop-o.clientHeight<50);let u=e.querySelector(".list"),d=u?u.scrollTop:null,p=e.querySelector(".files .body"),m=p?p.scrollTop:null,b=e.querySelector(".files .preview"),h=b?b.scrollTop:null;e.replaceChildren(),ws(e,i);let f=e.querySelector(".chat-body");f&&(a===null||c?f.scrollTop=f.scrollHeight:f.scrollTop=a);let _=e.querySelector(".list");_&&d!==null&&(_.scrollTop=d);let S=e.querySelector(".files .body");S&&m!==null&&(S.scrollTop=m);let A=e.querySelector(".files .preview");if(A&&h!==null&&(A.scrollTop=h),t){let k=e.querySelector(`[data-focus-key="${CSS.escape(t)}"]`);if(k){k.focus();let P=k;if(s!==null&&typeof P.setSelectionRange=="function")try{P.setSelectionRange(s,r)}catch{}}}}var i={view:"list",sessions:[],agents:[],defaultAgent:null,defaultCwd:null,groupBy:"project",showCold:!1,hostFilter:"__local",banner:null,modal:null,current:null};function H(e){let n=!1;for(let t of Object.keys(e)){let s=e[t];Ln(i[t],s)||(i[t]=s,n=!0)}n&&N()}function Ln(e,n){return e===n?!0:e===null||n===null||typeof e!=typeof n||typeof e!="object"?!1:JSON.stringify(e)===JSON.stringify(n)}function to(){let e=window.getSelection();return!e||e.isCollapsed?!1:e.toString().length>0}async function ce(e,n){let t=await fetch(e,{credentials:"same-origin",headers:{"Content-Type":"application/json"},...n});if(!t.ok){let s=`${t.status} ${t.statusText}`;try{let r=await t.json();r&&r.error&&(s=r.error)}catch{}throw new Error(s)}return t.status===204?null:await t.json()}var Dn=null;async function be(){try{let t=(await ce("/api/sessions")).sessions??[],s=i.banner!==null,r=!Ln(i.sessions,t);if(i.sessions=t,i.banner=null,!r&&!s||!s&&to()||!s&&i.modal)return;if(i.view==="list"||s)N();else if(i.view==="chat"&&i.current){let o=i.sessions.find(c=>c.sessionId===i.current.sessionId),a=o?`${o.title}|${o.cwd}|${o.agentId}|${o.currentModel}`:"";a!==i.current._lastMetaFp&&(i.current._lastMetaFp=a,N())}}catch(e){H({banner:{kind:"bad",text:"session list failed: "+e.message}})}}function Is(){Dn&&clearInterval(Dn),be(),Dn=setInterval(()=>{be()},2e3)}async function ks(){try{let e=await ce("/api/agents");H({agents:e.agents??[]})}catch(e){H({banner:{kind:"warn",text:"agents unavailable: "+e.message}})}}async function Rs(){try{let e=await ce("/api/config");H({defaultAgent:e.defaultAgent??null,defaultCwd:e.defaultCwd??null})}catch{}}async function vs(e,n={}){return ce("/api/sessions/import",{method:"POST",body:JSON.stringify({bundle:e,replace:n.replace===!0})})}async function Ns(e){let n=await fetch("/api/sessions/import",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({bundle:e})});if(n.ok)return{ok:!0,result:await n.json()};let t,s=`${n.status} ${n.statusText}`;try{let r=await n.json();r.existingSessionId&&(t=r.existingSessionId),r.error&&(s=r.error)}catch{}return{ok:!1,status:n.status,message:s,existingSessionId:t}}window.addEventListener("DOMContentLoaded",()=>{Is(),ks(),Rs(),Mn(),N()});window.addEventListener("hashchange",()=>{Mn()});})();
|
|
218
218
|
</script>
|
|
219
219
|
</body>
|
|
220
220
|
</html>
|