agent-workbench 0.5.2 → 0.5.4
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/README.md +398 -390
- package/dist/server.js +69 -31
- package/dist/web/assets/{highlight-C6RpQUgN.js → highlight-BeEbartE.js} +1 -1
- package/dist/web/assets/index-D4OE_EfT.css +32 -0
- package/dist/web/assets/index-zFKk_FJ_.js +139 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/index-CrEDljyV.js +0 -139
- package/dist/web/assets/index-zo2-uEwR.css +0 -32
package/dist/server.js
CHANGED
|
@@ -4351,19 +4351,30 @@ async function readSettings(file) {
|
|
|
4351
4351
|
return null;
|
|
4352
4352
|
}
|
|
4353
4353
|
}
|
|
4354
|
+
function levelOf(value) {
|
|
4355
|
+
if (typeof value !== "object" || value === null) return null;
|
|
4356
|
+
const level = value["effortLevel"];
|
|
4357
|
+
return typeof level === "string" && level.length > 0 ? level : null;
|
|
4358
|
+
}
|
|
4354
4359
|
function effortFor(model2, modelSettings) {
|
|
4355
4360
|
if (typeof modelSettings !== "object" || modelSettings === null) return null;
|
|
4361
|
+
const entries = Object.entries(modelSettings);
|
|
4362
|
+
let own = null;
|
|
4363
|
+
for (const entry of entries) {
|
|
4364
|
+
if (entry[0].length === 0 || !model2.includes(entry[0])) continue;
|
|
4365
|
+
if (own === null || entry[0].length > own[0].length) own = entry;
|
|
4366
|
+
}
|
|
4367
|
+
if (own !== null) return levelOf(own[1]);
|
|
4356
4368
|
const family = FAMILIES.find((candidate) => model2.includes(candidate));
|
|
4357
4369
|
if (family === void 0) return null;
|
|
4358
|
-
for (const [id, value] of
|
|
4370
|
+
for (const [id, value] of entries) {
|
|
4359
4371
|
if (!id.includes(family)) continue;
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
if (typeof level === "string" && level.length > 0) return level;
|
|
4372
|
+
const level = levelOf(value);
|
|
4373
|
+
if (level !== null) return level;
|
|
4363
4374
|
}
|
|
4364
4375
|
return null;
|
|
4365
4376
|
}
|
|
4366
|
-
async function readAgentDefaults(cwd) {
|
|
4377
|
+
async function readAgentDefaults(cwd, sessionModel = null) {
|
|
4367
4378
|
const withWindow = (configured) => ({
|
|
4368
4379
|
...configured,
|
|
4369
4380
|
contextWindow: NO_OBSERVATIONS.windowForConfigured(configured.model)
|
|
@@ -4378,7 +4389,8 @@ async function readAgentDefaults(cwd) {
|
|
|
4378
4389
|
if (settings2 === null) continue;
|
|
4379
4390
|
const { model: model2 } = settings2;
|
|
4380
4391
|
if (typeof model2 !== "string" || model2.length === 0) continue;
|
|
4381
|
-
|
|
4392
|
+
const resumed = sessionModel !== null && FAMILIES.some((family) => sessionModel.includes(family)) ? sessionModel : model2;
|
|
4393
|
+
return withWindow({ model: model2, effort: effortFor(resumed, settings2.modelSettings) });
|
|
4382
4394
|
}
|
|
4383
4395
|
return withWindow({ model: null, effort: null });
|
|
4384
4396
|
}
|
|
@@ -6355,7 +6367,7 @@ function createClaudeCodeAdapter() {
|
|
|
6355
6367
|
},
|
|
6356
6368
|
history: createClaudeCodeHistory(variants),
|
|
6357
6369
|
status,
|
|
6358
|
-
defaults: (cwd) => readAgentDefaults(cwd),
|
|
6370
|
+
defaults: (cwd, sessionModel) => readAgentDefaults(cwd, sessionModel ?? null),
|
|
6359
6371
|
/** La carpeta de la CLI. No se lista ni se entra: regla 2.1. */
|
|
6360
6372
|
protectedDirs: () => [path21.join(homedir5(), ".claude")],
|
|
6361
6373
|
dispose: () => status.dispose()
|
|
@@ -15748,6 +15760,15 @@ function draftOwnerOf(descriptor) {
|
|
|
15748
15760
|
if (descriptor.sessionId.length === 0) return null;
|
|
15749
15761
|
return { agent: descriptor.agent, sessionId: descriptor.sessionId };
|
|
15750
15762
|
}
|
|
15763
|
+
function draftEntriesOf(descriptors, store, owner) {
|
|
15764
|
+
const entries = [];
|
|
15765
|
+
for (const descriptor of descriptors) {
|
|
15766
|
+
const tabOwner = draftOwnerOf(descriptor);
|
|
15767
|
+
if (tabOwner === null || owner !== void 0 && keyOf(tabOwner) !== keyOf(owner)) continue;
|
|
15768
|
+
entries.push({ terminalId: descriptor.terminalId, draft: store.get(tabOwner) ?? { text: "", pasted: [] } });
|
|
15769
|
+
}
|
|
15770
|
+
return entries;
|
|
15771
|
+
}
|
|
15751
15772
|
function workspaceDraftOwners(state) {
|
|
15752
15773
|
const owners = state.tabs.map(({ agent, sessionId }) => ({ agent, sessionId }));
|
|
15753
15774
|
for (const { raw } of state.foreignTabs) {
|
|
@@ -16758,7 +16779,8 @@ var TerminalRegistry = class extends EventEmitter6 {
|
|
|
16758
16779
|
// el registro: el catch de abajo la saca.
|
|
16759
16780
|
alive: false,
|
|
16760
16781
|
exitCode: null,
|
|
16761
|
-
sleeping: true
|
|
16782
|
+
sleeping: true,
|
|
16783
|
+
launchedAt: null
|
|
16762
16784
|
};
|
|
16763
16785
|
const entry = {
|
|
16764
16786
|
descriptor,
|
|
@@ -16933,7 +16955,8 @@ var TerminalRegistry = class extends EventEmitter6 {
|
|
|
16933
16955
|
...target.descriptor,
|
|
16934
16956
|
alive: false,
|
|
16935
16957
|
exitCode,
|
|
16936
|
-
sleeping: false
|
|
16958
|
+
sleeping: false,
|
|
16959
|
+
launchedAt: null
|
|
16937
16960
|
};
|
|
16938
16961
|
target.stopWatchingActivity?.();
|
|
16939
16962
|
target.stopWatchingActivity = null;
|
|
@@ -16958,7 +16981,9 @@ var TerminalRegistry = class extends EventEmitter6 {
|
|
|
16958
16981
|
sessionId: launchedSessionId,
|
|
16959
16982
|
alive: true,
|
|
16960
16983
|
exitCode: null,
|
|
16961
|
-
sleeping: false
|
|
16984
|
+
sleeping: false,
|
|
16985
|
+
// El mismo instante contra el que el hub mide lo que es de este proceso.
|
|
16986
|
+
launchedAt
|
|
16962
16987
|
};
|
|
16963
16988
|
this.watchActivity(entry);
|
|
16964
16989
|
if (adapter !== null) {
|
|
@@ -17132,7 +17157,8 @@ var TerminalRegistry = class extends EventEmitter6 {
|
|
|
17132
17157
|
createdAt: Date.now(),
|
|
17133
17158
|
alive: false,
|
|
17134
17159
|
exitCode: null,
|
|
17135
|
-
sleeping: true
|
|
17160
|
+
sleeping: true,
|
|
17161
|
+
launchedAt: null
|
|
17136
17162
|
};
|
|
17137
17163
|
this.terminals.set(terminalId, {
|
|
17138
17164
|
descriptor,
|
|
@@ -17281,7 +17307,7 @@ import { WebSocketServer } from "ws";
|
|
|
17281
17307
|
|
|
17282
17308
|
// packages/server/src/directory-picker.ts
|
|
17283
17309
|
import { randomUUID as randomUUID6 } from "node:crypto";
|
|
17284
|
-
import { mkdir as mkdir14, readdir as readdir11, stat as stat24 } from "node:fs/promises";
|
|
17310
|
+
import { lstat, mkdir as mkdir14, readdir as readdir11, stat as stat24 } from "node:fs/promises";
|
|
17285
17311
|
import { homedir as homedir11 } from "node:os";
|
|
17286
17312
|
import path44 from "node:path";
|
|
17287
17313
|
var MAX_ENTRIES = 500;
|
|
@@ -17296,6 +17322,16 @@ function isInsideProtected(target, dirs) {
|
|
|
17296
17322
|
return resolved === protectedDir || resolved.startsWith(protectedDir + path44.sep);
|
|
17297
17323
|
});
|
|
17298
17324
|
}
|
|
17325
|
+
async function isListedDirectory(parent, entry, readLink = lstat) {
|
|
17326
|
+
if (entry.isDirectory()) return true;
|
|
17327
|
+
if (!entry.isSymbolicLink()) return false;
|
|
17328
|
+
try {
|
|
17329
|
+
const info = await readLink(path44.join(parent, entry.name));
|
|
17330
|
+
return info.isDirectory() && !info.isSymbolicLink();
|
|
17331
|
+
} catch {
|
|
17332
|
+
return false;
|
|
17333
|
+
}
|
|
17334
|
+
}
|
|
17299
17335
|
async function listRoots() {
|
|
17300
17336
|
const roots = [];
|
|
17301
17337
|
const home = homedir11();
|
|
@@ -17441,7 +17477,8 @@ var DirectoryPickers = class {
|
|
|
17441
17477
|
let truncated = false;
|
|
17442
17478
|
try {
|
|
17443
17479
|
const found = await readdir11(picker.current, { withFileTypes: true });
|
|
17444
|
-
const
|
|
17480
|
+
const listed = await Promise.all(found.map((entry) => isListedDirectory(picker.current, entry)));
|
|
17481
|
+
const dirs = found.filter((_, index) => listed[index] === true).map((entry) => entry.name).filter((name) => !SKIPPED.has(name)).filter((name) => !isInsideProtected(path44.join(picker.current, name), this.protectedDirs)).sort((a, b) => a.localeCompare(b));
|
|
17445
17482
|
truncated = dirs.length > MAX_ENTRIES;
|
|
17446
17483
|
names = dirs.slice(0, MAX_ENTRIES);
|
|
17447
17484
|
} catch {
|
|
@@ -18312,14 +18349,14 @@ import path49 from "node:path";
|
|
|
18312
18349
|
|
|
18313
18350
|
// packages/server/src/vault/move.ts
|
|
18314
18351
|
import { constants } from "node:fs";
|
|
18315
|
-
import { copyFile as copyFile2, lstat, mkdir as mkdir15, readdir as readdir13, rm as rm5, stat as stat26, utimes, writeFile as writeFile9 } from "node:fs/promises";
|
|
18352
|
+
import { copyFile as copyFile2, lstat as lstat2, mkdir as mkdir15, readdir as readdir13, rm as rm5, stat as stat26, utimes, writeFile as writeFile9 } from "node:fs/promises";
|
|
18316
18353
|
import path46 from "node:path";
|
|
18317
18354
|
var MOVED_ENTRIES = ["vault.json", "sessions", "memory"];
|
|
18318
18355
|
var OWN_TEMP_FILE = /\.\d+\.[0-9a-f]{12}\.tmp$/;
|
|
18319
18356
|
async function copyTree(source, target, result) {
|
|
18320
18357
|
let info;
|
|
18321
18358
|
try {
|
|
18322
|
-
info = await
|
|
18359
|
+
info = await lstat2(source);
|
|
18323
18360
|
} catch {
|
|
18324
18361
|
return;
|
|
18325
18362
|
}
|
|
@@ -19795,15 +19832,6 @@ function attachTerminalSocket(options) {
|
|
|
19795
19832
|
}
|
|
19796
19833
|
return false;
|
|
19797
19834
|
};
|
|
19798
|
-
const draftEntriesOf = (descriptors) => {
|
|
19799
|
-
const entries = [];
|
|
19800
|
-
for (const descriptor of descriptors) {
|
|
19801
|
-
const owner = draftOwnerOf(descriptor);
|
|
19802
|
-
const draft = owner === null ? null : drafts.get(owner);
|
|
19803
|
-
if (draft !== null) entries.push({ terminalId: descriptor.terminalId, draft });
|
|
19804
|
-
}
|
|
19805
|
-
return entries;
|
|
19806
|
-
};
|
|
19807
19835
|
const draftTabs = new DraftTabs();
|
|
19808
19836
|
draftTabs.update(registry.list());
|
|
19809
19837
|
const onRegistryChanged = () => {
|
|
@@ -19811,7 +19839,7 @@ function attachTerminalSocket(options) {
|
|
|
19811
19839
|
broadcast({ type: "terminal.list", terminals, order: registry.getOrder() });
|
|
19812
19840
|
const { appeared, moved } = draftTabs.update(terminals);
|
|
19813
19841
|
for (const { from, to } of moved) drafts.move(from, to);
|
|
19814
|
-
const entries = draftEntriesOf(appeared);
|
|
19842
|
+
const entries = draftEntriesOf(appeared, drafts).filter((entry) => !isEmptyComposerDraft(entry.draft));
|
|
19815
19843
|
if (entries.length > 0) broadcast({ type: "composer.drafts", drafts: entries });
|
|
19816
19844
|
};
|
|
19817
19845
|
const onRegistryExit = (terminalId, exitCode, signal) => broadcast({ type: "terminal.exit", terminalId, exitCode, signal });
|
|
@@ -19834,11 +19862,11 @@ function attachTerminalSocket(options) {
|
|
|
19834
19862
|
const onConversationPlans = (terminalId, plans) => broadcast({ type: "conversation.plans", terminalId, plans });
|
|
19835
19863
|
const onConversationTurns = (terminalId, turns) => broadcast({ type: "conversation.turns", terminalId, turns });
|
|
19836
19864
|
const onConversationParts = (terminalId, updates) => broadcast({ type: "conversation.parts", terminalId, updates });
|
|
19837
|
-
const defaultsFor = async (terminalId) => {
|
|
19865
|
+
const defaultsFor = async (terminalId, sessionModel) => {
|
|
19838
19866
|
const descriptor = registry.get(terminalId);
|
|
19839
19867
|
const adapter = adapterOf(terminalId);
|
|
19840
19868
|
if (descriptor === null || adapter === null) return NO_DEFAULTS;
|
|
19841
|
-
return await adapter.defaults(descriptor.cwd) ?? NO_DEFAULTS;
|
|
19869
|
+
return await adapter.defaults(descriptor.cwd, sessionModel) ?? NO_DEFAULTS;
|
|
19842
19870
|
};
|
|
19843
19871
|
const pieceWriter = (socket, terminalId) => (piece) => writeToTerminal(socket, terminalId, piece);
|
|
19844
19872
|
const dropTab = (terminalId) => {
|
|
@@ -19880,7 +19908,7 @@ function attachTerminalSocket(options) {
|
|
|
19880
19908
|
const onConversationReset = (terminalId) => {
|
|
19881
19909
|
const snapshot = conversations.getSnapshot(terminalId);
|
|
19882
19910
|
if (snapshot === null) return;
|
|
19883
|
-
void defaultsFor(terminalId).then((defaults) => {
|
|
19911
|
+
void defaultsFor(terminalId, snapshot.usage.lastModel).then((defaults) => {
|
|
19884
19912
|
broadcast({
|
|
19885
19913
|
type: "conversation.reset",
|
|
19886
19914
|
terminalId,
|
|
@@ -20045,7 +20073,7 @@ function attachTerminalSocket(options) {
|
|
|
20045
20073
|
send(socket, { type: "index.status", status: index.getStatus() });
|
|
20046
20074
|
send(socket, { type: "index.projects", projects: index.getProjects(), replace: true });
|
|
20047
20075
|
send(socket, { type: "notes.list", notes: notes.list() });
|
|
20048
|
-
send(socket, { type: "composer.drafts", drafts: draftEntriesOf(registry.list()) });
|
|
20076
|
+
send(socket, { type: "composer.drafts", drafts: draftEntriesOf(registry.list(), drafts) });
|
|
20049
20077
|
send(socket, { type: "vault.status", status: vault.status() });
|
|
20050
20078
|
if (deviceId === null) send(socket, { type: "remote.status", status: remote.status() });
|
|
20051
20079
|
send(socket, { type: "settings.status", settings: appSettings.status() });
|
|
@@ -20089,8 +20117,15 @@ function attachTerminalSocket(options) {
|
|
|
20089
20117
|
settled = true;
|
|
20090
20118
|
send(socket, { type: "agent.submitted", terminalId, requestId: message.requestId, delivered });
|
|
20091
20119
|
};
|
|
20092
|
-
const
|
|
20120
|
+
const submittedTab = registry.get(terminalId);
|
|
20121
|
+
const submittedOwner = draftOwnerOf(submittedTab);
|
|
20093
20122
|
if (submittedOwner !== null) drafts.delete(submittedOwner);
|
|
20123
|
+
if (submittedTab !== null) {
|
|
20124
|
+
broadcast({
|
|
20125
|
+
type: "composer.drafts",
|
|
20126
|
+
drafts: submittedOwner === null ? [{ terminalId, draft: { text: "", pasted: [] } }] : draftEntriesOf(registry.list(), drafts, submittedOwner)
|
|
20127
|
+
});
|
|
20128
|
+
}
|
|
20094
20129
|
const files = message.files ?? [];
|
|
20095
20130
|
if (files.length > MAX_FILES_PER_SUBMIT) {
|
|
20096
20131
|
sendError(
|
|
@@ -20528,7 +20563,7 @@ function attachTerminalSocket(options) {
|
|
|
20528
20563
|
hasMore: snapshot.hasMore,
|
|
20529
20564
|
usage: snapshot.usage,
|
|
20530
20565
|
permissionMode: snapshot.permissionMode,
|
|
20531
|
-
defaults: await defaultsFor(message.terminalId),
|
|
20566
|
+
defaults: await defaultsFor(message.terminalId, snapshot.usage.lastModel),
|
|
20532
20567
|
waitingFor: snapshot.waitingFor,
|
|
20533
20568
|
openToolCall: conversations.isToolCallOpen(message.terminalId),
|
|
20534
20569
|
subagents: conversations.getSubagents(message.terminalId)
|
|
@@ -20816,6 +20851,9 @@ function attachTerminalSocket(options) {
|
|
|
20816
20851
|
if (owner === null) break;
|
|
20817
20852
|
const outcome = drafts.save(owner, message.draft);
|
|
20818
20853
|
debugLog("drafts", `${message.terminalId.slice(0, 8)}: ${outcome}`);
|
|
20854
|
+
const update = { type: "composer.drafts", drafts: draftEntriesOf(registry.list(), drafts, owner) };
|
|
20855
|
+
if (outcome === "unchanged") send(socket, update);
|
|
20856
|
+
else broadcast(update);
|
|
20819
20857
|
break;
|
|
20820
20858
|
}
|
|
20821
20859
|
/*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as vt}from"./index-CrEDljyV.js";var dn,kn;function Mt(){if(kn)return dn;kn=1;function e(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(a=>{const c=n[a],w=typeof c;(w==="object"||w==="function")&&!Object.isFrozen(c)&&e(c)}),n}class t{constructor(a){a.data===void 0&&(a.data={}),this.data=a.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function r(n,...a){const c=Object.create(null);for(const w in n)c[w]=n[w];return a.forEach(function(w){for(const Z in w)c[Z]=w[Z]}),c}const d="</span>",y=n=>!!n.scope,l=(n,{prefix:a})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const c=n.split(".");return[`${a}${c.shift()}`,...c.map((w,Z)=>`${w}${"_".repeat(Z+1)}`)].join(" ")}return`${a}${n}`};class o{constructor(a,c){this.buffer="",this.classPrefix=c.classPrefix,a.walk(this)}addText(a){this.buffer+=i(a)}openNode(a){if(!y(a))return;const c=l(a.scope,{prefix:this.classPrefix});this.span(c)}closeNode(a){y(a)&&(this.buffer+=d)}value(){return this.buffer}span(a){this.buffer+=`<span class="${a}">`}}const _=(n={})=>{const a={children:[]};return Object.assign(a,n),a};class u{constructor(){this.rootNode=_(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(a){this.top.children.push(a)}openNode(a){const c=_({scope:a});this.add(c),this.stack.push(c)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(a){return this.constructor._walk(a,this.rootNode)}static _walk(a,c){return typeof c=="string"?a.addText(c):c.children&&(a.openNode(c),c.children.forEach(w=>this._walk(a,w)),a.closeNode(c)),a}static _collapse(a){typeof a!="string"&&a.children&&(a.children.every(c=>typeof c=="string")?a.children=[a.children.join("")]:a.children.forEach(c=>{u._collapse(c)}))}}class b extends u{constructor(a){super(),this.options=a}addText(a){a!==""&&this.add(a)}startScope(a){this.openNode(a)}endScope(){this.closeNode()}__addSublanguage(a,c){const w=a.root;c&&(w.scope=`language:${c}`),this.add(w)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(n){return n?typeof n=="string"?n:n.source:null}function f(n){return S("(?=",n,")")}function N(n){return S("(?:",n,")*")}function A(n){return S("(?:",n,")?")}function S(...n){return n.map(c=>h(c)).join("")}function M(n){const a=n[n.length-1];return typeof a=="object"&&a.constructor===Object?(n.splice(n.length-1,1),a):{}}function v(...n){return"("+(M(n).capture?"":"?:")+n.map(w=>h(w)).join("|")+")"}function D(n){return new RegExp(n.toString()+"|").exec("").length-1}function U(n,a){const c=n&&n.exec(a);return c&&c.index===0}const k=new RegExp(v(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function C(n,{joinWith:a}){let c=0;return n.map(w=>{c+=1;const Z=c;let q=h(w),E="";for(;q.length>0;){const p=k.exec(q);if(!p){E+=q;break}E+=q.substring(0,p.index),q=q.substring(p.index+p[0].length),p[0][0]==="\\"&&p[1]?E+="\\"+String(Number(p[1])+Z):(E+=p[0],(p[0]==="("||/^\(\?[<']/.test(p[0]))&&c++)}return E}).map(w=>`(${w})`).join(a)}const x=/\b\B/,P="[a-zA-Z]\\w*",W="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",te="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ce="\\b(0b[01]+)",de="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ue=(n={})=>{const a=/^#![ ]*\//;return n.binary&&(n.begin=S(a,/.*\b/,n.binary,/\b.*/)),r({scope:"meta",begin:a,end:/$/,relevance:0,"on:begin":(c,w)=>{c.index!==0&&w.ignoreMatch()}},n)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},Ee={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/},B=function(n,a,c={}){const w=r({scope:"comment",begin:n,end:a,contains:[]},c);w.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const Z=v("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 w.contains.push({begin:S(/[ ]+/,"(",Z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),w},j=B("//","$"),oe=B("/\\*","\\*/"),ie=B("#","$"),ee={scope:"number",begin:$,relevance:0},fe={scope:"number",begin:te,relevance:0},qe={scope:"number",begin:ce,relevance:0},xe={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},Ce={scope:"title",begin:P,relevance:0},Xe={scope:"title",begin:W,relevance:0},De={begin:"\\.\\s*"+W,relevance:0};var Oe=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:qe,BINARY_NUMBER_RE:ce,COMMENT:B,C_BLOCK_COMMENT_MODE:oe,C_LINE_COMMENT_MODE:j,C_NUMBER_MODE:fe,C_NUMBER_RE:te,END_SAME_AS_BEGIN:function(n){return Object.assign(n,{"on:begin":(a,c)=>{c.data._beginMatch=a[1]},"on:end":(a,c)=>{c.data._beginMatch!==a[1]&&c.ignoreMatch()}})},HASH_COMMENT_MODE:ie,IDENT_RE:P,MATCH_NOTHING_RE:x,METHOD_GUARD:De,NUMBER_MODE:ee,NUMBER_RE:$,PHRASAL_WORDS_MODE:Ee,QUOTE_STRING_MODE:se,REGEXP_MODE:xe,RE_STARTERS_RE:de,SHEBANG:ue,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:W,UNDERSCORE_TITLE_MODE:Xe});function Ve(n,a){n.input[n.index-1]==="."&&a.ignoreMatch()}function Qe(n,a){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Je(n,a){a&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Ve,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function je(n,a){Array.isArray(n.illegal)&&(n.illegal=v(...n.illegal))}function en(n,a){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function z(n,a){n.relevance===void 0&&(n.relevance=1)}const Ae=(n,a)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const c=Object.assign({},n);Object.keys(n).forEach(w=>{delete n[w]}),n.keywords=c.keywords,n.begin=S(c.beforeMatch,f(c.begin)),n.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},n.relevance=0,delete c.beforeMatch},Te=["of","and","for","in","not","or","if","then","parent","list","value"],nn="keyword";function En(n,a,c=nn){const w=Object.create(null);return typeof n=="string"?Z(c,n.split(" ")):Array.isArray(n)?Z(c,n):Object.keys(n).forEach(function(q){Object.assign(w,En(n[q],a,q))}),w;function Z(q,E){a&&(E=E.map(p=>p.toLowerCase())),E.forEach(function(p){const O=p.split("|");w[O[0]]=[q,jn(O[0],O[1])]})}}function jn(n,a){return a?Number(a):et(n)?0:1}function et(n){return Te.includes(n.toLowerCase())}const fn={},Se=n=>{console.error(n)},mn=(n,...a)=>{console.log(`WARN: ${n}`,...a)},we=(n,a)=>{fn[`${n}/${a}`]||(console.log(`Deprecated as of ${n}. ${a}`),fn[`${n}/${a}`]=!0)},Le=new Error;function hn(n,a,{key:c}){let w=0;const Z=n[c],q={},E={};for(let p=1;p<=a.length;p++)E[p+w]=Z[p],q[p+w]=!0,w+=D(a[p-1]);n[c]=E,n[c]._emit=q,n[c]._multi=!0}function nt(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Le;if(typeof n.beginScope!="object"||n.beginScope===null)throw Se("beginScope must be object"),Le;hn(n,n.begin,{key:"beginScope"}),n.begin=C(n.begin,{joinWith:""})}}function tt(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Le;if(typeof n.endScope!="object"||n.endScope===null)throw Se("endScope must be object"),Le;hn(n,n.end,{key:"endScope"}),n.end=C(n.end,{joinWith:""})}}function it(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function at(n){it(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),nt(n),tt(n)}function rt(n){function a(E,p){return new RegExp(h(E),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(p?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(p,O){O.position=this.position++,this.matchIndexes[this.matchAt]=O,this.regexes.push([O,p]),this.matchAt+=D(p)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const p=this.regexes.map(O=>O[1]);this.matcherRe=a(C(p,{joinWith:"|"}),!0),this.lastIndex=0}exec(p){this.matcherRe.lastIndex=this.lastIndex;const O=this.matcherRe.exec(p);if(!O)return null;const J=O.findIndex((Ie,an)=>an>0&&Ie!==void 0),X=this.matchIndexes[J];return O.splice(0,J),Object.assign(O,X)}}class w{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(p){if(this.multiRegexes[p])return this.multiRegexes[p];const O=new c;return this.rules.slice(p).forEach(([J,X])=>O.addRule(J,X)),O.compile(),this.multiRegexes[p]=O,O}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(p,O){this.rules.push([p,O]),O.type==="begin"&&this.count++}exec(p){const O=this.getMatcher(this.regexIndex);O.lastIndex=this.lastIndex;let J=O.exec(p);if(this.resumingScanAtSamePosition()&&!(J&&J.index===this.lastIndex)){const X=this.getMatcher(0);X.lastIndex=this.lastIndex+1,J=X.exec(p)}return J&&(this.regexIndex+=J.position+1,this.regexIndex===this.count&&this.considerAll()),J}}function Z(E){const p=new w;return E.contains.forEach(O=>p.addRule(O.begin,{rule:O,type:"begin"})),E.terminatorEnd&&p.addRule(E.terminatorEnd,{type:"end"}),E.illegal&&p.addRule(E.illegal,{type:"illegal"}),p}function q(E,p){const O=E;if(E.isCompiled)return O;[Qe,en,at,Ae].forEach(X=>X(E,p)),n.compilerExtensions.forEach(X=>X(E,p)),E.__beforeBegin=null,[Je,je,z].forEach(X=>X(E,p)),E.isCompiled=!0;let J=null;return typeof E.keywords=="object"&&E.keywords.$pattern&&(E.keywords=Object.assign({},E.keywords),J=E.keywords.$pattern,delete E.keywords.$pattern),J=J||/\w+/,E.keywords&&(E.keywords=En(E.keywords,n.case_insensitive)),O.keywordPatternRe=a(J,!0),p&&(E.begin||(E.begin=/\B|\b/),O.beginRe=a(O.begin),!E.end&&!E.endsWithParent&&(E.end=/\B|\b/),E.end&&(O.endRe=a(O.end)),O.terminatorEnd=h(O.end)||"",E.endsWithParent&&p.terminatorEnd&&(O.terminatorEnd+=(E.end?"|":"")+p.terminatorEnd)),E.illegal&&(O.illegalRe=a(E.illegal)),E.contains||(E.contains=[]),E.contains=[].concat(...E.contains.map(function(X){return st(X==="self"?E:X)})),E.contains.forEach(function(X){q(X,O)}),E.starts&&q(E.starts,p),O.matcher=Z(O),O}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=r(n.classNameAliases||{}),q(n)}function Nn(n){return n?n.endsWithParent||Nn(n.starts):!1}function st(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(a){return r(n,{variants:null},a)})),n.cachedVariants?n.cachedVariants:Nn(n)?r(n,{starts:n.starts?r(n.starts):null}):Object.isFrozen(n)?r(n):n}var ot="11.12.0";class ct extends Error{constructor(a,c){super(a),this.name="HTMLInjectionError",this.html=c}}const tn=i,Tn=r,Sn=Symbol("nomatch"),lt=7,yn=function(n){const a=Object.create(null),c=Object.create(null),w=[];let Z=!0;const q="Could not find the language '{}', did you forget to load/include a language module?",E={disableAutodetect:!0,name:"Plain text",contains:[]};let p={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function O(s){return p.noHighlightRe.test(s)}function J(s){let T=s.className+" ";T+=s.parentNode?s.parentNode.className:"";const L=p.languageDetectRe.exec(T);if(L){const G=he(L[1]);return G||(mn(q.replace("{}",L[1])),mn("Falling back to no-highlight mode for this block.",s)),G?L[1]:"no-highlight"}return T.split(/\s+/).find(G=>O(G)||he(G))}function X(s,T,L){let G="",Q="";typeof T=="object"?(G=s,L=T.ignoreIllegals,Q=T.language):(we("10.7.0","highlight(lang, code, ...args) has been deprecated."),we("10.7.0",`Please use highlight(code, options) instead.
|
|
1
|
+
import{g as vt}from"./index-zFKk_FJ_.js";var dn,kn;function Mt(){if(kn)return dn;kn=1;function e(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(a=>{const c=n[a],w=typeof c;(w==="object"||w==="function")&&!Object.isFrozen(c)&&e(c)}),n}class t{constructor(a){a.data===void 0&&(a.data={}),this.data=a.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function r(n,...a){const c=Object.create(null);for(const w in n)c[w]=n[w];return a.forEach(function(w){for(const Z in w)c[Z]=w[Z]}),c}const d="</span>",y=n=>!!n.scope,l=(n,{prefix:a})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const c=n.split(".");return[`${a}${c.shift()}`,...c.map((w,Z)=>`${w}${"_".repeat(Z+1)}`)].join(" ")}return`${a}${n}`};class o{constructor(a,c){this.buffer="",this.classPrefix=c.classPrefix,a.walk(this)}addText(a){this.buffer+=i(a)}openNode(a){if(!y(a))return;const c=l(a.scope,{prefix:this.classPrefix});this.span(c)}closeNode(a){y(a)&&(this.buffer+=d)}value(){return this.buffer}span(a){this.buffer+=`<span class="${a}">`}}const _=(n={})=>{const a={children:[]};return Object.assign(a,n),a};class u{constructor(){this.rootNode=_(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(a){this.top.children.push(a)}openNode(a){const c=_({scope:a});this.add(c),this.stack.push(c)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(a){return this.constructor._walk(a,this.rootNode)}static _walk(a,c){return typeof c=="string"?a.addText(c):c.children&&(a.openNode(c),c.children.forEach(w=>this._walk(a,w)),a.closeNode(c)),a}static _collapse(a){typeof a!="string"&&a.children&&(a.children.every(c=>typeof c=="string")?a.children=[a.children.join("")]:a.children.forEach(c=>{u._collapse(c)}))}}class b extends u{constructor(a){super(),this.options=a}addText(a){a!==""&&this.add(a)}startScope(a){this.openNode(a)}endScope(){this.closeNode()}__addSublanguage(a,c){const w=a.root;c&&(w.scope=`language:${c}`),this.add(w)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(n){return n?typeof n=="string"?n:n.source:null}function f(n){return S("(?=",n,")")}function N(n){return S("(?:",n,")*")}function A(n){return S("(?:",n,")?")}function S(...n){return n.map(c=>h(c)).join("")}function M(n){const a=n[n.length-1];return typeof a=="object"&&a.constructor===Object?(n.splice(n.length-1,1),a):{}}function v(...n){return"("+(M(n).capture?"":"?:")+n.map(w=>h(w)).join("|")+")"}function D(n){return new RegExp(n.toString()+"|").exec("").length-1}function U(n,a){const c=n&&n.exec(a);return c&&c.index===0}const k=new RegExp(v(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function C(n,{joinWith:a}){let c=0;return n.map(w=>{c+=1;const Z=c;let q=h(w),E="";for(;q.length>0;){const p=k.exec(q);if(!p){E+=q;break}E+=q.substring(0,p.index),q=q.substring(p.index+p[0].length),p[0][0]==="\\"&&p[1]?E+="\\"+String(Number(p[1])+Z):(E+=p[0],(p[0]==="("||/^\(\?[<']/.test(p[0]))&&c++)}return E}).map(w=>`(${w})`).join(a)}const x=/\b\B/,P="[a-zA-Z]\\w*",W="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",te="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ce="\\b(0b[01]+)",de="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ue=(n={})=>{const a=/^#![ ]*\//;return n.binary&&(n.begin=S(a,/.*\b/,n.binary,/\b.*/)),r({scope:"meta",begin:a,end:/$/,relevance:0,"on:begin":(c,w)=>{c.index!==0&&w.ignoreMatch()}},n)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},Ee={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/},B=function(n,a,c={}){const w=r({scope:"comment",begin:n,end:a,contains:[]},c);w.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const Z=v("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 w.contains.push({begin:S(/[ ]+/,"(",Z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),w},j=B("//","$"),oe=B("/\\*","\\*/"),ie=B("#","$"),ee={scope:"number",begin:$,relevance:0},fe={scope:"number",begin:te,relevance:0},qe={scope:"number",begin:ce,relevance:0},xe={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},Ce={scope:"title",begin:P,relevance:0},Xe={scope:"title",begin:W,relevance:0},De={begin:"\\.\\s*"+W,relevance:0};var Oe=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:qe,BINARY_NUMBER_RE:ce,COMMENT:B,C_BLOCK_COMMENT_MODE:oe,C_LINE_COMMENT_MODE:j,C_NUMBER_MODE:fe,C_NUMBER_RE:te,END_SAME_AS_BEGIN:function(n){return Object.assign(n,{"on:begin":(a,c)=>{c.data._beginMatch=a[1]},"on:end":(a,c)=>{c.data._beginMatch!==a[1]&&c.ignoreMatch()}})},HASH_COMMENT_MODE:ie,IDENT_RE:P,MATCH_NOTHING_RE:x,METHOD_GUARD:De,NUMBER_MODE:ee,NUMBER_RE:$,PHRASAL_WORDS_MODE:Ee,QUOTE_STRING_MODE:se,REGEXP_MODE:xe,RE_STARTERS_RE:de,SHEBANG:ue,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:W,UNDERSCORE_TITLE_MODE:Xe});function Ve(n,a){n.input[n.index-1]==="."&&a.ignoreMatch()}function Qe(n,a){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Je(n,a){a&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Ve,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function je(n,a){Array.isArray(n.illegal)&&(n.illegal=v(...n.illegal))}function en(n,a){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function z(n,a){n.relevance===void 0&&(n.relevance=1)}const Ae=(n,a)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const c=Object.assign({},n);Object.keys(n).forEach(w=>{delete n[w]}),n.keywords=c.keywords,n.begin=S(c.beforeMatch,f(c.begin)),n.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},n.relevance=0,delete c.beforeMatch},Te=["of","and","for","in","not","or","if","then","parent","list","value"],nn="keyword";function En(n,a,c=nn){const w=Object.create(null);return typeof n=="string"?Z(c,n.split(" ")):Array.isArray(n)?Z(c,n):Object.keys(n).forEach(function(q){Object.assign(w,En(n[q],a,q))}),w;function Z(q,E){a&&(E=E.map(p=>p.toLowerCase())),E.forEach(function(p){const O=p.split("|");w[O[0]]=[q,jn(O[0],O[1])]})}}function jn(n,a){return a?Number(a):et(n)?0:1}function et(n){return Te.includes(n.toLowerCase())}const fn={},Se=n=>{console.error(n)},mn=(n,...a)=>{console.log(`WARN: ${n}`,...a)},we=(n,a)=>{fn[`${n}/${a}`]||(console.log(`Deprecated as of ${n}. ${a}`),fn[`${n}/${a}`]=!0)},Le=new Error;function hn(n,a,{key:c}){let w=0;const Z=n[c],q={},E={};for(let p=1;p<=a.length;p++)E[p+w]=Z[p],q[p+w]=!0,w+=D(a[p-1]);n[c]=E,n[c]._emit=q,n[c]._multi=!0}function nt(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Le;if(typeof n.beginScope!="object"||n.beginScope===null)throw Se("beginScope must be object"),Le;hn(n,n.begin,{key:"beginScope"}),n.begin=C(n.begin,{joinWith:""})}}function tt(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Le;if(typeof n.endScope!="object"||n.endScope===null)throw Se("endScope must be object"),Le;hn(n,n.end,{key:"endScope"}),n.end=C(n.end,{joinWith:""})}}function it(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function at(n){it(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),nt(n),tt(n)}function rt(n){function a(E,p){return new RegExp(h(E),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(p?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(p,O){O.position=this.position++,this.matchIndexes[this.matchAt]=O,this.regexes.push([O,p]),this.matchAt+=D(p)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const p=this.regexes.map(O=>O[1]);this.matcherRe=a(C(p,{joinWith:"|"}),!0),this.lastIndex=0}exec(p){this.matcherRe.lastIndex=this.lastIndex;const O=this.matcherRe.exec(p);if(!O)return null;const J=O.findIndex((Ie,an)=>an>0&&Ie!==void 0),X=this.matchIndexes[J];return O.splice(0,J),Object.assign(O,X)}}class w{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(p){if(this.multiRegexes[p])return this.multiRegexes[p];const O=new c;return this.rules.slice(p).forEach(([J,X])=>O.addRule(J,X)),O.compile(),this.multiRegexes[p]=O,O}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(p,O){this.rules.push([p,O]),O.type==="begin"&&this.count++}exec(p){const O=this.getMatcher(this.regexIndex);O.lastIndex=this.lastIndex;let J=O.exec(p);if(this.resumingScanAtSamePosition()&&!(J&&J.index===this.lastIndex)){const X=this.getMatcher(0);X.lastIndex=this.lastIndex+1,J=X.exec(p)}return J&&(this.regexIndex+=J.position+1,this.regexIndex===this.count&&this.considerAll()),J}}function Z(E){const p=new w;return E.contains.forEach(O=>p.addRule(O.begin,{rule:O,type:"begin"})),E.terminatorEnd&&p.addRule(E.terminatorEnd,{type:"end"}),E.illegal&&p.addRule(E.illegal,{type:"illegal"}),p}function q(E,p){const O=E;if(E.isCompiled)return O;[Qe,en,at,Ae].forEach(X=>X(E,p)),n.compilerExtensions.forEach(X=>X(E,p)),E.__beforeBegin=null,[Je,je,z].forEach(X=>X(E,p)),E.isCompiled=!0;let J=null;return typeof E.keywords=="object"&&E.keywords.$pattern&&(E.keywords=Object.assign({},E.keywords),J=E.keywords.$pattern,delete E.keywords.$pattern),J=J||/\w+/,E.keywords&&(E.keywords=En(E.keywords,n.case_insensitive)),O.keywordPatternRe=a(J,!0),p&&(E.begin||(E.begin=/\B|\b/),O.beginRe=a(O.begin),!E.end&&!E.endsWithParent&&(E.end=/\B|\b/),E.end&&(O.endRe=a(O.end)),O.terminatorEnd=h(O.end)||"",E.endsWithParent&&p.terminatorEnd&&(O.terminatorEnd+=(E.end?"|":"")+p.terminatorEnd)),E.illegal&&(O.illegalRe=a(E.illegal)),E.contains||(E.contains=[]),E.contains=[].concat(...E.contains.map(function(X){return st(X==="self"?E:X)})),E.contains.forEach(function(X){q(X,O)}),E.starts&&q(E.starts,p),O.matcher=Z(O),O}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=r(n.classNameAliases||{}),q(n)}function Nn(n){return n?n.endsWithParent||Nn(n.starts):!1}function st(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(a){return r(n,{variants:null},a)})),n.cachedVariants?n.cachedVariants:Nn(n)?r(n,{starts:n.starts?r(n.starts):null}):Object.isFrozen(n)?r(n):n}var ot="11.12.0";class ct extends Error{constructor(a,c){super(a),this.name="HTMLInjectionError",this.html=c}}const tn=i,Tn=r,Sn=Symbol("nomatch"),lt=7,yn=function(n){const a=Object.create(null),c=Object.create(null),w=[];let Z=!0;const q="Could not find the language '{}', did you forget to load/include a language module?",E={disableAutodetect:!0,name:"Plain text",contains:[]};let p={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function O(s){return p.noHighlightRe.test(s)}function J(s){let T=s.className+" ";T+=s.parentNode?s.parentNode.className:"";const L=p.languageDetectRe.exec(T);if(L){const G=he(L[1]);return G||(mn(q.replace("{}",L[1])),mn("Falling back to no-highlight mode for this block.",s)),G?L[1]:"no-highlight"}return T.split(/\s+/).find(G=>O(G)||he(G))}function X(s,T,L){let G="",Q="";typeof T=="object"?(G=s,L=T.ignoreIllegals,Q=T.language):(we("10.7.0","highlight(lang, code, ...args) has been deprecated."),we("10.7.0",`Please use highlight(code, options) instead.
|
|
2
2
|
https://github.com/highlightjs/highlight.js/issues/2277`),Q=s,G=T),L===void 0&&(L=!0);const ge={code:G,language:Q};Pe("before:highlight",ge);const Ne=ge.result?ge.result:Ie(ge.language,ge.code,L);return Ne.code=ge.code,Pe("after:highlight",Ne),Ne}function Ie(s,T,L,G){const Q=Object.create(null);function ge(g,m){return g.keywords[m]}function Ne(){if(!R.keywords){ne.addText(H);return}let g=0;R.keywordPatternRe.lastIndex=0;let m=R.keywordPatternRe.exec(H),I="";for(;m;){I+=H.substring(g,m.index);const F=pe.case_insensitive?m[0].toLowerCase():m[0],ae=ge(R,F);if(ae){const[me,wt]=ae;if(ne.addText(I),I="",Q[F]=(Q[F]||0)+1,Q[F]<=lt&&($e+=wt),me.startsWith("_"))I+=m[0];else{const Rt=pe.classNameAliases[me]||me;be(m[0],Rt)}}else I+=m[0];g=R.keywordPatternRe.lastIndex,m=R.keywordPatternRe.exec(H)}I+=H.substring(g),ne.addText(I)}function Ue(){if(H==="")return;let g=null;if(typeof R.subLanguage=="string"){if(!a[R.subLanguage]){ne.addText(H);return}g=Ie(R.subLanguage,H,!0,In[R.subLanguage]),In[R.subLanguage]=g._top}else g=rn(H,R.subLanguage.length?R.subLanguage:null);R.relevance>0&&($e+=g.relevance),ne.__addSublanguage(g._emitter,g.language)}function le(){R.subLanguage!=null?Ue():Ne(),H=""}function be(g,m){g!==""&&(ne.startScope(m),ne.addText(g),ne.endScope())}function Rn(g,m){let I=1;const F=m.length-1;for(;I<=F;){if(!g._emit[I]){I++;continue}const ae=pe.classNameAliases[g[I]]||g[I],me=m[I];ae?be(me,ae):(H=me,Ne(),H=""),I++}}function vn(g,m){return g.scope&&typeof g.scope=="string"&&ne.openNode(pe.classNameAliases[g.scope]||g.scope),g.beginScope&&(g.beginScope._wrap?(be(H,pe.classNameAliases[g.beginScope._wrap]||g.beginScope._wrap),H=""):g.beginScope._multi&&(Rn(g.beginScope,m),H="")),R=Object.create(g,{parent:{value:R}}),R}function Mn(g,m,I){let F=U(g.endRe,I);if(F){if(g["on:end"]){const ae=new t(g);g["on:end"](m,ae),ae.isMatchIgnored&&(F=!1)}if(F){for(;g.endsParent&&g.parent;)g=g.parent;return g}}if(g.endsWithParent)return Mn(g.parent,m,I)}function Tt(g){return R.matcher.regexIndex===0?(H+=g[0],1):(ln=!0,0)}function St(g){const m=g[0],I=g.rule,F=new t(I),ae=[I.__beforeBegin,I["on:begin"]];for(const me of ae)if(me&&(me(g,F),F.isMatchIgnored))return Tt(m);return I.skip?H+=m:(I.excludeBegin&&(H+=m),le(),!I.returnBegin&&!I.excludeBegin&&(H=m)),vn(I,g),I.returnBegin?0:m.length}function yt(g){const m=g[0],I=T.substring(g.index),F=Mn(R,g,I);if(!F)return Sn;const ae=R;R.endScope&&R.endScope._wrap?(le(),be(m,R.endScope._wrap)):R.endScope&&R.endScope._multi?(le(),Rn(R.endScope,g)):ae.skip?H+=m:(ae.returnEnd||ae.excludeEnd||(H+=m),le(),ae.excludeEnd&&(H=m));do R.scope&&ne.closeNode(),!R.skip&&!R.subLanguage&&($e+=R.relevance),R=R.parent;while(R!==F.parent);return F.starts&&vn(F.starts,g),ae.returnEnd?0:m.length}function Ot(){const g=[];for(let m=R;m!==pe;m=m.parent)m.scope&&g.unshift(m.scope);g.forEach(m=>ne.openNode(m))}let Fe={};function Cn(g,m){const I=m&&m[0];if(H+=g,I==null)return le(),0;if(Fe.type==="begin"&&m.type==="end"&&Fe.index===m.index&&I===""){if(H+=T.slice(m.index,m.index+1),!Z){const F=new Error(`0 width match regex (${s})`);throw F.languageName=s,F.badRule=Fe.rule,F}return 1}if(Fe=m,m.type==="begin")return St(m);if(m.type==="illegal"&&!L){const F=new Error('Illegal lexeme "'+I+'" for mode "'+(R.scope||"<unnamed>")+'"');throw F.mode=R,F}else if(m.type==="end"){const F=yt(m);if(F!==Sn)return F}if(m.type==="illegal"&&I==="")return m.index===T.length||(H+=`
|
|
3
3
|
`),1;if(cn>1e5&&cn>m.index*3)throw new Error("potential infinite loop, way more iterations than matches");return H+=I,I.length}const pe=he(s);if(!pe)throw Se(q.replace("{}",s)),new Error('Unknown language: "'+s+'"');const At=rt(pe);let on="",R=G||At;const In={},ne=new p.__emitter(p);Ot();let H="",$e=0,ye=0,cn=0,ln=!1;try{if(pe.__emitTokens)pe.__emitTokens(T,ne);else{for(R.matcher.considerAll();;){cn++,ln?ln=!1:R.matcher.considerAll(),R.matcher.lastIndex=ye;const g=R.matcher.exec(T);if(!g)break;const m=T.substring(ye,g.index),I=Cn(m,g);ye=g.index+I}Cn(T.substring(ye))}return ne.finalize(),on=ne.toHTML(),{language:s,value:on,relevance:$e,illegal:!1,_emitter:ne,_top:R}}catch(g){if(g.message&&g.message.includes("Illegal"))return{language:s,value:tn(T),illegal:!0,relevance:0,_illegalBy:{message:g.message,index:ye,context:T.slice(ye-100,ye+100),mode:g.mode,resultSoFar:on},_emitter:ne};if(Z)return{language:s,value:tn(T),illegal:!1,relevance:0,errorRaised:g,_emitter:ne,_top:R};throw g}}function an(s){const T={value:tn(s),illegal:!1,relevance:0,_top:E,_emitter:new p.__emitter(p)};return T._emitter.addText(s),T}function rn(s,T){T=T||p.languages||Object.keys(a);const L=an(s),G=T.filter(he).filter(wn).map(le=>Ie(le,s,!1));G.unshift(L);const Q=G.sort((le,be)=>{if(le.relevance!==be.relevance)return be.relevance-le.relevance;if(le.language&&be.language){if(he(le.language).supersetOf===be.language)return 1;if(he(be.language).supersetOf===le.language)return-1}return 0}),[ge,Ne]=Q,Ue=ge;return Ue.secondBest=Ne,Ue}function dt(s,T,L){const G=T&&c[T]||L;s.classList.add("hljs"),s.classList.add(`language-${G}`)}function sn(s){let T=null;const L=J(s);if(O(L))return;if(Pe("before:highlightElement",{el:s,language:L}),s.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",s);return}if(s.children.length>0&&(p.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(s)),p.throwUnescapedHTML))throw new ct("One of your code blocks includes unescaped HTML.",s.innerHTML);T=s;const G=T.textContent,Q=L?X(G,{language:L,ignoreIllegals:!0}):rn(G);s.innerHTML=Q.value,s.dataset.highlighted="yes",dt(s,L,Q.language),s.result={language:Q.language,re:Q.relevance,relevance:Q.relevance},Q.secondBest&&(s.secondBest={language:Q.secondBest.language,relevance:Q.secondBest.relevance}),Pe("after:highlightElement",{el:s,result:Q,text:G})}function ut(s){p=Tn(p,s)}const gt=()=>{Be(),we("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function bt(){Be(),we("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let On=!1;function Be(){function s(){Be()}if(document.readyState==="loading"){On||window.addEventListener("DOMContentLoaded",s,!1),On=!0;return}document.querySelectorAll(p.cssSelector).forEach(sn)}function pt(s,T){let L=null;try{L=T(n)}catch(G){if(Se("Language definition for '{}' could not be registered.".replace("{}",s)),Z)Se(G);else throw G;L=E}L.name||(L.name=s),a[s]=L,L.rawDefinition=T.bind(null,n),L.aliases&&An(L.aliases,{languageName:s})}function _t(s){delete a[s];for(const T of Object.keys(c))c[T]===s&&delete c[T]}function Et(){return Object.keys(a)}function he(s){return s=(s||"").toLowerCase(),a[s]||a[c[s]]}function An(s,{languageName:T}){typeof s=="string"&&(s=[s]),s.forEach(L=>{c[L.toLowerCase()]=T})}function wn(s){const T=he(s);return T&&!T.disableAutodetect}function ft(s){s["before:highlightBlock"]&&!s["before:highlightElement"]&&(s["before:highlightElement"]=T=>{s["before:highlightBlock"](Object.assign({block:T.el},T))}),s["after:highlightBlock"]&&!s["after:highlightElement"]&&(s["after:highlightElement"]=T=>{s["after:highlightBlock"](Object.assign({block:T.el},T))})}function mt(s){ft(s),w.push(s)}function ht(s){const T=w.indexOf(s);T!==-1&&w.splice(T,1)}function Pe(s,T){const L=s;w.forEach(function(G){G[L]&&G[L](T)})}function Nt(s){return we("10.7.0","highlightBlock will be removed entirely in v12.0"),we("10.7.0","Please use highlightElement now."),sn(s)}Object.assign(n,{highlight:X,highlightAuto:rn,highlightAll:Be,highlightElement:sn,highlightBlock:Nt,configure:ut,initHighlighting:gt,initHighlightingOnLoad:bt,registerLanguage:pt,unregisterLanguage:_t,listLanguages:Et,getLanguage:he,registerAliases:An,autoDetection:wn,inherit:Tn,addPlugin:mt,removePlugin:ht}),n.debugMode=function(){Z=!1},n.safeMode=function(){Z=!0},n.versionString=ot,n.regex={concat:S,lookahead:f,either:v,optional:A,anyNumberOfTimes:N};for(const s in Oe)typeof Oe[s]=="object"&&e(Oe[s]);return Object.assign(n,Oe),n},Re=yn({});return Re.newInstance=()=>yn({}),dn=Re,Re.HighlightJS=Re,Re.default=Re,dn}var Ct=Mt();const bn=vt(Ct);function It(e){const t=e.regex,i={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[i]}]};Object.assign(i,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const d={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},y=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),l={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,d]};d.contains.push(o);const _={match:/\\"/},u={className:"string",begin:/'/,end:/'/},b={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,i]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],N=e.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),A={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},S=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],M=["true","false"],v={match:/(\/[a-z._-]+)+/},D=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],U=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],k=["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:S,literal:M,built_in:[...D,...U,"set","shopt",...k,...C]},contains:[N,e.SHEBANG(),A,h,y,l,v,o,_,u,b,i]}}function kt(e){const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",d="[a-zA-Z_]\\w*::",l="("+r+"|"+t.optional(d)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o=t.concat(/\batomic_/,t.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),_={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:o}]},b={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"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},h={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},f={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},b,{scope:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},N={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(b,{className:"string"}),i,e.C_BLOCK_COMMENT_MODE]},A=[f,N],S={className:"title",begin:t.optional(d)+e.IDENT_RE,relevance:0},M=t.optional(d)+e.IDENT_RE+"\\s*\\(",v=12,k={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"},C=[...A,_,i,e.C_BLOCK_COMMENT_MODE,h,b],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:k,contains:C.concat([{begin:/\(/,end:/\)/,keywords:k,contains:C.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+l+"[\\*&\\s]+){1,"+v+"}"+M,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:k,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:k,relevance:0},{begin:M,returnBegin:!0,contains:[e.inherit(S,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,b,h,_,{begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,b,h,_]}]},_,i,e.C_BLOCK_COMMENT_MODE,...A]};return{name:"C",aliases:["h"],keywords:k,disableAutodetect:!0,illegal:"</",contains:[].concat(x,P,C,[...A,{begin:e.IDENT_RE+"::",keywords:k},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:N,strings:b,keywords:k}}}function xt(e){const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",d="[a-zA-Z_]\\w*::",l="(?!struct)("+r+"|"+t.optional(d)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},u={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"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},b={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[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},h={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},u,{scope:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},f={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(u,{className:"string"}),i,e.C_BLOCK_COMMENT_MODE]},N=[h,f],A={className:"title",begin:t.optional(d)+e.IDENT_RE,relevance:0},S=t.optional(d)+e.IDENT_RE+"\\s*\\(",M=12,v=["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"],D=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],U=["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"],k=["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"],P={type:D,keyword:v,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:U},W={className:"function.dispatch",relevance:0,keywords:{_hint:k},begin:t.concat(/\b/,`(?!${v.join("|")})`,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},$=[W,...N,o,i,e.C_BLOCK_COMMENT_MODE,b,u],te={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:P,contains:$.concat([{begin:/\(/,end:/\)/,keywords:P,contains:$.concat(["self"]),relevance:0}]),relevance:0},ce={className:"function",begin:"("+l+"[\\*&\\s]+){1,"+M+"}"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:P,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:P,relevance:0},{begin:S,returnBegin:!0,contains:[A],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,b]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,u,b,o,{begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,u,b,o]}]},o,i,e.C_BLOCK_COMMENT_MODE,...N]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:P,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(te,ce,W,$,[...N,{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:P,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:P},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Dt(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],i=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],d=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],y=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],l={keyword:d.concat(y),built_in:t,literal:r},o=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),_="\\d(_*\\d)*",u="([uU][lL]?|[lL][uU]?)?",h={className:"number",variants:[{begin:"\\b0[bB]_*[01](_*[01])*"+u},{begin:"(-?)\\b0[xX]_*[a-fA-F0-9](_*[a-fA-F0-9])*"+u},{begin:"(-?)(\\b"+_+"(\\.("+_+")?)?|\\."+_+")([eE][-+]?"+_+")?"+"([fFdDmM]|[uU][lL]?|[lL][uU]?)?"}],relevance:0},f={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},N={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},A=e.inherit(N,{illegal:/\n/}),S={className:"subst",begin:/\{/,end:/\}/,keywords:l},M=e.inherit(S,{illegal:/\n/}),v={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,M]},D={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},S]},U=e.inherit(D,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},M]});S.contains=[D,v,N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.C_BLOCK_COMMENT_MODE],M.contains=[U,v,A,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const k={variants:[f,D,v,N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},o]},x=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",P={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:l,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},k,h,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},o,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+x+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:l,contains:[{beginKeywords:i.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,relevance:0,contains:[k,h,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},P]}}const Lt=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/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},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_-]*/}}),Bt=["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"],Pt=["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"],Ut=[...Bt,...Pt],Ft=["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(),$t=["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(),zt=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Kt=["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","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","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","unicode-range","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 Gt(e){const t=e.regex,i=Lt(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},d="and or not only",y=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",o=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[i.BLOCK_COMMENT,r,i.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+$t.join("|")+")"},{begin:":(:)?("+zt.join("|")+")"}]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Kt.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[i.BLOCK_COMMENT,i.HEXCOLOR,i.IMPORTANT,i.CSS_NUMBER_MODE,i.UNICODE_RANGE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...o,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},i.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:y},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:Ft.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,i.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Ut.join("|")+")\\b"}]}}function Ht(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 Wt(e){const y={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:y,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:/-?\b0[bB](_?[01])*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:y,illegal:/["']/}]}]}}function Yt(e){const t=e.regex,i={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const d={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},y={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},o={begin:/\[/,end:/\]/,contains:[r,y,d,l,i,"self"],relevance:0},_=/[A-Za-z0-9_-]+/,u=/"(\\"|[^"])*"/,b=/'[^']*'/,h=t.either(_,u,b),f=t.concat(h,"(\\s*\\.\\s*",h,")*",t.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[r,{className:"section",begin:/\[+/,end:/\]+/},{begin:f,className:"attr",starts:{end:/$/,contains:[r,o,y,d,l,i]}}]}}var ve="[0-9](_*[0-9])*",ze=`\\.(${ve})`,Ke="[0-9a-fA-F](_*[0-9a-fA-F])*",xn={className:"number",variants:[{begin:`(\\b(${ve})((${ze})|\\.)?|(${ze}))[eE][+-]?(${ve})[fFdD]?\\b`},{begin:`\\b(${ve})((${ze})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ze})[fFdD]?\\b`},{begin:`\\b(${ve})[fFdD]\\b`},{begin:`\\b0[xX]((${Ke})\\.?|(${Ke})?\\.(${Ke}))[pP][+-]?(${ve})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ke})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Un(e,t,i){return i===-1?"":e.replace(t,r=>Un(e,t,i-1))}function Zt(e){const t=e.regex,i="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r="(?:(?:\\s*\\[\\s*])+)?",d=i+"<@@@>"+r,l="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+d+")?")+"|"+d+")",o=Un("(?:\\s*<\\s*"+l+"(?:\\s*,\\s*"+l+")*\\s*>)?",/<@@@>/g,2),f={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"]},N={className:"meta",begin:"@"+i,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},A={className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:f,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+/,i],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[i,t.concat(o,r,/\s+/),i,r,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,i],className:{1:"keyword",3:"title.class"},contains:[A,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:[i,t.concat(o,r,/\s+/),i,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:f,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,xn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},xn,N]}}const Dn="[A-Za-z$_][0-9A-Za-z$_]*",qt=["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"],Xt=["true","false","null","undefined","NaN","Infinity"],Fn=["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"],$n=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],zn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Vt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Qt=[].concat(zn,Fn,$n);function Jt(e){const t=e.regex,i=(B,{after:j})=>{const oe="</"+B[0].slice(1);return B.input.indexOf(oe,j)!==-1},r=Dn,d={begin:"<>",end:"</>"},y=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(B,j)=>{const oe=B[0].length+B.index,ie=B.input[oe];if(ie==="<"||ie===","){j.ignoreMatch();return}ie===">"&&(i(B,{after:oe})||j.ignoreMatch());let ee;const fe=B.input.substring(oe);if(ee=fe.match(/^\s*=/)){j.ignoreMatch();return}if((ee=fe.match(/^\s+extends\s+/))&&ee.index===0){j.ignoreMatch();return}}},o={$pattern:Dn,keyword:qt,literal:Xt,built_in:Qt,"variable.language":Vt},_="[0-9](_?[0-9])*",u=`\\.(${_})`,b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${b})((${u})|\\.)?|(${u}))[eE][+-]?(${_})\\b`},{begin:`\\b(${b})\\b((${u})\\b|\\.)?|(${u})\\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},f={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},N={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"css"}},S={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"graphql"}},M={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,f]},D={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]},U=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,N,A,S,M,{match:/\$\d+/},h];f.contains=U.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(U)});const k=[].concat(D,f.contains),C=k.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(k)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:C},P={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},W={relevance:0,match:t.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:{_:[...Fn,...$n]}},$={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},te={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},ce={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(B){return t.concat("(?!",B.join("|"),")")}const ue={match:t.concat(/\b/,de([...zn,"super","import","await"].map(B=>`${B}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",Ee={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:W},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),$,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,N,A,S,M,D,{match:/\$\d+/},h,W,{scope:"attr",match:r+t.lookahead(":"),relevance:0},Ee,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[D,e.REGEXP_MODE,{className:"function",begin:se,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:o,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:d.begin,end:d.end},{match:y},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},te,{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},Y,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},ue,ce,P,V,{match:/\$[(.]/}]}}const jt="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",ei={scope:"number",match:jt,relevance:0};function ni(e){const t={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},i={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],d={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:r},contains:[t,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,ei,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Me="[0-9](_*[0-9])*",Ge=`\\.(${Me})`,He="[0-9a-fA-F](_*[0-9a-fA-F])*",ti={className:"number",variants:[{begin:`(\\b(${Me})((${Ge})|\\.)?|(${Ge}))[eE][+-]?(${Me})[fFdD]?\\b`},{begin:`\\b(${Me})((${Ge})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Ge})[fFdD]?\\b`},{begin:`\\b(${Me})[fFdD]\\b`},{begin:`\\b0[xX]((${He})\\.?|(${He})?\\.(${He}))[pP][+-]?(${Me})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${He})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function ii(e){const t={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"},i={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},d={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},y={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},l={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[y,d]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,y,d]}]};d.contains.push(l);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},_={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(l,{className:"string"}),"self"]}]},u=ti,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},f=h;return f.variants[1].contains=[h],h.variants[1].contains=[f],{name:"Kotlin",aliases:["kt","kts","ktm","ktx"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,i,r,o,_,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,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:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,e.C_LINE_COMMENT_MODE,b],relevance:0},e.C_LINE_COMMENT_MODE,b,o,_,l,e.C_NUMBER_MODE]},b]},{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},o,_]},l,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
4
4
|
`},u]}}function ai(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[t,i]},d={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},y={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},l={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[e.HASH_COMMENT_MODE,t,i,r,d,y,l]}}function ri(e){const t=e.regex,i={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},r={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},d={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}]},y={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},l={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},o=/[A-Za-z][A-Za-z0-9+.-]*/,_={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,o,/:\/\/.*?\)/),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}]},u={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=e.inherit(u,{contains:[]}),f=e.inherit(b,{contains:[]});u.contains.push(f),b.contains.push(h);let N=[i,_];return[u,b,h,f].forEach(v=>{v.contains=v.contains.concat(N)}),N=N.concat(u,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:N},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:N}]}]},i,y,r,u,b,{className:"quote",begin:"^>\\s+",contains:N,end:"$"},d,_,l,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function si(e){const t=e.regex,i=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,i),d=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,i),y=t.concat(/[A-Z]+/,i),l={scope:"variable",match:"\\$+"+r},o={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},_={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},u=e.inherit(e.APOS_STRING_MODE,{illegal:null}),b=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(_)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(_),"on:begin":(Y,V)=>{V.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,V)=>{V.data._beginMatch!==Y[1]&&V.ignoreMatch()}},f=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),N=`[
|